List of Constants

Mechanism Information Flags

Bit Flag Mask Meaning
CKF_HW 0x00000001 True if the mechanism is performed by the device; false if the mechanism is performed in software
CKF_ENCRYPT 0x00000100 True if the mechanism can be used with C_EncryptInit
CKF_DECRYPT 0x00000200 True if the mechanism can be used with C_DecryptInit
CKF_DIGEST 0x00000400 True if the mechanism can be used with C_DigestInit
CKF_SIGN 0x00000800 True if the mechanism can be used with C_SignInit
CKF_VERIFY 0x00002000 True if the mechanism can be used with C_VerifyInit. Must be false for this version.
CKF_GENERATE 0x00008000 True if the mechanism can be used with C_GenerateKey. Must be false for this version.
CKF_GENERATE_KEY_PAIR 0x00010000 True if the mechanism can be used with C_GenerateKeyPair. Must be false for this version.
CKF_WRAP 0x00020000 True if the mechanism can be used with C_WrapKey. Must be false for this version.
CKF_UNWRAP 0x00040000 True if the mechanism can be used with C_UnwrapKey. Must be false for this version.
CKF_EXTENSION 0x80000000 True if there is an extension to the flags; false if no extensions. Must be false for this version.

Mechanisms

The following table lists which Cryptoki mechanisms (CK_MECHANISM_TYPE) are supported by different cryptographic operations.

Lines in red correspond to unsupported mechanisms.

  Functions
Mechanism Encrypt & Decrypt Sign & Verify SR & VR Digest Gen. Key/Key Pair Wrap & Unwrap Derive
CKM_RSA_PKCS_KEY_PAIR_GEN            
CKM_RSA_X9_31_KEY_PAIR_GEN            
CKM_RSA_PKCS      
CKM_RSA_PKCS_OAEP          
CKM_RSA_PKCS_PSS          
CKM_RSA_9796          
CKM_RSA_X_509        
CKM_RSA_X9_31            
CKM_MD2_RSA_PKCS            
CKM_MD5_RSA_PKCS            
CKM_SHA1_RSA_PKCS            
CKM_SHA256_RSA_PKCS            
CKM_SHA384_RSA_PKCS            
CKM_SHA512_RSA_PKCS            
CKM_RIPEMD128_RSA_PKCS            
CKM_RIPEMD160_RSA_PKCS            
CKM_SHA1_RSA_PKCS_PSS            
CKM_SHA256_RSA_PKCS_PSS            
CKM_SHA384_RSA_PKCS_PSS            
CKM_SHA512_RSA_PKCS_PSS            
CKM_SHA1_RSA_X9_31            
CKM_DSA_KEY_PAIR_GEN            
CKM_DSA_PARAMETER_GEN            
CKM_DSA            
CKM_DSA_SHA1            
CKM_FORTEZZA_TIMESTAMP            
CKM_EC_KEY_PAIR_GEN (CKM_ECDSA_KEY_PAIR_GEN)            
CKM_ECDSA            
CKM_ECDSA_SHA1            
CKM_ECDH1_DERIVE            
CKM_ECDH1_COFACTOR_DERIVE            
CKM_ECMQV_DERIVE            
CKM_DH_PKCS_KEY_PAIR_GEN            
CKM_DH_PKCS_PARAMETER_GEN            
CKM_DH_PKCS_DERIVE            
CKM_X9_42_DH_KEY_PAIR_GEN            
CKM_X9_42_DH_PKCS_PARAMETER_GEN            
CKM_X9_42_DH_DERIVE            
CKM_X9_42_DH_HYBRID_DERIVE            
CKM_X9_42_MQV_DERIVE            
CKM_KEA_KEY_PAIR_GEN            
CKM_KEA_KEY_DERIVE            
CKM_GENERIC_SECRET_KEY_GEN            
CKM_RC2_KEY_GEN            
CKM_RC2_ECB          
CKM_RC2_CBC          
CKM_RC2_CBC_PAD          
CKM_RC2_MAC_GENERAL            
CKM_RC2_MAC            

