|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jboss.seam.security.crypto.PBKDF2Engine
public class PBKDF2Engine
Copied from Matthias Gartner's PKCS#5 implementation - see http://rtner.de/software/PBKDF2.html
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.
Field Summary | |
---|---|
protected PBKDF2Parameters |
parameters
|
protected PRF |
prf
|
Constructor Summary | |
---|---|
PBKDF2Engine()
Constructor for PBKDF2 implementation object. |
|
PBKDF2Engine(PBKDF2Parameters parameters)
Constructor for PBKDF2 implementation object. |
|
PBKDF2Engine(PBKDF2Parameters parameters,
PRF prf)
Constructor for PBKDF2 implementation object. |
Method Summary | |
---|---|
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. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected PBKDF2Parameters parameters
protected PRF prf
Constructor Detail |
---|
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.Method Detail |
---|
public byte[] deriveKey(String inputPassword)
PBKDF2
deriveKey
in interface PBKDF2
inputPassword
- Candidate password to compute the derived key for.
public byte[] deriveKey(String inputPassword, int dkLen)
PBKDF2
deriveKey
in interface PBKDF2
inputPassword
- Candidate password to compute the derived key for.dkLen
- Specify desired key length
public boolean verifyKey(String inputPassword)
PBKDF2
verifyKey
in interface PBKDF2
inputPassword
- Candidate password to compute the derived key for.
true
password match; false
incorrect
passwordprotected 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.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |