Class Algorithm

java.lang.Object
org.mozilla.jss.crypto.Algorithm
Direct Known Subclasses:
DigestAlgorithm, EncryptionAlgorithm, KeyGenAlgorithm, KeyPairAlgorithm, KeyWrapAlgorithm, SignatureAlgorithm

public class Algorithm extends Object
Represents a cryptographic algorithm.
See Also:
  • Field Details

    • oidIndex

      protected int oidIndex
      Index into the SECOidTag array in Algorithm.c.
    • name

      String name
    • oid

      protected OBJECT_IDENTIFIER oid
    • parameterClasses

      private Class<?>[] parameterClasses
    • ANSI_X9_ALGORITHM

      static final OBJECT_IDENTIFIER ANSI_X9_ALGORITHM
    • ANSI_X962_OID

      static final OBJECT_IDENTIFIER ANSI_X962_OID
    • SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION

      protected static final int SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION
      See Also:
    • SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION

      protected static final int SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION
      See Also:
    • SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION

      @Deprecated(since="5.0.1", forRemoval=true) protected static final int SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST

      @Deprecated(since="5.0.1", forRemoval=true) protected static final int SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • SEC_OID_PKCS1_RSA_ENCRYPTION

      protected static final int SEC_OID_PKCS1_RSA_ENCRYPTION
      See Also:
    • CKM_RSA_PKCS_KEY_PAIR_GEN

      protected static final int CKM_RSA_PKCS_KEY_PAIR_GEN
      See Also:
    • CKM_DSA_KEY_PAIR_GEN

      protected static final int CKM_DSA_KEY_PAIR_GEN
      See Also:
    • SEC_OID_ANSIX9_DSA_SIGNATURE

      protected static final int SEC_OID_ANSIX9_DSA_SIGNATURE
      See Also:
    • SEC_OID_RC4

      protected static final int SEC_OID_RC4
      See Also:
    • SEC_OID_DES_ECB

      protected static final int SEC_OID_DES_ECB
      See Also:
    • SEC_OID_DES_CBC

      protected static final int SEC_OID_DES_CBC
      See Also:
    • CKM_DES_CBC_PAD

      protected static final int CKM_DES_CBC_PAD
      See Also:
    • CKM_DES3_ECB

      protected static final int CKM_DES3_ECB
      See Also:
    • SEC_OID_DES_EDE3_CBC

      protected static final int SEC_OID_DES_EDE3_CBC
      See Also:
    • CKM_DES3_CBC_PAD

      protected static final int CKM_DES3_CBC_PAD
      See Also:
    • CKM_DES_KEY_GEN

      protected static final int CKM_DES_KEY_GEN
      See Also:
    • CKM_DES3_KEY_GEN

      protected static final int CKM_DES3_KEY_GEN
      See Also:
    • CKM_RC4_KEY_GEN

      protected static final int CKM_RC4_KEY_GEN
      See Also:
    • SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC

      protected static final int SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC
      See Also:
    • SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC

      protected static final int SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC
      See Also:
    • SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC

      @Deprecated(since="5.0.1", forRemoval=true) protected static final int SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4

      @Deprecated(since="5.0.1", forRemoval=true) protected static final int SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4

      @Deprecated(since="5.0.1", forRemoval=true) protected static final int SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC

      @Deprecated(since="5.0.1", forRemoval=true) protected static final int SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • SEC_OID_MD2

      protected static final int SEC_OID_MD2
      See Also:
    • SEC_OID_MD5

      protected static final int SEC_OID_MD5
      See Also:
    • SEC_OID_SHA1

      @Deprecated(since="5.0.1", forRemoval=true) protected static final int SEC_OID_SHA1
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • CKM_SHA_1_HMAC

      @Deprecated(since="5.0.1", forRemoval=true) protected static final int CKM_SHA_1_HMAC
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC

      @Deprecated(since="5.0.1", forRemoval=true) protected static final int SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC

      @Deprecated(since="5.0.1", forRemoval=true) protected static final int SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • SEC_OID_RC2_CBC

      protected static final int SEC_OID_RC2_CBC
      See Also:
    • CKM_PBA_SHA1_WITH_SHA1_HMAC

      @Deprecated(since="5.0.1", forRemoval=true) protected static final int CKM_PBA_SHA1_WITH_SHA1_HMAC
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • CKM_AES_KEY_GEN

      protected static final int CKM_AES_KEY_GEN
      See Also:
    • CKM_AES_ECB

      protected static final int CKM_AES_ECB
      See Also:
    • CKM_AES_CBC

      protected static final int CKM_AES_CBC
      See Also:
    • CKM_AES_CBC_PAD

      protected static final int CKM_AES_CBC_PAD
      See Also:
    • CKM_RC2_CBC_PAD

      protected static final int CKM_RC2_CBC_PAD
      See Also:
    • CKM_RC2_KEY_GEN

      protected static final int CKM_RC2_KEY_GEN
      See Also:
    • SEC_OID_SHA256

      protected static final int SEC_OID_SHA256
      See Also:
    • SEC_OID_SHA384

      protected static final int SEC_OID_SHA384
      See Also:
    • SEC_OID_SHA512

      protected static final int SEC_OID_SHA512
      See Also:
    • SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION

      protected static final int SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION
      See Also:
    • SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION

      protected static final int SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION
      See Also:
    • SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION

      protected static final int SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION
      See Also:
    • SEC_OID_ANSIX962_EC_PUBLIC_KEY

      protected static final int SEC_OID_ANSIX962_EC_PUBLIC_KEY
      See Also:
    • SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE

      @Deprecated(since="5.0.1", forRemoval=true) protected static final int SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • CKM_EC_KEY_PAIR_GEN

      protected static final int CKM_EC_KEY_PAIR_GEN
      See Also:
    • SEC_OID_ANSIX962_ECDSA_SHA256_SIGNATURE

      protected static final int SEC_OID_ANSIX962_ECDSA_SHA256_SIGNATURE
      See Also:
    • SEC_OID_ANSIX962_ECDSA_SHA384_SIGNATURE

      protected static final int SEC_OID_ANSIX962_ECDSA_SHA384_SIGNATURE
      See Also:
    • SEC_OID_ANSIX962_ECDSA_SHA512_SIGNATURE

      protected static final int SEC_OID_ANSIX962_ECDSA_SHA512_SIGNATURE
      See Also:
    • SEC_OID_HMAC_SHA256

      protected static final int SEC_OID_HMAC_SHA256
      See Also:
    • SEC_OID_HMAC_SHA384

      protected static final int SEC_OID_HMAC_SHA384
      See Also:
    • SEC_OID_HMAC_SHA512

      protected static final int SEC_OID_HMAC_SHA512
      See Also:
    • SEC_OID_PKCS5_PBKDF2

      protected static final int SEC_OID_PKCS5_PBKDF2
      See Also:
    • SEC_OID_PKCS5_PBES2

      protected static final int SEC_OID_PKCS5_PBES2
      See Also:
    • SEC_OID_PKCS5_PBMAC1

      protected static final int SEC_OID_PKCS5_PBMAC1
      See Also:
    • SEC_OID_ANSIX962_ECDSA_SIGNATURE_SPECIFIED_DIGEST

      protected static final int SEC_OID_ANSIX962_ECDSA_SIGNATURE_SPECIFIED_DIGEST
      See Also:
    • CKM_NSS_AES_KEY_WRAP

      protected static final int CKM_NSS_AES_KEY_WRAP
      See Also:
    • CKM_NSS_AES_KEY_WRAP_PAD

      protected static final int CKM_NSS_AES_KEY_WRAP_PAD
      See Also:
    • SEC_OID_AES_128_ECB

      protected static final int SEC_OID_AES_128_ECB
      See Also:
    • SEC_OID_AES_128_CBC

      protected static final int SEC_OID_AES_128_CBC
      See Also:
    • SEC_OID_AES_192_ECB

      protected static final int SEC_OID_AES_192_ECB
      See Also:
    • SEC_OID_AES_192_CBC

      protected static final int SEC_OID_AES_192_CBC
      See Also:
    • SEC_OID_AES_256_ECB

      protected static final int SEC_OID_AES_256_ECB
      See Also:
    • SEC_OID_AES_256_CBC

      protected static final int SEC_OID_AES_256_CBC
      See Also:
    • CKM_AES_KEY_WRAP

      protected static final int CKM_AES_KEY_WRAP
      See Also:
    • CKM_AES_KEY_WRAP_PAD

      protected static final int CKM_AES_KEY_WRAP_PAD
      See Also:
    • CKM_SHA256_HMAC

      protected static final int CKM_SHA256_HMAC
      See Also:
    • CKM_SHA384_HMAC

      protected static final int CKM_SHA384_HMAC
      See Also:
    • CKM_SHA512_HMAC

      protected static final int CKM_SHA512_HMAC
      See Also:
    • CKM_AES_CMAC

      protected static final int CKM_AES_CMAC
      See Also:
    • CKM_GENERIC_SECRET_KEY_GEN

      protected static final int CKM_GENERIC_SECRET_KEY_GEN
      See Also:
    • CKM_SP800_108_COUNTER_KDF

      protected static final int CKM_SP800_108_COUNTER_KDF
      See Also:
    • CKM_SP800_108_FEEDBACK_KDF

      protected static final int CKM_SP800_108_FEEDBACK_KDF
      See Also:
    • CKM_SP800_108_DOUBLE_PIPELINE_KDF

      protected static final int CKM_SP800_108_DOUBLE_PIPELINE_KDF
      See Also:
    • CKM_NSS_SP800_108_COUNTER_KDF_DERIVE_DATA

      protected static final int CKM_NSS_SP800_108_COUNTER_KDF_DERIVE_DATA
      See Also:
    • CKM_NSS_SP800_108_FEEDBACK_KDF_DERIVE_DATA

      protected static final int CKM_NSS_SP800_108_FEEDBACK_KDF_DERIVE_DATA
      See Also:
    • CKM_NSS_SP800_108_DOUBLE_PIPELINE_KDF_DERIVE_DATA

      protected static final int CKM_NSS_SP800_108_DOUBLE_PIPELINE_KDF_DERIVE_DATA
      See Also:
    • SEC_OID_PKCS1_RSA_PSS_SIGNATURE

      protected static final int SEC_OID_PKCS1_RSA_PSS_SIGNATURE
      See Also:
    • CKM_RSA_PKCS_OAEP

      protected static final int CKM_RSA_PKCS_OAEP
      See Also:
    • CKM_AES_KEY_WRAP_KWP

      protected static final int CKM_AES_KEY_WRAP_KWP
      See Also:
    • SEC_OID_AES_128_KEY_WRAP_KWP

      protected static final int SEC_OID_AES_128_KEY_WRAP_KWP
      See Also:
    • SEC_OID_AES_192_KEY_WRAP_KWP

      protected static final int SEC_OID_AES_192_KEY_WRAP_KWP
      See Also:
    • SEC_OID_AES_256_KEY_WRAP_KWP

      protected static final int SEC_OID_AES_256_KEY_WRAP_KWP
      See Also:
    • SEC_OID_HMAC_SHA1

      protected static final int SEC_OID_HMAC_SHA1
      See Also:
  • Constructor Details

    • Algorithm

      protected Algorithm(int oidIndex, String name)
      Parameters:
      oidIndex - Index of the oid that this algorithm represents.
      name - A String representation of the Algorithm.
    • Algorithm

      protected Algorithm(int oidIndex, String name, OBJECT_IDENTIFIER oid)
      Parameters:
      oidIndex - Index of the oid that this algorithm represents.
      name - A String representation of the Algorithm.
      oid - The object identifier for this Algorithm.
    • Algorithm

      protected Algorithm(int oidIndex, String name, OBJECT_IDENTIFIER oid, Class<?> paramClass)
    • Algorithm

      protected Algorithm(int oidIndex, String name, OBJECT_IDENTIFIER oid, Class<?>[] paramClasses)
  • Method Details

    • toString

      public String toString()
      Returns a String representation of the algorithm.
      Overrides:
      toString in class Object
    • toOID

      Returns:
      The object identifier for this algorithm.
      Throws:
      NoSuchAlgorithmException - If no OID is registered for this algorithm.
    • getParameterClass

      @Deprecated public Class<?> getParameterClass()
      Deprecated.
      Call getParameterClasses() instead.
      The type of parameter that this algorithm expects. Returns null if this algorithm does not take any parameters. If the algorithm can accept more than one type of parameter, this method returns only one of them. It is better to call getParameterClasses().
      Returns:
      Parameter type.
    • getParameterClasses

      public Class<?>[] getParameterClasses()
      The types of parameter that this algorithm expects. Returns null if this algorithm does not take any parameters.
      Returns:
      Parameter types.
    • isValidParameterObject

      public boolean isValidParameterObject(Object o)
      Validates if the given Object can be used as a parameter for this algorithm.

      If null is passed in, this method will return true if this algorithm takes no parameters, and false if this algorithm does take parameters.

      Parameters:
      o - Object.
      Returns:
      Returns true if the given Object can be used as a parameter.
    • getEnum

      public PKCS11Algorithm getEnum()