org.jboss.seam.security.crypto
Interface PBKDF2

All Known Implementing Classes:
PBKDF2Engine

public interface PBKDF2

Copied from Matthias Gartner's PKCS#5 implementation - see http://rtner.de/software/PBKDF2.html.

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.

Version:
1.0
Author:
Matthias Gärtner

Method Summary
 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.
 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.
 

Method Detail

deriveKey

byte[] deriveKey(String inputPassword)
Convert String-based input to internal byte array, then invoke PBKDF2. Desired key length defaults to Pseudo Random Function block size.

Parameters:
inputPassword - Candidate password to compute the derived key for.
Returns:
internal byte array

deriveKey

byte[] deriveKey(String inputPassword,
                 int dkLen)
Convert String-based input to internal byte array, then invoke PBKDF2.

Parameters:
inputPassword - Candidate password to compute the derived key for.
dkLen - Specify desired key length
Returns:
internal byte array

verifyKey

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.

Parameters:
inputPassword - Candidate password to compute the derived key for.
Returns:
true password match; false incorrect password

getParameters

PBKDF2Parameters getParameters()
Allow reading of configured parameters.

Returns:
Currently set parameters.

setParameters

void setParameters(PBKDF2Parameters parameters)
Allow setting of configured parameters.

Parameters:
parameters -

getPseudoRandomFunction

PRF getPseudoRandomFunction()
Get currently set Pseudo Random Function.

Returns:
Currently set Pseudo Random Function

setPseudoRandomFunction

void setPseudoRandomFunction(PRF prf)
Set the Pseudo Random Function to use. Note that deriveKeys/getPRF does init this object using the supplied candidate password. If this is undesired, one has to override getPRF.

Parameters:
prf - Pseudo Random Function to set.