public class PBES2
extends javax.crypto.CipherSpi
salt - it should be at least eight octets (64 bits) long
iteration count - default to 10,000 and a minimum of 1,000 is recommended.
Key Derivation Function - PBKDF2 is recommended for new applications; PBKDF1 is included only for compatibility with existing applications. PBKDF2 with Pseudo-random Functions include HMAC with SHA-1, SHA-224, SHA-256, SHA-384, SHA512, SHA-512/224 and SHA-512/256.
Encryption Schemes - an underlying encryption scheme Encryption Schemes such as AES-CBC-Pad.
PBES2Parameters,
PBES2ParameterSpec| Modifier and Type | Field and Description |
|---|---|
static int |
AES_BLOCK_SIZE |
static int |
DEFAULT_COUNT |
static int |
DEFAULT_SALT_LENGTH |
static int |
GCM_IV_LENGTH |
protected AlgorithmID |
m_enc |
protected AlgorithmID |
m_kdf |
protected java.security.AlgorithmParameters |
m_params |
protected AlgorithmID |
m_prf |
static int |
MINIMUM_COUNT |
static int |
TAG_LENGTH_BIT |
| Modifier and Type | Method and Description |
|---|---|
protected byte[] |
engineDoFinal(byte[] input,
int inputOffset,
int inputLen) |
protected int |
engineDoFinal(byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset) |
protected int |
engineGetBlockSize() |
protected byte[] |
engineGetIV() |
protected int |
engineGetOutputSize(int inputLen) |
protected java.security.AlgorithmParameters |
engineGetParameters() |
protected void |
engineInit(int opmode,
java.security.Key key,
java.security.spec.AlgorithmParameterSpec params,
java.security.SecureRandom random) |
protected void |
engineInit(int opmode,
java.security.Key key,
java.security.AlgorithmParameters params,
java.security.SecureRandom random) |
protected void |
engineInit(int opmode,
java.security.Key key,
java.security.SecureRandom random) |
protected void |
engineSetMode(java.lang.String mode) |
protected void |
engineSetPadding(java.lang.String padding) |
protected byte[] |
engineUpdate(byte[] input,
int inputOffset,
int inputLen) |
protected int |
engineUpdate(byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset) |
static java.lang.String |
getEncName(AlgorithmID id) |
static java.lang.String |
getPRFName(AlgorithmID id)
Return the pseudo-random function algorithm name for the PBKDF2.
|
static byte[] |
getRandomNonce(int numBytes)
Return random generated byte array for salt and IV with the provided length in
bytes.
|
protected void |
setEncryptionScheme(java.lang.String enc) |
void |
setPRFName(java.lang.String prf)
Store the pseudo-random function algorithm name for the PBKDF2.
|
public static final int DEFAULT_SALT_LENGTH
public static final int MINIMUM_COUNT
public static final int DEFAULT_COUNT
public static final int AES_BLOCK_SIZE
public static final int TAG_LENGTH_BIT
public static final int GCM_IV_LENGTH
protected AlgorithmID m_kdf
protected AlgorithmID m_prf
protected AlgorithmID m_enc
protected java.security.AlgorithmParameters m_params
protected void setEncryptionScheme(java.lang.String enc)
public static java.lang.String getPRFName(AlgorithmID id)
id - public static java.lang.String getEncName(AlgorithmID id)
public void setPRFName(java.lang.String prf)
prf - public static byte[] getRandomNonce(int numBytes)
numBytes - protected void engineSetMode(java.lang.String mode)
throws java.security.NoSuchAlgorithmException
engineSetMode in class javax.crypto.CipherSpijava.security.NoSuchAlgorithmExceptionprotected void engineSetPadding(java.lang.String padding)
throws javax.crypto.NoSuchPaddingException
engineSetPadding in class javax.crypto.CipherSpijavax.crypto.NoSuchPaddingExceptionprotected int engineGetBlockSize()
engineGetBlockSize in class javax.crypto.CipherSpiprotected int engineGetOutputSize(int inputLen)
engineGetOutputSize in class javax.crypto.CipherSpiprotected byte[] engineGetIV()
engineGetIV in class javax.crypto.CipherSpiprotected java.security.AlgorithmParameters engineGetParameters()
engineGetParameters in class javax.crypto.CipherSpiprotected void engineInit(int opmode,
java.security.Key key,
java.security.SecureRandom random)
throws java.security.InvalidKeyException
engineInit in class javax.crypto.CipherSpijava.security.InvalidKeyExceptionprotected void engineInit(int opmode,
java.security.Key key,
java.security.spec.AlgorithmParameterSpec params,
java.security.SecureRandom random)
throws java.security.InvalidKeyException,
java.security.InvalidAlgorithmParameterException
engineInit in class javax.crypto.CipherSpijava.security.InvalidKeyExceptionjava.security.InvalidAlgorithmParameterExceptionprotected void engineInit(int opmode,
java.security.Key key,
java.security.AlgorithmParameters params,
java.security.SecureRandom random)
throws java.security.InvalidKeyException,
java.security.InvalidAlgorithmParameterException
engineInit in class javax.crypto.CipherSpijava.security.InvalidKeyExceptionjava.security.InvalidAlgorithmParameterExceptionprotected byte[] engineUpdate(byte[] input,
int inputOffset,
int inputLen)
engineUpdate in class javax.crypto.CipherSpiprotected int engineUpdate(byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset)
throws javax.crypto.ShortBufferException
engineUpdate in class javax.crypto.CipherSpijavax.crypto.ShortBufferExceptionprotected byte[] engineDoFinal(byte[] input,
int inputOffset,
int inputLen)
throws javax.crypto.IllegalBlockSizeException,
javax.crypto.BadPaddingException
engineDoFinal in class javax.crypto.CipherSpijavax.crypto.IllegalBlockSizeExceptionjavax.crypto.BadPaddingExceptionprotected int engineDoFinal(byte[] input,
int inputOffset,
int inputLen,
byte[] output,
int outputOffset)
throws javax.crypto.ShortBufferException,
javax.crypto.IllegalBlockSizeException,
javax.crypto.BadPaddingException
engineDoFinal in class javax.crypto.CipherSpijavax.crypto.ShortBufferExceptionjavax.crypto.IllegalBlockSizeExceptionjavax.crypto.BadPaddingException