org.bouncycastle.crypto

Class PBEParametersGenerator

Known Direct Subclasses:
OpenSSLPBEParametersGenerator, PKCS12ParametersGenerator, PKCS5S1ParametersGenerator, PKCS5S2ParametersGenerator

public abstract class PBEParametersGenerator
extends java.lang.Object

super class for all Password Based Encryption (PBE) parameter generator classes.

Field Summary

protected int
iterationCount
protected byte[]
password
protected byte[]
salt

Constructor Summary

PBEParametersGenerator()
base constructor.

Method Summary

static byte[]
PKCS12PasswordToBytes(char[] password)
converts a password to a byte array according to the scheme in PKCS12 (unicode, big endian, 2 zero pad bytes at the end).
static byte[]
PKCS5PasswordToBytes(char[] password)
converts a password to a byte array according to the scheme in PKCS5 (ascii, no padding)
abstract CipherParameters
generateDerivedMacParameters(int keySize)
generate derived parameters for a key of length keySize, specifically for use with a MAC.
abstract CipherParameters
generateDerivedParameters(int keySize)
generate derived parameters for a key of length keySize.
abstract CipherParameters
generateDerivedParameters(int keySize, int ivSize)
generate derived parameters for a key of length keySize, and an initialisation vector (IV) of length ivSize.
int
getIterationCount()
return the iteration count.
byte[]
getPassword()
return the password byte array.
byte[]
getSalt()
return the salt byte array.
void
init(byte[] password, byte[] salt, int iterationCount)
initialise the PBE generator.

Field Details

iterationCount

protected int iterationCount

password

protected byte[] password

salt

protected byte[] salt

Constructor Details

PBEParametersGenerator

protected PBEParametersGenerator()
base constructor.

Method Details

PKCS12PasswordToBytes

public static byte[] PKCS12PasswordToBytes(char[] password)
converts a password to a byte array according to the scheme in PKCS12 (unicode, big endian, 2 zero pad bytes at the end).
Parameters:
password - a character array reqpresenting the password.
Returns:
a byte array representing the password.

PKCS5PasswordToBytes

public static byte[] PKCS5PasswordToBytes(char[] password)
converts a password to a byte array according to the scheme in PKCS5 (ascii, no padding)
Parameters:
password - a character array reqpresenting the password.
Returns:
a byte array representing the password.

generateDerivedMacParameters

public abstract CipherParameters generateDerivedMacParameters(int keySize)
generate derived parameters for a key of length keySize, specifically for use with a MAC.
Parameters:
keySize - the length, in bits, of the key required.
Returns:
a parameters object representing a key.

generateDerivedParameters

public abstract CipherParameters generateDerivedParameters(int keySize)
generate derived parameters for a key of length keySize.
Parameters:
keySize - the length, in bits, of the key required.
Returns:
a parameters object representing a key.

generateDerivedParameters

public abstract CipherParameters generateDerivedParameters(int keySize,
                                                           int ivSize)
generate derived parameters for a key of length keySize, and an initialisation vector (IV) of length ivSize.
Parameters:
keySize - the length, in bits, of the key required.
ivSize - the length, in bits, of the iv required.
Returns:
a parameters object representing a key and an IV.

getIterationCount

public int getIterationCount()
return the iteration count.
Returns:
the iteration count.

getPassword

public byte[] getPassword()
return the password byte array.
Returns:
the password byte array.

getSalt

public byte[] getSalt()
return the salt byte array.
Returns:
the salt byte array.

init

public void init(byte[] password,
                 byte[] salt,
                 int iterationCount)
initialise the PBE generator.
Parameters:
password - the password converted into bytes (see below).
salt - the salt to be mixed with the password.
iterationCount - the number of iterations the "mixing" function is to be applied for.