Class PKCS12ParametersGenerator
- java.lang.Object
-
- org.gudy.bouncycastle.crypto.PBEParametersGenerator
-
- org.gudy.bouncycastle.crypto.generators.PKCS12ParametersGenerator
-
public class PKCS12ParametersGenerator extends PBEParametersGenerator
Generator for PBE derived keys and ivs as defined by PKCS 12 V1.0.The document this implementation is based on can be found at RSA's PKCS12 Page
-
-
Field Summary
Fields Modifier and Type Field Description private Digest
digest
static int
IV_MATERIAL
static int
KEY_MATERIAL
static int
MAC_MATERIAL
private int
u
private int
v
-
Fields inherited from class org.gudy.bouncycastle.crypto.PBEParametersGenerator
iterationCount, password, salt
-
-
Constructor Summary
Constructors Constructor Description PKCS12ParametersGenerator(Digest digest)
Construct a PKCS 12 Parameters generator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
adjust(byte[] a, int aOff, byte[] b)
add a + b + 1, returning the result in a.private byte[]
generateDerivedKey(int idByte, int n)
generation of a derived key ala PKCS12 V1.0.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.-
Methods inherited from class org.gudy.bouncycastle.crypto.PBEParametersGenerator
getIterationCount, getPassword, getSalt, init, PKCS12PasswordToBytes, PKCS5PasswordToBytes
-
-
-
-
Field Detail
-
KEY_MATERIAL
public static final int KEY_MATERIAL
- See Also:
- Constant Field Values
-
IV_MATERIAL
public static final int IV_MATERIAL
- See Also:
- Constant Field Values
-
MAC_MATERIAL
public static final int MAC_MATERIAL
- See Also:
- Constant Field Values
-
digest
private Digest digest
-
u
private int u
-
v
private int v
-
-
Constructor Detail
-
PKCS12ParametersGenerator
public PKCS12ParametersGenerator(Digest digest)
Construct a PKCS 12 Parameters generator. This constructor will accept MD5, SHA1, and RIPEMD160.- Parameters:
digest
- the digest to be used as the source of derived keys.- Throws:
java.lang.IllegalArgumentException
- if an unknown digest is passed in.
-
-
Method Detail
-
adjust
private void adjust(byte[] a, int aOff, byte[] b)
add a + b + 1, returning the result in a. The a value is treated as a BigInteger of length (b.length * 8) bits. The result is modulo 2^b.length in case of overflow.
-
generateDerivedKey
private byte[] generateDerivedKey(int idByte, int n)
generation of a derived key ala PKCS12 V1.0.
-
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 classPBEParametersGenerator
- Parameters:
keySize
- the size of the key we want (in bits)- Returns:
- a KeyParameter object.
-
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 classPBEParametersGenerator
- 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.
-
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 classPBEParametersGenerator
- Parameters:
keySize
- the size of the key we want (in bits)- Returns:
- a KeyParameter object.
-
-