CKM_RC4_KEY_GEN

           

CKM_RC4

           

CKM_RC5_KEY_GEN

           

CKM_RC5_ECB

         

CKM_RC5_CBC

         

CKM_RC5_CBC_PAD

         

CKM_RC5_MAC_GENERAL

           
CKM_RC5_MAC            
CKM_AES_KEY_GEN***            
CKM_AES_ECB***          
CKM_AES_CBC***          
CKM_AES_CBC_PAD***          
CKM_AES_MAC_GENERAL***            
CKM_AES_MAC***            
CKM_DES_KEY_GEN***            
CKM_DES_ECB***          
CKM_DES_CBC***          
CKM_DES_CBC_PAD***          
CKM_DES_MAC_GENERAL***            
CKM_DES_MAC***            
CKM_DES2_KEY_GEN***            
CKM_DES3_KEY_GEN***            
CKM_DES3_ECB***          
CKM_DES3_CBC***          
CKM_DES3_CBC_PAD***          
CKM_DES3_MAC_GENERAL***            
CKM_DES3_MAC***            
CKM_CAST_KEY_GEN            
CKM_CAST_ECB          
CKM_CAST_CBC          
CKM_CAST_CBC_PAD          
CKM_CAST_MAC_GENERAL            
CKM_CAST_MAC            
CKM_CAST3_KEY_GEN            
CKM_CAST3_ECB          
CKM_CAST3_CBC          
CKM_CAST3_CBC_PAD          
CKM_CAST3_MAC_GENERAL            
CKM_CAST3_MAC            
CKM_CAST128_KEY_GEN (CKM_CAST5_KEY_GEN)            
CKM_CAST128_ECB (CKM_CAST5_ECB)          
CKM_CAST128_CBC (CKM_CAST5_CBC)          
CKM_CAST128_CBC_PAD (CKM_CAST5_CBC_PAD)          
CKM_CAST128_MAC_GENERAL (CKM_CAST5_MAC_GENERAL)            
CKM_CAST128_MAC (CKM_CAST5_MAC)            
CKM_IDEA_KEY_GEN            
CKM_IDEA_ECB          
CKM_IDEA_CBC          
CKM_IDEA_CBC_PAD          
CKM_IDEA_MAC_GENERAL            
CKM_IDEA_MAC            
CKM_CDMF_KEY_GEN            
CKM_CDMF_ECB          
CKM_CDMF_CBC          
CKM_CDMF_CBC_PAD          
CKM_CDMF_MAC_GENERAL            
CKM_CDMF_MAC            
CKM_DES_ECB_ENCRYPT_DATA            
CKM_DES_CBC_ENCRYPT_DATA            
CKM_DES3_ECB_ENCRYPT_DATA            
CKM_DES3_CBC_ENCRYPT_DATA            
CKM_AES_ECB_ENCRYPT_DATA            
CKM_AES_CBC_ENCRYPT_DATA            
CKM_SKIPJACK_KEY_GEN            
CKM_SKIPJACK_ECB64            
CKM_SKIPJACK_CBC64            
CKM_SKIPJACK_OFB64            
CKM_SKIPJACK_CFB64            
CKM_SKIPJACK_CFB32            
CKM_SKIPJACK_CFB16            
CKM_SKIPJACK_CFB8            
CKM_SKIPJACK_WRAP            
CKM_SKIPJACK_PRIVATE_WRAP            
CKM_SKIPJACK_RELAYX            
CKM_BATON_KEY_GEN            
CKM_BATON_ECB128            
CKM_BATON_ECB96            
CKM_BATON_CBC128            
CKM_BATON_COUNTER            
CKM_BATON_SHUFFLE            
CKM_BATON_WRAP            
CKM_JUNIPER_KEY_GEN            
CKM_JUNIPER_ECB128            
CKM_JUNIPER_CBC128            
CKM_JUNIPER_COUNTER            
CKM_JUNIPER_SHUFFLE            
CKM_JUNIPER_WRAP            
CKM_MD2            
CKM_MD2_HMAC_GENERAL            
CKM_MD2_HMAC            
CKM_MD2_KEY_DERIVATION            
CKM_MD5            
CKM_MD5_HMAC_GENERAL            
CKM_MD5_HMAC            
CKM_MD5_KEY_DERIVATION            
CKM_SHA_1            
CKM_SHA_1_HMAC_GENERAL            
CKM_SHA_1_HMAC            
CKM_SHA1_KEY_DERIVATION            
CKM_SHA256            
CKM_SHA256_HMAC_GENERAL            
CKM_SHA256_HMAC            
CKM_SHA256_KEY_DERIVATION            
CKM_SHA384            
CKM_SHA384_HMAC_GENERAL            
CKM_SHA384_HMAC            
CKM_SHA384_KEY_DERIVATION            
CKM_SHA512            
CKM_SHA512_HMAC_GENERAL            
CKM_SHA512_HMAC            
CKM_SHA512_KEY_DERIVATION            
CKM_RIPEMD128            
CKM_RIPEMD128_HMAC_GENERAL            
CKM_RIPEMD128_HMAC            
CKM_RIPEMD160            
CKM_RIPEMD160_HMAC_GENERAL            
CKM_RIPEMD160_HMAC            
CKM_FASTHASH            
CKM_PBE_MD2_DES_CBC            
CKM_PBE_MD5_DES_CBC            
CKM_PBE_MD5_CAST_CBC            
CKM_PBE_MD5_CAST3_CBC            
CKM_PBE_MD5_CAST128_CBC (CKM_PBE_MD5_CAST5_CBC)            
CKM_PBE_SHA1_CAST128_CBC (CKM_PBE_SHA1_CAST5_CBC)            
CKM_PBE_SHA1_RC4_128            
CKM_PBE_SHA1_RC4_40            
CKM_PBE_SHA1_DES3_EDE_CBC            
CKM_PBE_SHA1_DES2_EDE_CBC            
CKM_PBE_SHA1_RC2_128_CBC            
CKM_PBE_SHA1_RC2_40_CBC            
CKM_PBA_SHA1_WITH_SHA1_HMAC            
CKM_PKCS5_PBKD2            
CKM_KEY_WRAP_SET_OAEP            
CKM_KEY_WRAP_LYNKS            
CKM_SSL3_PRE_MASTER_KEY_GEN            
CKM_SSL3_MASTER_KEY_DERIVE            
CKM_SSL3_MASTER_KEY_DERIVE_DH            
CKM_SSL3_KEY_AND_MAC_DERIVE            
CKM_SSL3_MD5_MAC            
CKM_SSL3_SHA1_MAC            
CKM_TLS_PRE_MASTER_KEY_GEN            
CKM_TLS_MASTER_KEY_DERIVE            
CKM_TLS_MASTER_KEY_DERIVE_DH            
CKM_TLS_KEY_AND_MAC_DERIVE            
CKM_TLS_PRF            
CKM_WTLS_PRE_MASTER_KEY_GEN            
CKM_WTLS_MASTER_KEY_DERIVE            
CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC            
CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE            
CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE            
CKM_WTLS_PRF            
CKM_CMS_SIG          
CKM_CONCATENATE_BASE_AND_KEY            
CKM_CONCATENATE_BASE_AND_DATA            
CKM_CONCATENATE_DATA_AND_BASE            
CKM_XOR_BASE_AND_DATA            
CKM_EXTRACT_KEY_FROM_KEY            
CKM_ACTI            

** Only secret keys can be unwrapped AES, DES… The key length should be < k where k is the length of the RSA key.

*** Secret Key mechanisms (AES, DES, and DES3) are only supported with cryptography in software not on the smart card.