/**
  * Decrypts the encrypted secret using the Blowfish algorithm and the same hard-coded passphrase
  * the JBoss application server uses to decrypt database passwords.
  *
  * @param encryptedSecret the encrypted secret
  * @return the decrypted secret.
  */
 private static String decrypt(String encryptedSecret) {
   CipherInformation cipherInformation = new CipherInformation();
   cipherInformation.setAlgorithm(ALGORITHM);
   cipherInformation.setCipherOperationMode(CipherOperationMode.DECRYPT);
   cipherInformation.setInType(EncodingType.BIGINTEGER16); // TODO
   DecryptionProvider decryptionProvider = CipherFactory.createCipher(cipherInformation, key);
   return new String(decryptionProvider.decrypt(encryptedSecret.getBytes()));
 }
  protected void initCipherDecryptProvider() {
    if (decryptionProvider != null) return;
    Properties properties = SecureVaultUtil.loadProperties();
    StringBuffer sb = new StringBuffer();
    // sb.append(id);
    sb.append(DOT);
    sb.append(LOCATION);

    StringBuffer sbTwo = new StringBuffer();
    // sbTwo.append(id);
    sbTwo.append(DOT);
    sbTwo.append(ALGORITHM);
    // Load algorithm
    String algorithm =
        MiscellaneousUtil.getProperty(properties, sbTwo.toString(), DEFAULT_ALGORITHM);
    StringBuffer buffer = new StringBuffer();
    buffer.append(DOT);
    buffer.append(KEY_STORE);

    // Load keyStore
    String keyStore = MiscellaneousUtil.getProperty(properties, buffer.toString(), null);

    KeyStoreWrapper keyStoreWrapper;

    if (TRUSTED.equals(keyStore)) {
      keyStoreWrapper = trustKeyStoreWrapper;

    } else {
      keyStoreWrapper = identityKeyStoreWrapper;
    }

    CipherInformation cipherInformation = new CipherInformation();
    cipherInformation.setAlgorithm(algorithm);
    cipherInformation.setCipherOperationMode(CipherOperationMode.DECRYPT);
    cipherInformation.setInType(EncodingType.BASE64); // TODO
    decryptionProvider = CipherFactory.createCipher(cipherInformation, keyStoreWrapper);
  }