private static void initialize() { final File dbPropsFile = PropertiesUtil.findConfigFile("db.properties"); final Properties dbProps; if (EncryptionSecretKeyChecker.useEncryption()) { StandardPBEStringEncryptor encryptor = EncryptionSecretKeyChecker.getEncryptor(); dbProps = new EncryptableProperties(encryptor); try { dbProps.load(new FileInputStream(dbPropsFile)); } catch (FileNotFoundException e) { throw new CloudRuntimeException( "db.properties file not found while reading DB secret key", e); } catch (IOException e) { throw new CloudRuntimeException("Erroe while reading DB secret key from db.properties", e); } String dbSecretKey = dbProps.getProperty("db.cloud.encrypt.secret"); if (dbSecretKey == null || dbSecretKey.isEmpty()) { throw new CloudRuntimeException("Empty DB secret key in db.properties"); } s_encryptor = new StandardPBEStringEncryptor(); s_encryptor.setAlgorithm("PBEWithMD5AndDES"); s_encryptor.setPassword(dbSecretKey); } else { throw new CloudRuntimeException("Trying to encrypt db values when encrytion is not enabled"); } }
public static String encrypt(String plain) { if (!EncryptionSecretKeyChecker.useEncryption() || (plain == null) || plain.isEmpty()) { return plain; } if (s_encryptor == null) { initialize(); } String encryptedString = null; try { encryptedString = s_encryptor.encrypt(plain); } catch (EncryptionOperationNotPossibleException e) { s_logger.debug("Error while encrypting: " + plain); throw e; } return encryptedString; }