Example usage for org.bouncycastle.crypto PBEParametersGenerator PKCS5PasswordToUTF8Bytes

List of usage examples for org.bouncycastle.crypto PBEParametersGenerator PKCS5PasswordToUTF8Bytes

Introduction

In this page you can find the example usage for org.bouncycastle.crypto PBEParametersGenerator PKCS5PasswordToUTF8Bytes.

Prototype

public static byte[] PKCS5PasswordToUTF8Bytes(char[] password) 

Source Link

Document

converts a password to a byte array according to the scheme in PKCS5 (UTF-8, no padding)

Usage

From source file:bit.changepurse.wdk.bip.MnemonicService.java

License:Mozilla Public License

private PBEKeySpec createPBESpec(String mnemonic, String passphrase) {
    char[] password = mnemonic.toCharArray();
    byte[] salt = PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(passphrase.toCharArray());

    PBEKeySpec spec = new PBEKeySpec(password, salt, ITERATION_COUNT, DERIVED_KEY_SIZE);
    return spec;//from  w  ww.  j a  va 2 s  .  co m
}

From source file:de.gs_sys.basics.crypto.hmac.PBKDF.java

License:Open Source License

public static byte[] bytePBKDF(String pas, int iterations) {
    if (pas == null)
        return null;

    PKCS5S2ParametersGenerator generator = new PKCS5S2ParametersGenerator();

    // uses PKCS#5 standard
    generator.init(PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(pas.toCharArray()), SALT, iterations);

    // Generate Key 32 chars at 8 bit so total 256 bit
    KeyParameter key = (KeyParameter) generator.generateDerivedMacParameters(KeyBitSize);

    return key.getKey();
}

From source file:de.gs_sys.basics.crypto.hmac.PBKDF.java

License:Open Source License

public static byte[] bigPBKDF(String pas, int iterations, int KeyBitSize) {
    if (pas == null)
        return null;

    PKCS5S2ParametersGenerator generator = new PKCS5S2ParametersGenerator();

    // uses PKCS#5 standard
    generator.init(PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(pas.toCharArray()), SALT, iterations);

    // Generate Key 32 chars at 8 bit so total 256 bit
    KeyParameter key = (KeyParameter) generator.generateDerivedMacParameters(KeyBitSize);

    return key.getKey();
}

From source file:edu.tamu.tcat.crypto.bouncycastle.PBKDF2Impl.java

License:Apache License

@Override
public byte[] passwordToBytes(String password) {
    return PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(password.toCharArray());
}

From source file:org.cryptacular.pbe.OpenSSLEncryptionScheme.java

License:Open Source License

/**
 * Creates a new instance using the given parameters.
 *
 * @param  cipher  Buffered block cipher algorithm.
 * @param  salt  Salt data for key generation function.
 * @param  keyBitLength  Size of derived keys in bits.
 * @param  password  Password used to derive key.
 *//*w  w  w. j a va2s .c  o m*/
public OpenSSLEncryptionScheme(final BufferedBlockCipher cipher, final byte[] salt, final int keyBitLength,
        final char[] password) {
    final OpenSSLPBEParametersGenerator generator = new OpenSSLPBEParametersGenerator();
    generator.init(PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(password), salt);
    setCipher(cipher);
    setCipherParameters(generator.generateDerivedParameters(keyBitLength));
}

From source file:org.cryptacular.pbe.OpenSSLEncryptionScheme.java

License:Open Source License

/**
 * Creates a new instance from an algorithm and salt data.
 *
 * @param  algorithm  OpenSSL key encryption algorithm.
 * @param  iv  Explicit IV; first 8 bytes also used for salt in PBE key
 *             generation./*  w  w w  .  j  a v a2  s .  c  om*/
 * @param  password  Password used to derive key.
 */
