Top Description Fields Constructors Methods
org.bouncycastle.crypto.general

pack-priv Class OpenSSLPBEParametersGenerator<T extends Parameters>

extends PBEParametersGenerator<T extends Parameters>
Class Inheritance
Imports
org.bouncycastle.crypto.Parameters, org.bouncycastle.crypto.internal.CipherParameters, .Digest, .PBEParametersGenerator, org.bouncycastle.crypto.internal.params.KeyParameterImpl, .ParametersWithIV, org.bouncycastle.util.Arrays

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

Modifier and TypeField and Description
private Digest
Inherited from org.bouncycastle.crypto.internal.PBEParametersGenerator:
iterationCountpasswordsalt

Constructor Summary

AccessConstructor and Description
public
OpenSSLPBEParametersGenerator(T parameters)

Construct a OpenSSL Parameters generator.

Method Summary

Modifier and TypeMethod and Description
public byte[]
deriveKey(PasswordBasedDeriver.KeyType
type of key to be calculated.
keyType
,
int
the number of bytes to be produced.
keySizeInBytes
)

Implements org.bouncycastle.crypto.PasswordBasedDeriver.deriveKey.

Derive a key of the given keySizeInBytes length.
public byte[][]
deriveKeyAndIV(PasswordBasedDeriver.KeyType
type of key to be calculated.
keyType
,
int
the number of bytes to be produced.
keySizeInBytes
,
int
the number of bytes to be produced.
ivSizeInBytes
)

Implements org.bouncycastle.crypto.PasswordBasedDeriver.deriveKeyAndIV.

Derive a key of the given keySizeInBytes length and an iv of ivSizeInBytes length.
private byte[]
generateDerivedKey(int bytesNeeded)

the derived key function, the ith hash of the password and the salt.

public CipherParameters

Returns:

a KeyParameter object.
generateDerivedMacParameters
(int
the size of the key we want (in bits)
keySize
)

Implements abstract org.bouncycastle.crypto.internal.PBEParametersGenerator.generateDerivedMacParameters.

Generate a key parameter for use with a MAC derived from the password, salt, and iteration count we are currently initialised with.
public CipherParameters

Returns:

a KeyParameter object.
generateDerivedParameters
(int
the size of the key we want (in bits)
keySize
)

Implements abstract org.bouncycastle.crypto.internal.PBEParametersGenerator.generateDerivedParameters.

Generate a key parameter derived from the password, salt, and iteration count we are currently initialised with.
public CipherParameters

Returns:

a ParametersWithIV object.
generateDerivedParameters
(int
the size of the key we want (in bits)
keySize
,
int
the size of the iv we want (in bits)
ivSize
)

Implements abstract org.bouncycastle.crypto.internal.PBEParametersGenerator.generateDerivedParameters.

Generate a key with initialisation vector parameter derived from the password, salt, and iteration count we are currently initialised with.
public void
init(byte[]
password to use.
password
,
byte[]
salt to use.
salt
)

Initialise - note the iteration count for this algorithm is fixed at 1.

Inherited from org.bouncycastle.crypto.internal.PBEParametersGenerator:
getIterationCountgetParametersgetPasswordgetSaltinitPKCS12PasswordToBytesPKCS5PasswordToBytesPKCS5PasswordToUTF8Bytes

Field Detail

digestback to summary
private Digest digest

Constructor Detail

OpenSSLPBEParametersGeneratorback to summary
public OpenSSLPBEParametersGenerator(T parameters)

Construct a OpenSSL Parameters generator.

Method Detail

deriveKeyback to summary
public byte[] deriveKey(PasswordBasedDeriver.KeyType keyType, int keySizeInBytes)

Implements org.bouncycastle.crypto.PasswordBasedDeriver.deriveKey.

Doc from org.bouncycastle.crypto.PasswordBasedDeriver.deriveKey.

Derive a key of the given keySizeInBytes length.

Parameters
keyType:PasswordBasedDeriver.KeyType

type of key to be calculated.

keySizeInBytes:int

the number of bytes to be produced.

Returns:byte[]

a byte array containing the raw key data.

deriveKeyAndIVback to summary
public byte[][] deriveKeyAndIV(PasswordBasedDeriver.KeyType keyType, int keySizeInBytes, int ivSizeInBytes)

Implements org.bouncycastle.crypto.PasswordBasedDeriver.deriveKeyAndIV.

Doc from org.bouncycastle.crypto.PasswordBasedDeriver.deriveKeyAndIV.

Derive a key of the given keySizeInBytes length and an iv of ivSizeInBytes length.

Parameters
keyType:PasswordBasedDeriver.KeyType

type of key to be calculated.

keySizeInBytes:int

the number of bytes to be produced.

ivSizeInBytes:int

the number of bytes to be produced.

Returns:byte[][]

a 2 element byte[] array containing the raw key data in element 0, the iv in element 1.

generateDerivedKeyback to summary
private byte[] generateDerivedKey(int bytesNeeded)

the derived key function, the ith hash of the password and the salt.

generateDerivedMacParametersback to summary
public CipherParameters generateDerivedMacParameters(int keySize)

Implements abstract org.bouncycastle.crypto.internal.PBEParametersGenerator.generateDerivedMacParameters.

Generate a key parameter for use with a MAC derived from the password, salt, and iteration count we are currently initialised with.

Parameters
keySize:int

the size of the key we want (in bits)

Returns:CipherParameters

a KeyParameter object.

Exceptions
IllegalArgumentException:
if the key length larger than the base hash size.
generateDerivedParametersback to summary
public CipherParameters generateDerivedParameters(int keySize)

Implements abstract org.bouncycastle.crypto.internal.PBEParametersGenerator.generateDerivedParameters.

Generate a key parameter derived from the password, salt, and iteration count we are currently initialised with.

Parameters
keySize:int

the size of the key we want (in bits)

Returns:CipherParameters

a KeyParameter object.

Exceptions
IllegalArgumentException:
if the key length larger than the base hash size.
generateDerivedParametersback to summary
public CipherParameters generateDerivedParameters(int keySize, int ivSize)

Implements abstract org.bouncycastle.crypto.internal.PBEParametersGenerator.generateDerivedParameters.

Generate a key with initialisation vector parameter derived from the password, salt, and iteration count we are currently initialised with.

Parameters
keySize:int

the size of the key we want (in bits)

ivSize:int

the size of the iv we want (in bits)

Returns:CipherParameters

a ParametersWithIV object.

Exceptions
IllegalArgumentException:
if keySize + ivSize is larger than the base hash size.
initback to summary
public void init(byte[] password, byte[] salt)

Initialise - note the iteration count for this algorithm is fixed at 1.

Parameters
password:byte[]

password to use.

salt:byte[]

salt to use.