org.jboss.seam.security.crypto
public class PBKDF2Engine extends Object implements PBKDF2
Request for Comments: 2898 PKCS #5: Password-Based Cryptography Specification
Version 2.0
PBKDF2 (P, S, c, dkLen)
Options:
Input:
Output:
A free Java implementation of Password Based Key Derivation Function 2 as defined by RFC 2898. Copyright (c) 2007 Matthias Gärtner
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
For Details, see http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
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
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
- b
- protected 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
- protected void xor(byte[] dest, byte[] src)
dest
- src
- protected void INT(byte[] dest, int offset, int i)
dest
- offset
- i
- public PBKDF2Parameters getParameters()
PBKDF2
getParameters
in interface PBKDF2
public void setParameters(PBKDF2Parameters parameters)
PBKDF2
setParameters
in interface PBKDF2
public void setPseudoRandomFunction(PRF prf)
PBKDF2
setPseudoRandomFunction
in interface PBKDF2
prf
- Pseudo Random Function to set.Copyright © 2015 Seam Framework. All Rights Reserved.