org.gudy.bouncycastle.crypto.generators
Class OpenSSLPBEParametersGenerator

java.lang.Object
  extended by org.gudy.bouncycastle.crypto.PBEParametersGenerator
      extended by org.gudy.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator

public class OpenSSLPBEParametersGenerator
extends PBEParametersGenerator

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

The scheme is a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an iteration count of 1.


Field Summary
 
Fields inherited from class org.gudy.bouncycastle.crypto.PBEParametersGenerator
iterationCount, password, salt
 
Constructor Summary
OpenSSLPBEParametersGenerator()
          Construct a OpenSSL Parameters generator.
 
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.gudy.bouncycastle.crypto.PBEParametersGenerator
getIterationCount, getPassword, getSalt, init, PKCS12PasswordToBytes, PKCS5PasswordToBytes
 
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.

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.

Specified by:
generateDerivedParameters in class PBEParametersGenerator
Parameters:
keySize - the size of the key we want (in bits)
Returns:
a KeyParameter object.
Throws:
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.

Specified by:
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:
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.

Specified by:
generateDerivedMacParameters in class PBEParametersGenerator
Parameters:
keySize - the size of the key we want (in bits)
Returns:
a KeyParameter object.
Throws:
IllegalArgumentException - if the key length larger than the base hash size.