org.mozilla.jss.crypto

Class PBEAlgorithm


public class PBEAlgorithm
extends KeyGenAlgorithm

Algorithms that can be used for generating symmetric keys from passwords.

Nested Class Summary

Nested classes/interfaces inherited from class org.mozilla.jss.crypto.KeyGenAlgorithm

KeyGenAlgorithm.FixedKeyStrengthValidator, KeyGenAlgorithm.KeyStrengthValidator

Field Summary

static PBEAlgorithm
PBE_MD2_DES_CBC
static PBEAlgorithm
PBE_MD5_DES_CBC
static PBEAlgorithm
PBE_SHA1_DES3_CBC
static PBEAlgorithm
PBE_SHA1_DES_CBC
static PBEAlgorithm
PBE_SHA1_RC2_128_CBC
static PBEAlgorithm
PBE_SHA1_RC2_40_CBC
static PBEAlgorithm
PBE_SHA1_RC4_128
static PBEAlgorithm
PBE_SHA1_RC4_40

Fields inherited from class org.mozilla.jss.crypto.KeyGenAlgorithm

AES, DES, DES3, DESede, PBA_SHA1_HMAC, RC2, RC4

Fields inherited from class org.mozilla.jss.crypto.Algorithm

CKM_AES_CBC, CKM_AES_CBC_PAD, CKM_AES_ECB, CKM_AES_KEY_GEN, CKM_DES3_CBC_PAD, CKM_DES3_ECB, CKM_DES3_KEY_GEN, CKM_DES_CBC_PAD, CKM_DES_KEY_GEN, CKM_DSA_KEY_PAIR_GEN, CKM_EC_KEY_PAIR_GEN, CKM_PBA_SHA1_WITH_SHA1_HMAC, CKM_RC2_CBC_PAD, CKM_RC2_KEY_GEN, CKM_RC4_KEY_GEN, CKM_RSA_PKCS_KEY_PAIR_GEN, CKM_SHA_1_HMAC, SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE, SEC_OID_ANSIX962_ECDSA_SHA256_SIGNATURE, SEC_OID_ANSIX962_ECDSA_SHA384_SIGNATURE, SEC_OID_ANSIX962_ECDSA_SHA512_SIGNATURE, SEC_OID_ANSIX962_EC_PUBLIC_KEY, SEC_OID_ANSIX9_DSA_SIGNATURE, SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST, SEC_OID_DES_CBC, SEC_OID_DES_ECB, SEC_OID_DES_EDE3_CBC, SEC_OID_MD2, SEC_OID_MD5, SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC, SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4, SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC, SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC, SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4, SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION, SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION, SEC_OID_PKCS1_RSA_ENCRYPTION, SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION, SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION, SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION, SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION, SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC, SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC, SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC, SEC_OID_RC2_CBC, SEC_OID_RC4, SEC_OID_SHA1, SEC_OID_SHA256, SEC_OID_SHA384, SEC_OID_SHA512, oid, oidIndex

Constructor Summary

PBEAlgorithm(int oidTag, String name, int validStrength, OBJECT_IDENTIFIER oid, EncryptionAlgorithm encAlg, int saltLength)

Method Summary

EncryptionAlgorithm
getEncryptionAlg()
Returns the EncryptionAlgorithm that should be used with keys generated with this PBEAlgorithm.
int
getSaltLength()
Returns the number of bytes of salt that should be supplied when generating keys with this algorithm.

Methods inherited from class org.mozilla.jss.crypto.KeyGenAlgorithm

fromOID, isValidStrength

Methods inherited from class org.mozilla.jss.crypto.Algorithm

getParameterClass, getParameterClasses, isValidParameterObject, toOID, toString

Field Details

PBE_MD2_DES_CBC

public static final PBEAlgorithm PBE_MD2_DES_CBC

PBE_MD5_DES_CBC

public static final PBEAlgorithm PBE_MD5_DES_CBC

PBE_SHA1_DES3_CBC

public static final PBEAlgorithm PBE_SHA1_DES3_CBC

PBE_SHA1_DES_CBC

public static final PBEAlgorithm PBE_SHA1_DES_CBC

PBE_SHA1_RC2_128_CBC

public static final PBEAlgorithm PBE_SHA1_RC2_128_CBC

PBE_SHA1_RC2_40_CBC

public static final PBEAlgorithm PBE_SHA1_RC2_40_CBC

PBE_SHA1_RC4_128

public static final PBEAlgorithm PBE_SHA1_RC4_128

PBE_SHA1_RC4_40

public static final PBEAlgorithm PBE_SHA1_RC4_40

Constructor Details

PBEAlgorithm

protected PBEAlgorithm(int oidTag,
                       String name,
                       int validStrength,
                       OBJECT_IDENTIFIER oid,
                       EncryptionAlgorithm encAlg,
                       int saltLength)

Method Details

getEncryptionAlg

public EncryptionAlgorithm getEncryptionAlg()
Returns the EncryptionAlgorithm that should be used with keys generated with this PBEAlgorithm. For example, PBE_MD2_DES_CBC.getEncryptionAlg() returns EncryptionAlgorithm.DES_CBC.

getSaltLength

public int getSaltLength()
Returns the number of bytes of salt that should be supplied when generating keys with this algorithm.

PKCS #5 algorithms require exactly 8 bytes of salt. PKCS #12 algorithms take a variable length, but recommend that the salt length be at least as long as the output of the hash function. For SHA-1, the output length is 20 bytes.