PKCS#11 – Supported Mechanism – Function Table
The following table shows the combinations of functions and mechanisms that the PKCS#11 library supports. An “x” mark indicates that the PKCS#11 library supports the mechanism for the function.
A Guide to Interpret Cell Entries
- "Encrypt / Encrypt Message" in the column heading means both regular and message-based encryption functions are supported with data supplied either in a single part or over multiple parts for the matching mechanisms, unless limited within the mechanism "x" marked row entry.
- "Sign (Single-part only)" in the column heading means only regular sign function with data supplied in a single part is supported.
- "(Single-part)" within an "x" marked row entry means that the mechanism is limited and only supports data supplied in a single part.
- "(Message Single part / Message Update only)" within an "x" marked row entry means that the mechanism is limited and only supports message-based functions.
- "(Single part, non- message only)" within an "x" marked row entry means that mechanism is limited and only supports regular functions with data supplied in a single part.
Mechanism | Generate Key | Public/ Private Key Pair Generation | Encrypt/ Encrypt Message | Decrypt/ Decrypt Message | Encrypt/ Encrypt Message (Single- part only) | Decrypt/ Decrypt Message (Single-part only) | MAC Sign/ Sign Message | MAC Verify/ Verify Message | Sign (Single-part only) | Verify (Single- part only) | Digest | Derive Key | Unwrap Key | Wrap Key | Notes |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CKM_AES_CBC | X | X | X | X | using AES [FIPS 197] with 128-bit or 256-bit key sizes | ||||||||||
CKM_AES_CBC_PAD | X | X | using AES [FIPS 197] with 128-bit or 256-bit key sizes | ||||||||||||
CKM_AES_CTR | X | X | using AES [FIPS 197] with 128-bit or 256-bit key sizes | ||||||||||||
CKM_AES_GCM | X | X | X | X | using AES [FIPS 197] with 128-bit or 256-bit key sizes | ||||||||||
CKM_AES_CMAC | X (Single- part) | X (Single- part) | X | using AES [FIPS 197] with 128-bit or 256-bit key sizes | |||||||||||
CKM_AES_GMAC | X (Message Single part / Message Update only) | X (Message Single part / Message Update only) | |||||||||||||
CKM_SHA256_HMAC | X (Single- part) | X (Single- part) | X | MAC sign and verify with a CKK_GENERIC_SECRET key of 32B (256 bits) | |||||||||||
CKM_NVIDIA_SP800_56C_TWO_STEPS_KDF | X | Custom mechanism intended for camera use | |||||||||||||
CKM_SHA256 | X | ||||||||||||||
CKM_SHA384 | X | ||||||||||||||
CKM_SHA512 | X | ||||||||||||||
CKM_SHA3_256 | X | ||||||||||||||
CKM_SHA3_384 | X | ||||||||||||||
CKM_SHA3_512 | X | ||||||||||||||
CKM_NVIDIA_MACSEC_AES_KEY_WRAP | X | X | Custom mechanism for use with MACSEC | ||||||||||||
CKM_NVIDIA_AES_CBC_KEY_DATA_WRAP | X | Custom mechanism intended for camera use | |||||||||||||
CKM_AES_KEY_GEN | X | returning 128-bit or 256-bit key sizes | |||||||||||||
CKM_GENERIC_SECRET_KEY_GEN | X | returning 128-bit or 256-bit key sizes | |||||||||||||
CKM_EC_EDWARDS_KEY_PAIR_GEN | X | generate EC public/private key pairs over the curve Ed25519 | |||||||||||||
CKM_EC_MONTGOMERY_KEY_PAIR_GEN | X | generate EC public/private key pairs over the curve 25519 | |||||||||||||
CKM_EC_KEY_PAIR_GEN | X | generate EC public/private key pairs over the curve secp256r1 FIPS 186-4 Appendix B.4.2 | |||||||||||||
CKM_SP800_108_COUNTER_KDF | X | using CKM_AES_CMAC [FIPS 197] with 128-bit or 256-bit key sizes | |||||||||||||
CKM_SP800_108_COUNTER_KDF | X | using CKM_SHA256_HMAC [FIPS 198-1][FIPS 180-4] with 128 or 256-bit key sizes | |||||||||||||
CKM_ECDH1_DERIVE | X | Deriving either a CKK_GENERIC_SECRET or CKK_AES. Curve25519 or Curve448 or secp256r1 | |||||||||||||
CKM_RSA_PKCS_PSS | X | using RSA with 3072 and 4096-bit key sizes, and secure hash algorithms SHA-256, SHA-384, and SHA-512 [FIPS 180-4] for both the hash algorithm and Mask Generating Function (MGF1) [PKCS1-v2.2] | |||||||||||||
CKM_EDDSA | X | X | curve Ed25519ph [RFC 8032] | ||||||||||||
CKM_EDDSA (non prehash) | X | X |
curve Ed25519 [RFC 8032] curve448 |
||||||||||||
CKM_ECDSA | X | X |
curve secp256r1 [SEC2-V2] using secure hash algorithm SHA-256 [FIPS 180-4] |
||||||||||||
CKM_TLS12_MASTER_KEY_DERIVE_DH | X | using CKM_SHA256_HMAC deriving 384-bit key size | |||||||||||||
CKM_TLS12_KEY_AND_MAC_DERIVE | X | using CKM_SHA256_HMAC with a CKK_GENERIC_SECRET key of 48B (384 bits) deriving 128-bit or 256-bit key sizes | |||||||||||||
CKM_TLS12_KEY_SAFE_DERIVE | X | using CKM_SHA256_HMAC with a CKK_GENERIC_SECRET key of 48B (384 bits) deriving 128-bit or 256-bit key sizes | |||||||||||||
CKM_TLS12_MAC | X (Single part, non- message only) | X (Single part, non- message only) | using CKM_SHA256_HMAC with a CKK_GENERIC_SECRET key of 48B (384 bits) | ||||||||||||
CKM_TLS12_KDF | X | using CKM_SHA256_HMAC with a CKK_GENERIC_SECRET key of 48B (384 bits) deriving 128-bit or 256-bit key sizes |