Package org.mozilla.jss.crypto
Class EncryptionAlgorithm
java.lang.Object
org.mozilla.jss.crypto.Algorithm
org.mozilla.jss.crypto.EncryptionAlgorithm
An algorithm for performing symmetric encryption.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static class
static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final OBJECT_IDENTIFIER
private EncryptionAlgorithm.Alg
private static Vector
<EncryptionAlgorithm> private int
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
private static Class<?>[]
private int
private EncryptionAlgorithm.Mode
private static Hashtable
<String, EncryptionAlgorithm> private static Hashtable
<OBJECT_IDENTIFIER, EncryptionAlgorithm> private EncryptionAlgorithm.Padding
static final EncryptionAlgorithm
static final EncryptionAlgorithm
static final EncryptionAlgorithm
Fields inherited from class org.mozilla.jss.crypto.Algorithm
ANSI_X9_ALGORITHM, ANSI_X962_OID, CKM_AES_CBC, CKM_AES_CBC_PAD, CKM_AES_CMAC, CKM_AES_ECB, CKM_AES_KEY_GEN, CKM_AES_KEY_WRAP, CKM_AES_KEY_WRAP_KWP, CKM_AES_KEY_WRAP_PAD, CKM_DES_CBC_PAD, CKM_DES_KEY_GEN, CKM_DES3_CBC_PAD, CKM_DES3_ECB, CKM_DES3_KEY_GEN, CKM_DSA_KEY_PAIR_GEN, CKM_EC_KEY_PAIR_GEN, CKM_GENERIC_SECRET_KEY_GEN, CKM_NSS_AES_KEY_WRAP, CKM_NSS_AES_KEY_WRAP_PAD, CKM_NSS_SP800_108_COUNTER_KDF_DERIVE_DATA, CKM_NSS_SP800_108_DOUBLE_PIPELINE_KDF_DERIVE_DATA, CKM_NSS_SP800_108_FEEDBACK_KDF_DERIVE_DATA, 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_RSA_PKCS_OAEP, CKM_SHA_1_HMAC, CKM_SHA256_HMAC, CKM_SHA384_HMAC, CKM_SHA512_HMAC, CKM_SP800_108_COUNTER_KDF, CKM_SP800_108_DOUBLE_PIPELINE_KDF, CKM_SP800_108_FEEDBACK_KDF, name, oid, oidIndex, SEC_OID_AES_128_CBC, SEC_OID_AES_128_ECB, SEC_OID_AES_128_KEY_WRAP_KWP, SEC_OID_AES_192_CBC, SEC_OID_AES_192_ECB, SEC_OID_AES_192_KEY_WRAP_KWP, SEC_OID_AES_256_CBC, SEC_OID_AES_256_ECB, SEC_OID_AES_256_KEY_WRAP_KWP, SEC_OID_ANSIX9_DSA_SIGNATURE, SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST, SEC_OID_ANSIX962_EC_PUBLIC_KEY, 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_ECDSA_SIGNATURE_SPECIFIED_DIGEST, SEC_OID_DES_CBC, SEC_OID_DES_ECB, SEC_OID_DES_EDE3_CBC, SEC_OID_HMAC_SHA1, SEC_OID_HMAC_SHA256, SEC_OID_HMAC_SHA384, SEC_OID_HMAC_SHA512, SEC_OID_MD2, SEC_OID_MD5, SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION, SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION, SEC_OID_PKCS1_RSA_ENCRYPTION, SEC_OID_PKCS1_RSA_PSS_SIGNATURE, 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_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_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_PKCS5_PBES2, SEC_OID_PKCS5_PBKDF2, SEC_OID_PKCS5_PBMAC1, SEC_OID_RC2_CBC, SEC_OID_RC4, SEC_OID_SHA1, SEC_OID_SHA256, SEC_OID_SHA384, SEC_OID_SHA512
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
EncryptionAlgorithm
(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, Class<?>[] paramClasses, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength) protected
EncryptionAlgorithm
(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, Class<?>[] paramClasses, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength, String name) protected
EncryptionAlgorithm
(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, Class<?> paramClass, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength) protected
EncryptionAlgorithm
(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, Class<?> paramClass, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength, String name) -
Method Summary
Modifier and TypeMethodDescriptionstatic EncryptionAlgorithm
fromOID
(OBJECT_IDENTIFIER oid) static EncryptionAlgorithm
fromString
(String name) Deprecated.This method is deprecated because algorithm strings don't contain key length, which is necessary to distinguish between AES algorithms.getAlg()
int
int
Returns the number of bytes that this algorithm expects in its initialization vector.int
getMode()
boolean
isPadded()
static EncryptionAlgorithm
private static String
makeName
(EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding) Methods inherited from class org.mozilla.jss.crypto.Algorithm
getEnum, getParameterClass, getParameterClasses, isValidParameterObject, toOID, toString
-
Field Details
-
blockSize
private int blockSize -
alg
-
mode
-
padding
-
keyStrength
private int keyStrength -
oidMap
-
nameMap
-
algList
-
IVParameterSpecClasses
-
RC4
-
DES_ECB
-
DES_CBC
-
DES_CBC_PAD
-
DES3_ECB
-
DES3_CBC
-
DES3_CBC_PAD
-
RC2_CBC
-
RC2_CBC_PAD
-
AES_ROOT_OID
-
AES_128_ECB
-
AES_128_CBC
-
AES_128_CBC_PAD
-
AES_192_ECB
-
AES_192_CBC
-
AES_192_CBC_PAD
-
AES_256_ECB
-
AES_256_CBC
-
AES_CBC_PAD
-
AES_256_CBC_PAD
-
AES_128_KEY_WRAP_KWP
-
AES_192_KEY_WRAP_KWP
-
AES_256_KEY_WRAP_KWP
-
-
Constructor Details
-
EncryptionAlgorithm
protected EncryptionAlgorithm(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, Class<?> paramClass, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength) -
EncryptionAlgorithm
protected EncryptionAlgorithm(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, Class<?>[] paramClasses, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength) -
EncryptionAlgorithm
protected EncryptionAlgorithm(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, Class<?> paramClass, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength, String name) -
EncryptionAlgorithm
protected EncryptionAlgorithm(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, Class<?>[] paramClasses, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength, String name)
-
-
Method Details
-
makeName
private static String makeName(EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding) -
getAlg
- Returns:
- The base algorithm, without the parameters. For example, the base algorithm of "AES/CBC/NoPadding" is "AES".
-
getMode
- Returns:
- The mode of this algorithm.
-
getPadding
- Returns:
- The padding type of this algorithm.
-
getKeyStrength
public int getKeyStrength()- Returns:
- The key strength of this algorithm in bits. Algorithms that use continuously variable key sizes (such as RC4) will return 0 to indicate they can use any key size.
-
fromOID
- Throws:
NoSuchAlgorithmException
-
fromString
@Deprecated public static EncryptionAlgorithm fromString(String name) throws NoSuchAlgorithmException Deprecated.This method is deprecated because algorithm strings don't contain key length, which is necessary to distinguish between AES algorithms.- Parameters:
name
- Algorithm name.- Returns:
- Encryption algorithm.
- Throws:
NoSuchAlgorithmException
- If the algorithm is not found.
-
lookup
public static EncryptionAlgorithm lookup(String algName, String modeName, String paddingName, int keyStrength) throws NoSuchAlgorithmException - Throws:
NoSuchAlgorithmException
-
getBlockSize
public int getBlockSize()- Returns:
- The blocksize of the algorithm in bytes. Stream algorithms (such as RC4) have a blocksize of 1.
-
isPadded
public boolean isPadded()- Returns:
true
if this algorithm performs padding.
-
getPaddingType
- Returns:
- The type of padding for this algorithm.
-
getIVLength
public int getIVLength()Returns the number of bytes that this algorithm expects in its initialization vector.- Returns:
- The size in bytes of the IV for this algorithm. A size of 0 means this algorithm does not take an IV.
-