/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.storageos.security.helpers; import com.emc.storageos.security.helpers.SecurityService; import com.emc.storageos.security.ssh.PEMUtil; import com.emc.storageos.svcs.errorhandling.resources.APIException; import java.security.*; public class DefaultSecurityService implements SecurityService { private String[] ciphers; @Override public byte[] loadPrivateKeyFromPEMString(String pemKey) { if (!PEMUtil.isPKCS8Key(pemKey)) { throw APIException.badRequests.failedToLoadKeyFromString(); } try { return PEMUtil.decodePKCS8PrivateKey(pemKey); } catch (Exception e) { throw APIException.badRequests.failedToLoadKeyFromString(e); } } @Override public void clearSensitiveData(byte[] key) { } @Override public void clearSensitiveData(Key rsaPrivateKey) { } @Override public void clearSensitiveData(KeyPair keyPair) { } @Override public void clearSensitiveData(Signature signatureFactory) { } @Override public void clearSensitiveData(KeyPairGenerator keyGen) { } @Override public void clearSensitiveData(SecureRandom random) { } @Override public void initSecurityProvider() { } @Override public String[] getCipherSuite() { // Not a real issue as no write outside return ciphers; // NOSONAR ("Suppressing: Returning 'ciphers' may expose an internal array") } // Not a real issue as no write in class public void setCiphers(String[] ciphers) { // NOSONAR ("Suppressing: The user-supplied array is stored directly.") this.ciphers = ciphers; } }