org.mozilla.jss.crypto

Class EncryptionAlgorithm


public class EncryptionAlgorithm
extends Algorithm

An algorithm for performing symmetric encryption.

Nested Class Summary

static class
EncryptionAlgorithm.Alg
static class
EncryptionAlgorithm.Mode
static class
EncryptionAlgorithm.Padding

Field Summary

static EncryptionAlgorithm
AES_128_CBC
static EncryptionAlgorithm
AES_128_ECB
static EncryptionAlgorithm
AES_192_CBC
static EncryptionAlgorithm
AES_192_ECB
static EncryptionAlgorithm
AES_256_CBC
static EncryptionAlgorithm
AES_256_ECB
static EncryptionAlgorithm
AES_CBC_PAD
static OBJECT_IDENTIFIER
AES_ROOT_OID
static EncryptionAlgorithm
DES3_CBC
static EncryptionAlgorithm
DES3_CBC_PAD
static EncryptionAlgorithm
DES3_ECB
static EncryptionAlgorithm
DES_CBC
static EncryptionAlgorithm
DES_CBC_PAD
static EncryptionAlgorithm
DES_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_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_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_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_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, oid, oidIndex

Constructor Summary

EncryptionAlgorithm(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, Class paramClass, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength)
EncryptionAlgorithm(int oidTag, EncryptionAlgorithm.Alg alg, EncryptionAlgorithm.Mode mode, EncryptionAlgorithm.Padding padding, Class[] paramClasses, int blockSize, OBJECT_IDENTIFIER oid, int keyStrength)

Method Summary

static 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.
EncryptionAlgorithm.Alg
getAlg()
Returns the base algorithm, without the parameters.
int
getBlockSize()
The blocksize of the algorithm in bytes.
int
getIVLength()
Returns the number of bytes that this algorithm expects in its initialization vector.
int
getKeyStrength()
Returns the key strength of this algorithm in bits.
EncryptionAlgorithm.Mode
getMode()
Returns the mode of this algorithm.
EncryptionAlgorithm.Padding
getPadding()
Returns the padding type of this algorithm.
EncryptionAlgorithm.Padding
getPaddingType()
Returns the type of padding for this algorithm.
boolean
isPadded()
Deprecated. Call getPaddingType() instead.
static EncryptionAlgorithm
lookup(String algName, String modeName, String paddingName, int keyStrength)

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

getParameterClass, getParameterClasses, isValidParameterObject, toOID, toString

Field Details

AES_128_CBC

public static final EncryptionAlgorithm AES_128_CBC


AES_128_ECB

public static final EncryptionAlgorithm AES_128_ECB


AES_192_CBC

public static final EncryptionAlgorithm AES_192_CBC


AES_192_ECB

public static final EncryptionAlgorithm AES_192_ECB


AES_256_CBC

public static final EncryptionAlgorithm AES_256_CBC


AES_256_ECB

public static final EncryptionAlgorithm AES_256_ECB


AES_CBC_PAD

public static final EncryptionAlgorithm AES_CBC_PAD


AES_ROOT_OID

public static final OBJECT_IDENTIFIER AES_ROOT_OID


DES3_CBC

public static final EncryptionAlgorithm DES3_CBC


DES3_CBC_PAD

public static final EncryptionAlgorithm DES3_CBC_PAD


DES3_ECB

public static final EncryptionAlgorithm DES3_ECB


DES_CBC

public static final EncryptionAlgorithm DES_CBC


DES_CBC_PAD

public static final EncryptionAlgorithm DES_CBC_PAD


DES_ECB

public static final EncryptionAlgorithm DES_ECB


RC2_CBC

public static final EncryptionAlgorithm RC2_CBC


RC2_CBC_PAD

public static final EncryptionAlgorithm RC2_CBC_PAD


RC4

public static final EncryptionAlgorithm RC4

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)

Method Details

fromOID

public static EncryptionAlgorithm fromOID(OBJECT_IDENTIFIER oid)
            throws NoSuchAlgorithmException


fromString

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.


getAlg

public EncryptionAlgorithm.Alg getAlg()
Returns the base algorithm, without the parameters. For example, the base algorithm of "AES/CBC/NoPadding" is "AES".


getBlockSize

public int getBlockSize()
The blocksize of the algorithm in bytes. Stream algorithms (such as RC4) have a blocksize of 1.


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.


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.


getMode

public EncryptionAlgorithm.Mode getMode()
Returns the mode of this algorithm.


getPadding

public EncryptionAlgorithm.Padding getPadding()
Returns the padding type of this algorithm.


getPaddingType

public EncryptionAlgorithm.Padding getPaddingType()
Returns the type of padding for this algorithm.


isPadded

public boolean isPadded()

Deprecated. Call getPaddingType() instead.

Returns true if this algorithm performs padding.


lookup

public static EncryptionAlgorithm lookup(String algName,
                                         String modeName,
                                         String paddingName,
                                         int keyStrength)
            throws NoSuchAlgorithmException