Search in sources :

Example 1 with PasswordCipherException

use of org.apache.openejb.cipher.PasswordCipherException in project tomee by apache.

the class Cipher method main.

public static void main(final String[] args) throws SystemExitException {
    final CommandLineParser parser = new PosixParser();
    // create the Options
    final Options options = new Options();
    options.addOption(option("h", "help", "cmd.cipher.opt.help"));
    options.addOption(option("c", "cipher", "c", "cmd.cipher.opt.impl"));
    options.addOption(option("d", "decrypt", "cmd.cipher.opt.decrypt"));
    options.addOption(option("e", "encrypt", "cmd.cipher.opt.encrypt"));
    final CommandLine line;
    try {
        // parse the command line arguments
        line = parser.parse(options, args);
    } catch (final ParseException exp) {
        help(options);
        throw new SystemExitException(-1);
    }
    if (line.hasOption("help")) {
        help(options);
        return;
    }
    String cipherName = "Static3DES";
    if (line.hasOption("cipher")) {
        cipherName = line.getOptionValue("cipher");
    }
    if (line.getArgList().size() != 1) {
        System.out.println("Must specify either a plain text to encrypt or a ciphered value to decrypt.");
        help(options);
        return;
    }
    final PasswordCipher cipher;
    try {
        cipher = PasswordCipherFactory.getPasswordCipher(cipherName);
    } catch (final PasswordCipherException e) {
        System.out.println("Could not load password cipher implementation class. Check your classpath.");
        availableCiphers();
        throw new SystemExitException(-1);
    }
    if (line.hasOption("decrypt")) {
        final String pwdArg = (String) line.getArgList().get(0);
        final char[] encryptdPassword = pwdArg.toCharArray();
        System.out.println(cipher.decrypt(encryptdPassword));
    } else {
        // if option neither encrypt/decrypt is specified, we assume
        // it is encrypt.
        final String plainPassword = (String) line.getArgList().get(0);
        System.out.println(new String(cipher.encrypt(plainPassword)));
    }
}
Also used : Options(org.apache.commons.cli.Options) CommandLine(org.apache.commons.cli.CommandLine) PasswordCipher(org.apache.openejb.cipher.PasswordCipher) PasswordCipherException(org.apache.openejb.cipher.PasswordCipherException) PosixParser(org.apache.commons.cli.PosixParser) SystemExitException(org.apache.openejb.cli.SystemExitException) CommandLineParser(org.apache.commons.cli.CommandLineParser) ParseException(org.apache.commons.cli.ParseException)

Example 2 with PasswordCipherException

use of org.apache.openejb.cipher.PasswordCipherException in project tomee by apache.

the class PropertyPlaceHolderHelper method decryptIfNeeded.

private static Object decryptIfNeeded(final String replace, final boolean acceptCharArray) {
    if (replace.startsWith(CIPHER_PREFIX)) {
        final String algo = replace.substring(CIPHER_PREFIX.length(), replace.indexOf(':', CIPHER_PREFIX.length() + 1));
        PasswordCipher cipher;
        try {
            cipher = PasswordCipherFactory.getPasswordCipher(algo);
        } catch (final PasswordCipherException ex) {
            try {
                cipher = PasswordCipher.class.cast(Thread.currentThread().getContextClassLoader().loadClass(algo).newInstance());
            } catch (final Exception e) {
                throw new IllegalArgumentException(e);
            }
        }
        final char[] input = replace.substring(CIPHER_PREFIX.length() + algo.length() + 1).toCharArray();
        return acceptCharArray && SafePasswordCipher.class.isInstance(cipher) ? SafePasswordCipher.class.cast(cipher).decryptAsCharArray(input) : cipher.decrypt(input);
    }
    return replace;
}
Also used : PasswordCipher(org.apache.openejb.cipher.PasswordCipher) SafePasswordCipher(org.apache.openejb.cipher.SafePasswordCipher) PasswordCipherException(org.apache.openejb.cipher.PasswordCipherException) PasswordCipherException(org.apache.openejb.cipher.PasswordCipherException)

Aggregations

PasswordCipher (org.apache.openejb.cipher.PasswordCipher)2 PasswordCipherException (org.apache.openejb.cipher.PasswordCipherException)2 CommandLine (org.apache.commons.cli.CommandLine)1 CommandLineParser (org.apache.commons.cli.CommandLineParser)1 Options (org.apache.commons.cli.Options)1 ParseException (org.apache.commons.cli.ParseException)1 PosixParser (org.apache.commons.cli.PosixParser)1 SafePasswordCipher (org.apache.openejb.cipher.SafePasswordCipher)1 SystemExitException (org.apache.openejb.cli.SystemExitException)1