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

pack-priv Class PKCS5S1ParametersGenerator<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.KeyParameter, .KeyParameterImpl, .ParametersWithIV, org.bouncycastle.util.Arrays

Generator for PBE derived keys and ivs as defined by PKCS 5 V2.0 Scheme 1. Note this generator is limited to the size of the hash produced by the digest used to drive it.

The document this implementation is based on can be found at RSA's PKCS5 Page

Field Summary

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

Constructor Summary

AccessConstructor and Description
public
PKCS5S1ParametersGenerator(T parameters, Digest
the digest to be used as the source of derived keys.
digest
)

Construct a PKCS 5 Scheme 1 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()

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.
Inherited from org.bouncycastle.crypto.internal.PBEParametersGenerator:
getIterationCountgetParametersgetPasswordgetSaltinitPKCS12PasswordToBytesPKCS5PasswordToBytesPKCS5PasswordToUTF8Bytes

Field Detail

digestback to summary
private Digest digest

Constructor Detail

PKCS5S1ParametersGeneratorback to summary
public PKCS5S1ParametersGenerator(T parameters, Digest digest)

Construct a PKCS 5 Scheme 1 Parameters generator.

Parameters
digest:Digest

the digest to be used as the source of derived keys.

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()

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.