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 classEncryptionAlgorithm.Algstatic classEncryptionAlgorithm.Modestatic classEncryptionAlgorithm.Padding
-
Field Summary
Fields Modifier and Type Field Description static EncryptionAlgorithmAES_128_CBCstatic EncryptionAlgorithmAES_128_CBC_PADstatic EncryptionAlgorithmAES_128_ECBstatic EncryptionAlgorithmAES_192_CBCstatic EncryptionAlgorithmAES_192_CBC_PADstatic EncryptionAlgorithmAES_192_ECBstatic EncryptionAlgorithmAES_256_CBCstatic EncryptionAlgorithmAES_256_CBC_PADstatic EncryptionAlgorithmAES_256_ECBstatic EncryptionAlgorithmAES_CBC_PADstatic OBJECT_IDENTIFIERAES_ROOT_OIDstatic EncryptionAlgorithmDES_CBCstatic EncryptionAlgorithmDES_CBC_PADstatic EncryptionAlgorithmDES_ECBstatic EncryptionAlgorithmDES3_CBCstatic EncryptionAlgorithmDES3_CBC_PADstatic EncryptionAlgorithmDES3_ECBstatic EncryptionAlgorithmRC2_CBCstatic EncryptionAlgorithmRC2_CBC_PADstatic EncryptionAlgorithmRC4-
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 protectedEncryptionAlgorithm(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, java.lang.Class<?>[] paramClasses, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength)protectedEncryptionAlgorithm(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 EncryptionAlgorithmfromOID(OBJECT_IDENTIFIER oid)static EncryptionAlgorithmfromString(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.AlggetAlg()intgetBlockSize()intgetIVLength()Returns the number of bytes that this algorithm expects in its initialization vector.intgetKeyStrength()EncryptionAlgorithm.ModegetMode()EncryptionAlgorithm.PaddinggetPadding()EncryptionAlgorithm.PaddinggetPaddingType()booleanisPadded()static EncryptionAlgorithmlookup(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:
trueif 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.
-
-