public OpenSSLEncryptionScheme(final OpenSSLAlgorithm algorithm, final byte[] iv, final char[] password) {
    byte[] salt = iv;
    if (iv.length > 8) {
        salt = new byte[8];
        System.arraycopy(iv, 0, salt, 0, 8);
    }

    final OpenSSLPBEParametersGenerator generator = new OpenSSLPBEParametersGenerator();
    generator.init(PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(password), salt);
    setCipher(algorithm.getCipherSpec().newInstance());
    setCipherParameters(new ParametersWithIV(
            generator.generateDerivedParameters(algorithm.getCipherSpec().getKeyLength()), iv));
}

From source file:org.cryptacular.pbe.PBES1EncryptionScheme.java

License:Open Source License

/**
 * Creates a new instance with the given parameters.
 *
 * @param  alg  Describes hash/algorithm pair suitable for PBES1 scheme.
 * @param  params  Key generation function salt and iteration count.
 * @param  password  Password used to derive key.
 *//*from   w w  w . j  a  va  2 s.c om*/
public PBES1EncryptionScheme(final PBES1Algorithm alg, final PBEParameter params, final char[] password) {
    final byte[] salt = params.getSalt();
    final int iterations = params.getIterationCount().intValue();
    final PKCS5S1ParametersGenerator generator = new PKCS5S1ParametersGenerator(
            alg.getDigestSpec().newInstance());
    generator.init(PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(password), salt, iterations);
    setCipher(alg.getCipherSpec().newInstance());
    setCipherParameters(generator.generateDerivedParameters(KEY_LENGTH, IV_LENGTH));
}

From source file:org.cryptacular.pbe.PBES2EncryptionScheme.java

License:Open Source License

/**
 * Creates a new instance with the given parameters.
 *
 * @param  params  PBES2 parameters describing the key derivation function and
 *                 encryption scheme./*from   w  ww .j  a  v a 2s.  c  o m*/
 * @param  password  Password used to derive key.
 */
public PBES2EncryptionScheme(final PBES2Parameters params, final char[] password) {
    final PBKDF2Params kdfParams = PBKDF2Params.getInstance(params.getKeyDerivationFunc().getParameters());
    final byte[] salt = kdfParams.getSalt();
    final int iterations = kdfParams.getIterationCount().intValue();
    if (kdfParams.getKeyLength() != null) {
        keyLength = kdfParams.getKeyLength().intValue() * 8;
    }

    final PKCS5S2ParametersGenerator generator = new PKCS5S2ParametersGenerator();
    generator.init(PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(password), salt, iterations);
    initCipher(generator, params.getEncryptionScheme());
}

From source file:org.springframework.security.crypto.encrypt.BouncyCastleAesBytesEncryptor.java

License:Apache License

BouncyCastleAesBytesEncryptor(String password, CharSequence salt, BytesKeyGenerator ivGenerator) {
    if (ivGenerator.getKeyLength() != 16) {
        throw new IllegalArgumentException("ivGenerator key length != block size 16");
    }//from  w  w  w. j  av a 2 s.c o m
    this.ivGenerator = ivGenerator;
    PBEParametersGenerator keyGenerator = new PKCS5S2ParametersGenerator();
    byte[] pkcs12PasswordBytes = PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(password.toCharArray());
    keyGenerator.init(pkcs12PasswordBytes, Hex.decode(salt), 1024);
    this.secretKey = (KeyParameter) keyGenerator.generateDerivedParameters(256);
}

From source file:org.xwiki.crypto.password.PasswordToByteConverter.java

License:Open Source License

/**
 * Convert password to bytes./*www .java 2 s .  c om*/
 *
 * @param password password to convert.
 * @param mode mode of conversion.
 * @return a bytes array representing the password.
 */
public static byte[] convert(char[] password, ToBytesMode mode) {
    byte[] passwd;

    switch (mode) {
    case PKCS12:
        passwd = PBEParametersGenerator.PKCS12PasswordToBytes(password);
        break;
    case PKCS5:
        passwd = PBEParametersGenerator.PKCS5PasswordToBytes(password);
        break;
    default:
        passwd = PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(password);
        break;
    }

    return passwd;
}