Bouncy Castle Cryptography Library 1.77.0

org.bouncycastle.crypto.generators
Class OpenSSLPBEParametersGenerator

java.lang.Object
  |
  +--org.bouncycastle.crypto.PBEParametersGenerator
        |
        +--org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator

public class OpenSSLPBEParametersGenerator
extends PBEParametersGenerator

Generator for PBE derived keys and ivs as usd by OpenSSL.

Originally this scheme was a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an iteration count of 1. The default digest was changed to SHA-256 with OpenSSL 1.1.0. This implementation still defaults to MD5, but the digest can now be set.


Fields inherited from class org.bouncycastle.crypto.PBEParametersGenerator
iterationCount, password, salt
 
Constructor Summary
OpenSSLPBEParametersGenerator()
          Construct a OpenSSL Parameters generator - digest the original MD5.
OpenSSLPBEParametersGenerator(Digest digest)
          Construct a OpenSSL Parameters generator - digest as specified.
 
Method Summary
 CipherParameters generateDerivedMacParameters(int keySize)
          Generate a key parameter for use with a MAC derived from the password, salt, and iteration count we are currently initialised with.
 CipherParameters generateDerivedParameters(int keySize)
          Generate a key parameter derived from the password, salt, and iteration count we are currently initialised with.
 CipherParameters generateDerivedParameters(int keySize, int ivSize)
          Generate a key with initialisation vector parameter derived from the password, salt, and iteration count we are currently initialised with.
 void init(byte[] password, byte[] salt)
          Initialise - note the iteration count for this algorithm is fixed at 1.
 
Methods inherited from class org.bouncycastle.crypto.PBEParametersGenerator
getIterationCount, getPassword, getSalt, init, PKCS12PasswordToBytes, PKCS5PasswordToBytes, PKCS5PasswordToUTF8Bytes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OpenSSLPBEParametersGenerator

public OpenSSLPBEParametersGenerator()
Construct a OpenSSL Parameters generator - digest the original MD5.

OpenSSLPBEParametersGenerator

public OpenSSLPBEParametersGenerator(Digest digest)
Construct a OpenSSL Parameters generator - digest as specified.
Parameters:
digest - the digest to use as the PRF.
Method Detail

init

public void init(byte[] password,
                 byte[] salt)
Initialise - note the iteration count for this algorithm is fixed at 1.
Parameters:
password - password to use.
salt - salt to use.

generateDerivedParameters

public CipherParameters generateDerivedParameters(int keySize)
Generate a key parameter derived from the password, salt, and iteration count we are currently initialised with.
Overrides:
generateDerivedParameters in class PBEParametersGenerator
Parameters:
keySize - the size of the key we want (in bits)
Returns:
a KeyParameter object.
Throws:
java.lang.IllegalArgumentException - if the key length larger than the base hash size.

generateDerivedParameters

public CipherParameters generateDerivedParameters(int keySize,
                                                  int ivSize)
Generate a key with initialisation vector parameter derived from the password, salt, and iteration count we are currently initialised with.
Overrides:
generateDerivedParameters in class PBEParametersGenerator
Parameters:
keySize - the size of the key we want (in bits)
ivSize - the size of the iv we want (in bits)
Returns:
a ParametersWithIV object.
Throws:
java.lang.IllegalArgumentException - if keySize + ivSize is larger than the base hash size.

generateDerivedMacParameters

public CipherParameters generateDerivedMacParameters(int keySize)
Generate a key parameter for use with a MAC derived from the password, salt, and iteration count we are currently initialised with.
Overrides:
generateDerivedMacParameters in class PBEParametersGenerator
Parameters:
keySize - the size of the key we want (in bits)
Returns:
a KeyParameter object.
Throws:
java.lang.IllegalArgumentException - if the key length larger than the base hash size.

Bouncy Castle Cryptography Library 1.77.0