public class PBKDF2Engine extends Object implements PBKDF2
Version 2.0
PBKDF2 (P, S, c, dkLen)
Options:
Input:
Output:
Modifier and Type | Field and Description |
---|---|
protected PBKDF2Parameters |
parameters |
protected PRF |
prf |
Constructor and Description |
---|
PBKDF2Engine()
Constructor for PBKDF2 implementation object.
|
PBKDF2Engine(PBKDF2Parameters parameters)
Constructor for PBKDF2 implementation object.
|
PBKDF2Engine(PBKDF2Parameters parameters,
PRF prf)
Constructor for PBKDF2 implementation object.
|
Modifier and Type | Method and Description |
---|---|
protected void |
_F(byte[] dest,
int offset,
PRF prf,
byte[] S,
int c,
int blockIndex)
Function F.
|
protected void |
assertPRF(byte[] P)
Factory method.
|
protected int |
ceil(int a,
int b)
Integer division with ceiling function.
|
byte[] |
deriveKey(String inputPassword)
Convert String-based input to internal byte array, then invoke PBKDF2.
|
byte[] |
deriveKey(String inputPassword,
int dkLen)
Convert String-based input to internal byte array, then invoke PBKDF2.
|
PBKDF2Parameters |
getParameters()
Allow reading of configured parameters.
|
PRF |
getPseudoRandomFunction()
Get currently set Pseudo Random Function.
|
protected void |
INT(byte[] dest,
int offset,
int i)
Four-octet encoding of the integer i, most significant octet first.
|
protected byte[] |
PBKDF2(PRF prf,
byte[] S,
int c,
int dkLen)
Core Password Based Key Derivation Function 2.
|
void |
setParameters(PBKDF2Parameters parameters)
Allow setting of configured parameters.
|
void |
setPseudoRandomFunction(PRF prf)
Set the Pseudo Random Function to use.
|
boolean |
verifyKey(String inputPassword)
Convert String-based input to internal byte arrays, then invoke PBKDF2
and verify result against the reference data that is supplied in the
PBKDF2Parameters.
|
protected void |
xor(byte[] dest,
byte[] src)
Block-Xor.
|
protected PBKDF2Parameters parameters
protected PRF prf
public PBKDF2Engine()
public PBKDF2Engine(PBKDF2Parameters parameters)
parameters
- Data holder for iteration count, method to use et cetera.public PBKDF2Engine(PBKDF2Parameters parameters, PRF prf)
parameters
- Data holder for iteration count, method to use et cetera.prf
- Supply customer Pseudo Random Function.public byte[] deriveKey(String inputPassword)
PBKDF2
public byte[] deriveKey(String inputPassword, int dkLen)
PBKDF2
public boolean verifyKey(String inputPassword)
PBKDF2
protected void assertPRF(byte[] P)
P
- User-supplied candidate password as array of bytes.public PRF getPseudoRandomFunction()
PBKDF2
getPseudoRandomFunction
in interface PBKDF2
public void setPseudoRandomFunction(PRF prf)
PBKDF2
setPseudoRandomFunction
in interface PBKDF2
prf
- Pseudo Random Function to set.protected byte[] PBKDF2(PRF prf, byte[] S, int c, int dkLen)
prf
- Pseudo Random Function (i.e. HmacSHA1)S
- Salt as array of bytes. null
means no salt.c
- Iteration count (see RFC 2898 4.2)dkLen
- desired length of derived key.protected int ceil(int a, int b)
a
- Numeratorb
- Denominatorprotected void _F(byte[] dest, int offset, PRF prf, byte[] S, int c, int blockIndex)
dest
- Destination byte bufferoffset
- Offset into destination byte bufferprf
- Pseudo Random FunctionS
- Salt as array of bytesc
- Iteration countblockIndex
- The block index (>= 1).protected void xor(byte[] dest, byte[] src)
dest
- destination byte buffersrc
- source bytesprotected void INT(byte[] dest, int offset, int i)
dest
- destination byte bufferoffset
- zero-based offset into desti
- the integer to encodepublic PBKDF2Parameters getParameters()
PBKDF2
getParameters
in interface PBKDF2
public void setParameters(PBKDF2Parameters parameters)
PBKDF2
setParameters
in interface PBKDF2
parameters
- The parameters object to set.Copyright © 2018 PerimeterX. All rights reserved.