/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.security.helpers;
import java.security.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SecurityUtil {
private static final int SEED_LEN = 20;
private static Logger log = LoggerFactory.getLogger(SecurityUtil.class);
private static SecurityService securityService;
private static SecureRandom secureRandomInst;
private static String secureRandomAlgo;
public synchronized static void setSecurityService(SecurityService secService) {
securityService = secService;
log.info("{} is injected to SecurityUtil", secService.getClass().getName());
}
public static byte[] loadPrivateKeyFromPEMString(String pemKey) {
return securityService.loadPrivateKeyFromPEMString(pemKey);
}
public static void clearSensitiveData(byte[] key) {
securityService.clearSensitiveData(key);
}
public static void clearSensitiveData(Key rsaPrivateKey) {
securityService.clearSensitiveData(rsaPrivateKey);
}
public static void clearSensitiveData(KeyPair keyPair) {
securityService.clearSensitiveData(keyPair);
}
public static void clearSensitiveData(Signature signatureFactory) {
securityService.clearSensitiveData(signatureFactory);
}
public static void clearSensitiveData(KeyPairGenerator keyGen) {
securityService.clearSensitiveData(keyGen);
}
public static void clearSensitiveData(SecureRandom random) {
securityService.clearSensitiveData(random);
}
public static void initSecurityProvider() {
securityService.initSecurityProvider();
}
public static String[] getCipherSuite() {
return securityService.getCipherSuite();
}
/**
* Set the algorithm of the SecureRandom
* @param algo the securedRandomAlgorithm to set
*/
public static void setSecuredRandomAlgorithm(String algo) {
secureRandomAlgo = algo;
}
/**
* return the algorithm name of secure random
* @return
*/
public static String getSecuredRandomAlgorithm() {
return secureRandomAlgo;
}
}