For the latest news and information visit The GNU Crypto project

## gnu.crypto.prng
Class PBKDF2

    java.lang.Object
      |
      +--gnu.crypto.prng.BasePRNG
            |
            +--gnu.crypto.prng.PBKDF2

All Implemented Interfaces:
  java.lang.Cloneable, IRandom

public class PBKDF2
extends BasePRNG
implements java.lang.Cloneable

An implementation of the key derivation function KDF2 from PKCS #5: Password-Based Cryptography (PBE). This KDF is essentially a way to transform a password and a salt into a stream of random bytes, which may then be used to initialize a cipher or a MAC.

This version uses a MAC as its pseudo-random function, and the password is used as the key.

References:

1. B. Kaliski, RFC 2898: Password-Based Cryptography Specification, Version 2.0

Field Summary

Fields inherited from class gnu.crypto.prng.BasePRNG
`buffer, initialised, name, ndx`

Constructor Summary
`PBKDF2(IMac mac)` Creates a new PBKDF2 object.

Method Summary
`java.lang.Object` `clone()` Returns a clone copy of this instance.
`void` `fillBlock()`
`void` `setup(java.util.Map attributes)`

Methods inherited from class gnu.crypto.prng.BasePRNG
`init, isInitialised, name, nextByte, nextBytes`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PBKDF2

    public PBKDF2(IMac mac)

  Creates a new PBKDF2 object. The argument is the MAC that will serve as the pseudo-random function. The MAC does not need to be initialized.

Parameters:
  `mac` - The pseudo-random function.

Method Detail

### clone

    public java.lang.Object clone()

  Description copied from interface: `IRandom`

  Returns a clone copy of this instance.

  Specified by:
    `clone` in interface `IRandom`
  Specified by:
    `clone` in class `BasePRNG`
  Returns:
    a clone copy of this instance.

### setup

    public void setup(java.util.Map attributes)

  Specified by:
    `setup` in class `BasePRNG`

### fillBlock

    public void fillBlock()
                   throws LimitReachedException

  Specified by:
    `fillBlock` in class `BasePRNG`
    `LimitReachedException`

For the latest news and information visit The GNU Crypto project

Copyright © 2001, 2002, 2003, 2004 Free Software Foundation, Inc.