| package org.bouncycastle.jcajce; |
| |
| import org.bouncycastle.crypto.CharToByteConverter; |
| |
| /** |
| * A password based key for use with PBKDF1 as defined in PKCS#5. |
| */ |
| public class PBKDF1Key |
| implements PBKDFKey |
| { |
| private final char[] password; |
| private final CharToByteConverter converter; |
| |
| /** |
| * Basic constructor for a password based key with generation parameters for PBKDF1. |
| * |
| * @param password password to use. |
| * @param converter the converter to use to turn the char array into octets. |
| */ |
| public PBKDF1Key(char[] password, CharToByteConverter converter) |
| { |
| this.password = new char[password.length]; |
| this.converter = converter; |
| |
| System.arraycopy(password, 0, this.password, 0, password.length); |
| } |
| |
| /** |
| * Return a reference to the char[] array holding the password. |
| * |
| * @return a reference to the password array. |
| */ |
| public char[] getPassword() |
| { |
| return password; |
| } |
| |
| /** |
| * Return the password based key derivation function this key is for, |
| * |
| * @return the string "PBKDF1" |
| */ |
| public String getAlgorithm() |
| { |
| return "PBKDF1"; |
| } |
| |
| /** |
| * Return the format encoding. |
| * |
| * @return the type name representing a char[] to byte[] conversion. |
| */ |
| public String getFormat() |
| { |
| return converter.getType(); |
| } |
| |
| /** |
| * Return the password converted to bytes. |
| * |
| * @return the password converted to a byte array. |
| */ |
| public byte[] getEncoded() |
| { |
| return converter.convert(password); |
| } |
| } |