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

pack-priv Class PKCS5S2ParametersGenerator<T extends Parameters>

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

Generator for PBE derived keys and ivs as defined by PKCS 5 V2.0 Scheme 2. This generator uses a SHA-1 HMac as the calculation function.

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

Field Summary

Modifier and TypeField and Description
private Mac
private byte[]
Inherited from org.bouncycastle.crypto.internal.PBEParametersGenerator:
iterationCountpasswordsalt

Constructor Summary

AccessConstructor and Description
public
PKCS5S2ParametersGenerator(T parameters, Mac hMac)

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 void
F(byte[] S, int c, byte[] iBuf, byte[] out, int outOff)

private byte[]
generateDerivedKey(int dkLen)

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

hMacback to summary
private Mac hMac
stateback to summary
private byte[] state

Constructor Detail

PKCS5S2ParametersGeneratorback to summary
public PKCS5S2ParametersGenerator(T parameters, Mac hMac)

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.

Fback to summary
private void F(byte[] S, int c, byte[] iBuf, byte[] out, int outOff)
generateDerivedKeyback to summary
private byte[] generateDerivedKey(int dkLen)
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.

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.

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.