Package org.mozilla.jss.crypto
Class EncryptionAlgorithm
- java.lang.Object
-
- org.mozilla.jss.crypto.Algorithm
-
- org.mozilla.jss.crypto.EncryptionAlgorithm
-
public class EncryptionAlgorithm extends Algorithm
An algorithm for performing symmetric encryption.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
EncryptionAlgorithm.Alg
static class
EncryptionAlgorithm.Mode
static class
EncryptionAlgorithm.Padding
-
Field Summary
Fields Modifier and Type Field Description static EncryptionAlgorithm
AES_128_CBC
static EncryptionAlgorithm
AES_128_CBC_PAD
static EncryptionAlgorithm
AES_128_ECB
static EncryptionAlgorithm
AES_192_CBC
static EncryptionAlgorithm
AES_192_CBC_PAD
static EncryptionAlgorithm
AES_192_ECB
static EncryptionAlgorithm
AES_256_CBC
static EncryptionAlgorithm
AES_256_CBC_PAD
static EncryptionAlgorithm
AES_256_ECB
static EncryptionAlgorithm
AES_CBC_PAD
static OBJECT_IDENTIFIER
AES_ROOT_OID
static EncryptionAlgorithm
DES_CBC
static EncryptionAlgorithm
DES_CBC_PAD
static EncryptionAlgorithm
DES_ECB
static EncryptionAlgorithm
DES3_CBC
static EncryptionAlgorithm
DES3_CBC_PAD
static EncryptionAlgorithm
DES3_ECB
static EncryptionAlgorithm
RC2_CBC
static EncryptionAlgorithm
RC2_CBC_PAD
static EncryptionAlgorithm
RC4
-
Fields inherited from class org.mozilla.jss.crypto.Algorithm
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_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_NSS_AES_KEY_WRAP, CKM_NSS_AES_KEY_WRAP_PAD, 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, CKM_SHA256_HMAC, CKM_SHA384_HMAC, CKM_SHA512_HMAC, oid, oidIndex, SEC_OID_AES_128_CBC, SEC_OID_AES_128_ECB, SEC_OID_AES_192_CBC, SEC_OID_AES_192_ECB, SEC_OID_AES_256_CBC, SEC_OID_AES_256_ECB, 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_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_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
Constructors Modifier Constructor Description protected
EncryptionAlgorithm(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, java.lang.Class<?>[] paramClasses, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength)
protected
EncryptionAlgorithm(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, java.lang.Class<?> paramClass, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static EncryptionAlgorithm
fromOID(OBJECT_IDENTIFIER oid)
static EncryptionAlgorithm
fromString(java.lang.String name)
Deprecated.This method is deprecated because algorithm strings don't contain key length, which is necessary to distinguish between AES algorithms.EncryptionAlgorithm.Alg
getAlg()
int
getBlockSize()
int
getIVLength()
Returns the number of bytes that this algorithm expects in its initialization vector.int
getKeyStrength()
EncryptionAlgorithm.Mode
getMode()
EncryptionAlgorithm.Padding
getPadding()
EncryptionAlgorithm.Padding
getPaddingType()
boolean
isPadded()
static EncryptionAlgorithm
lookup(java.lang.String algName, java.lang.String modeName, java.lang.String paddingName, int keyStrength)
-
Methods inherited from class org.mozilla.jss.crypto.Algorithm
getEnum, getParameterClass, getParameterClasses, isValidParameterObject, toOID, toString
-
-
-
-
Field Detail
-
RC4
public static final EncryptionAlgorithm RC4
-
DES_ECB
public static final EncryptionAlgorithm DES_ECB
-
DES_CBC
public static final EncryptionAlgorithm DES_CBC
-
DES_CBC_PAD
public static final EncryptionAlgorithm DES_CBC_PAD
-
DES3_ECB
public static final EncryptionAlgorithm DES3_ECB
-
DES3_CBC
public static final EncryptionAlgorithm DES3_CBC
-
DES3_CBC_PAD
public static final EncryptionAlgorithm DES3_CBC_PAD
-
RC2_CBC
public static final EncryptionAlgorithm RC2_CBC
-
RC2_CBC_PAD
public static final EncryptionAlgorithm RC2_CBC_PAD
-
AES_ROOT_OID
public static final OBJECT_IDENTIFIER AES_ROOT_OID
-
AES_128_ECB
public static final EncryptionAlgorithm AES_128_ECB
-
AES_128_CBC
public static final EncryptionAlgorithm AES_128_CBC
-
AES_128_CBC_PAD
public static final EncryptionAlgorithm AES_128_CBC_PAD
-
AES_192_ECB
public static final EncryptionAlgorithm AES_192_ECB
-
AES_192_CBC
public static final EncryptionAlgorithm AES_192_CBC
-
AES_192_CBC_PAD
public static final EncryptionAlgorithm AES_192_CBC_PAD
-
AES_256_ECB
public static final EncryptionAlgorithm AES_256_ECB
-
AES_256_CBC
public static final EncryptionAlgorithm AES_256_CBC
-
AES_CBC_PAD
public static final EncryptionAlgorithm AES_CBC_PAD
-
AES_256_CBC_PAD
public static final EncryptionAlgorithm AES_256_CBC_PAD
-
-
Constructor Detail
-
EncryptionAlgorithm
protected EncryptionAlgorithm(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, java.lang.Class<?> paramClass, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength)
-
EncryptionAlgorithm
protected EncryptionAlgorithm(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, java.lang.Class<?>[] paramClasses, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength)
-
-
Method Detail
-
getAlg
public EncryptionAlgorithm.Alg getAlg()
- Returns:
- The base algorithm, without the parameters. For example, the base algorithm of "AES/CBC/NoPadding" is "AES".
-
getMode
public EncryptionAlgorithm.Mode getMode()
- Returns:
- The mode of this algorithm.
-
getPadding
public EncryptionAlgorithm.Padding 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
public static EncryptionAlgorithm fromOID(OBJECT_IDENTIFIER oid) throws java.security.NoSuchAlgorithmException
- Throws:
java.security.NoSuchAlgorithmException
-
fromString
@Deprecated public static EncryptionAlgorithm fromString(java.lang.String name) throws java.security.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:
java.security.NoSuchAlgorithmException
- If the algorithm is not found.
-
lookup
public static EncryptionAlgorithm lookup(java.lang.String algName, java.lang.String modeName, java.lang.String paddingName, int keyStrength) throws java.security.NoSuchAlgorithmException
- Throws:
java.security.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
public EncryptionAlgorithm.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.
-
-