808bits

Thales ProtectServer

documented and observed · 66 return values · 279 mechanisms observed · ProtectToolkit 7.3

ProtectServer is the HSM line Thales acquired with Eracom, and ProtectToolkit is the SDK that ships with it. Its PKCS#11 library defines its own constants on top of the base specification: extra return values above the vendor range, extra mechanisms, and a set of BIP32 derivation calls that put hierarchical deterministic key derivation inside the cryptographic boundary. The return value table below is the list Thales publishes, reduced to names and numbers. The mechanism table is what the 7.3 software library reports when asked, and a section below says what moved between 5.9 and 7.3.

Not to be confused with

Thales Luna. Both are sold by Thales today and both speak PKCS#11, but they are unrelated product lines with unrelated vendor namespaces. ProtectServer came from Eracom by way of SafeNet. Luna came from Chrysalis by way of SafeNet and uses LUNA_RET_ names. A constant documented for one is not a constant in the other, and where the names do coincide the numbers can differ.

From 5.9 to 7.3

I probed both SDKs’ software tokens the same way. The documented error table did not change at all: the same 66 names at the same numbers on the 5.9 and the ProtectToolkit 7 documentation pages. The mechanism list grew from 265 to 279. The additions in the standard range are the Edwards and Montgomery key pair generators and CKM_EDDSA at their specification numbers, CKM_AES_CTR, CKM_AES_CMAC_GENERAL, CKM_AES_GMAC, and the two CKM_AES_KEY_WRAP mechanisms. Nine new vendor-range values appeared, which the public documentation for 7 names but does not number, and its new TR-31 wrap and unwrap mechanisms are presumably among them. Three values went away, one of them CKM_AES_CTS and two in the vendor range. One mechanism changed its flags: CKM_AES_GCM gained wrap and unwrap. The hardware library, libcthsm.so, would not initialise on a machine with no HSM reachable. It returned CKR_GENERAL_ERROR from C_Initialize, which is the specification’s “library unusable” code used for a missing device.

Return values

Every CKR_ constant the vendor documents above 0x80000000. The base specification defines none of them, so a value in this range means nothing until you know which library returned it.

ConstantHexDecimal
CKR_BIP32_CHILD_INDEX_INVALID0x8000007B2147483771
CKR_BIP32_INVALID_HARDENED_DERIVATION0x8000007C2147483772
CKR_BIP32_MASTER_SEED_LEN_INVALID0x8000007D2147483773
CKR_BIP32_MASTER_SEED_INVALID0x8000007E2147483774
CKR_BIP32_INVALID_KEY_PATH_LEN0x8000007F2147483775
CKR_OTP_PIN_INCORRECT0x8000008B2147483787
CKR_OTP_PIN_LEN_RANGE0x8000008C2147483788
CKR_OTP_PIN_ALREADY_INITIALIZED0x8000008D2147483789
CKR_OTP_PIN_NOT_INITIALIZED0x8000008E2147483790
CKR_ACCESS_DENIED0x800001022147483906
CKR_ENCODE_ERROR0x800001042147483908
CKR_SO_NOT_LOGGED_IN0x800001062147483910
CKR_CERT_NOT_VALIDATED0x800001072147483911
CKR_PIN_ALREADY_INITIALIZED0x800001082147483912
CKR_RESPONSE_INVALID0x800001112147483921
CKR_EVENT_LOG_NOT_FULL0x800001132147483923
CKR_OBJECT_READ_ONLY0x800001142147483924
CKR_TOKEN_NOT_INITIALIZED0x800001162147483926
CKR_NOT_ADMIN_TOKEN0x800001172147483927
CKR_CERTIFICATE_NOT_YET_ACTIVE0x800001202147483936
CKR_CERTIFICATE_EXPIRED0x800001212147483937
CKR_OPERATION_NOT_PERMITTED0x800001312147483953
CKR_PKCS12_DECODE0x800001322147483954
CKR_PKCS12_UNSUPPORTED_SAFEBAG_TYPE0x800001332147483955
CKR_PKCS12_UNSUPPORTED_PRIVACY_MODE0x800001342147483956
CKR_PKCS12_UNSUPPORTED_INTEGRITY_MODE0x800001352147483957
CKR_KEY_NOT_ACTIVE0x800001362147483958
CKR_ET_NOT_ODD_PARITY0x800001402147483968
CKR_NEED_IV_UPDATE0x800003102147484432
CKR_CANNOT_DERIVE_KEYS0x800003812147484545
CKR_BAD_REQ_SIGNATURE0x800003822147484546
CKR_BAD_REPLY_SIGNATURE0x800003832147484547
CKR_SMS_ERROR0x800003842147484548
CKR_BAD_PROTECTION0x800003852147484549
CKR_DEVICE_RESET0x800003862147484550
CKR_NO_SESSION_KEYS0x800003872147484551
CKR_BAD_REPLY0x800003882147484552
CKR_KEY_ROLLOVER0x800003892147484553
CKR_HOST_ERROR0x800010002147487744
CKR_BAD_REQUEST0x800010012147487745
CKR_BAD_ATTRIBUTE_PACKING0x800010022147487746
CKR_BAD_ATTRIBUTE_COUNT0x800010032147487747
CKR_BAD_PARAM_PACKING0x800010042147487748
CKR_MSG_ERROR0x800013002147488512
CKR_HIMK_NOT_FOUND0x800014002147488768
CKR_WLD_ERROR0x800020002147491840
CKR_WLD_CONFIG_NOT_FOUND0x800020012147491841
CKR_WLD_CONFIG_ITEM_READ_FAILED0x800020022147491842
CKR_WLD_CONFIG_NO_TOKEN_LABEL0x800020032147491843
CKR_WLD_CONFIG_TOKEN_LABEL_LEN0x800020042147491844
CKR_WLD_CONFIG_TOKEN_SERIAL_NUM_LEN0x800020052147491845
CKR_WLD_CONFIG_SLOT_DESCRIPTION_LEN0x800020062147491846
CKR_WLD_CONFIG_ITEM_FORMAT_INVALID0x800020072147491847
CKR_WLD_LOGIN_CACHE_INCONSISTENT0x800020102147491856
CKR_HA_ERROR0x800030002147495936
CKR_HA_MAX_SLOTS_INVALID_LEN0x800030012147495937
CKR_HA_SESSION_HANDLE_INVALID0x800030022147495938
CKR_HA_SESSION_INVALID0x800030032147495939
CKR_HA_OBJECT_INDEX_INVALID0x800030042147495940
CKR_HA_CANNOT_RECOVER_KEY0x800030052147495941
CKR_HA_NO_HSM0x800030062147495942
CKR_HA_OUT_OF_OBJS0x800030072147495943
CKR_SECURITY_FLAGS_INCOMPATIBLE0x800035002147497216
CKR_FM_ERROR0x800040002147500032
CKR_FM_NOT_REGISTERED0x800040012147500033
CKR_FM_DISPATCH_BLOCKED0x800040022147500034

documented · ProtectToolkit 7.3 · 2026-09-10

Mechanisms the token actually exposes

Read from a live token rather than from a document. The library returns a list of integers, then names each one's key size range and the operations it is good for. That last part lives in C_GetMechanismInfo rather than in the mechanism list, and most vendor status tools leave it out. OpenSC's pkcs11-tool --list-mechanisms is the exception. The same rows sit beside every other library's on the mechanism table.

279 mechanisms, 93 of them vendor-defined. 266 set CKF_HW, which claims the operation is done in hardware. This token is the software-only one that ships with the SDK, so on this library that flag is a statement about the mechanism's implementation path and not evidence of a physical device. The vendor's public documentation lists its mechanisms by name but does not publish their numbers. 93 of the listed values carry no name here, because no public source gives a name for the number. 1 set a flag bit the specification does not define.

MechanismHexKeysOperations
CKM_RSA_PKCS_KEY_PAIR_GEN0x00000000512–4096hardware, generate_key_pair
CKM_RSA_PKCS0x00000001512–4096hardware, encrypt, decrypt, sign, sign_recover, verify, verify_recover, wrap, unwrap
CKM_RSA_97960x00000002512–4096hardware, sign, sign_recover, verify, verify_recover
CKM_RSA_X_5090x00000003512–4096hardware, encrypt, decrypt, sign, sign_recover, verify, verify_recover, wrap, unwrap
CKM_MD2_RSA_PKCS0x00000004512–4096hardware, sign, verify
CKM_MD5_RSA_PKCS0x00000005512–4096hardware, sign, verify
CKM_SHA1_RSA_PKCS0x00000006512–4096hardware, sign, verify
CKM_RIPEMD128_RSA_PKCS0x00000007512–4096hardware, sign, verify
CKM_RIPEMD160_RSA_PKCS0x00000008512–4096hardware, sign, verify
CKM_RSA_PKCS_OAEP0x00000009512–4096hardware, encrypt, decrypt, wrap, unwrap
CKM_RSA_X9_31_KEY_PAIR_GEN0x0000000A1024–4096hardware, generate_key_pair
CKM_RSA_PKCS_PSS0x0000000D512–4096hardware, sign, verify
CKM_SHA1_RSA_PKCS_PSS0x0000000E512–4096hardware, sign, verify
CKM_DSA_KEY_PAIR_GEN0x00000010512–3072hardware, generate_key_pair
CKM_DSA0x00000011512–3072hardware, sign, verify
CKM_DSA_SHA10x00000012512–3072hardware, sign, verify
CKM_DSA_SHA2240x000000131024–3072hardware, sign, verify
CKM_DSA_SHA2560x000000141024–3072hardware, sign, verify
CKM_DSA_SHA3840x000000151024–3072hardware, sign, verify
CKM_DSA_SHA5120x000000161024–3072hardware, sign, verify
CKM_DH_PKCS_KEY_PAIR_GEN0x00000020512–4096hardware, generate_key_pair
CKM_DH_PKCS_DERIVE0x00000021512–4096hardware, derive
CKM_X9_42_DH_KEY_PAIR_GEN0x000000301024–4096hardware, generate_key_pair
CKM_X9_42_DH_DERIVE0x000000311024–4096hardware, derive
CKM_SHA256_RSA_PKCS0x00000040512–4096hardware, sign, verify
CKM_SHA384_RSA_PKCS0x00000041640–4096hardware, sign, verify
CKM_SHA512_RSA_PKCS0x00000042768–4096hardware, sign, verify
CKM_SHA256_RSA_PKCS_PSS0x00000043512–4096hardware, sign, verify
CKM_SHA384_RSA_PKCS_PSS0x00000044640–4096hardware, sign, verify
CKM_SHA512_RSA_PKCS_PSS0x00000045768–4096hardware, sign, verify
CKM_SHA224_RSA_PKCS0x00000046512–4096hardware, sign, verify
CKM_SHA224_RSA_PKCS_PSS0x00000047512–4096hardware, sign, verify
CKM_SHA3_256_RSA_PKCS0x00000060512–4096hardware, sign, verify
CKM_SHA3_384_RSA_PKCS0x00000061640–4096hardware, sign, verify
CKM_SHA3_512_RSA_PKCS0x00000062768–4096hardware, sign, verify
CKM_SHA3_256_RSA_PKCS_PSS0x00000063512–4096hardware, sign, verify
CKM_SHA3_384_RSA_PKCS_PSS0x00000064640–4096hardware, sign, verify
CKM_SHA3_512_RSA_PKCS_PSS0x00000065768–4096hardware, sign, verify
CKM_SHA3_224_RSA_PKCS0x00000066512–4096hardware, sign, verify
CKM_SHA3_224_RSA_PKCS_PSS0x00000067512–4096hardware, sign, verify
CKM_RC2_KEY_GEN0x000001001–128hardware, generate
CKM_RC2_ECB0x000001011–128hardware, encrypt, decrypt, wrap, unwrap
CKM_RC2_CBC0x000001021–128hardware, encrypt, decrypt, wrap, unwrap
CKM_RC2_MAC0x000001031–128hardware, sign, verify
CKM_RC2_MAC_GENERAL0x000001041–128hardware, sign, verify
CKM_RC2_CBC_PAD0x000001051–128hardware, encrypt, decrypt, wrap, unwrap
CKM_RC4_KEY_GEN0x000001101–256hardware, generate
CKM_RC40x000001111–256hardware, encrypt, decrypt
CKM_DES_KEY_GEN0x000001208–8hardware, generate
CKM_DES_ECB0x000001218–8hardware, encrypt, decrypt, wrap, unwrap
CKM_DES_CBC0x000001228–8hardware, encrypt, decrypt, wrap, unwrap
CKM_DES_MAC0x000001238–8hardware, sign, verify
CKM_DES_MAC_GENERAL0x000001248–8hardware, sign, verify
CKM_DES_CBC_PAD0x000001258–8hardware, encrypt, decrypt, wrap, unwrap
CKM_DES2_KEY_GEN0x0000013016–16hardware, generate
CKM_DES3_KEY_GEN0x0000013124–24hardware, generate
CKM_DES3_ECB0x0000013216–24hardware, encrypt, decrypt, wrap, unwrap
CKM_DES3_CBC0x0000013316–24hardware, encrypt, decrypt, wrap, unwrap
CKM_DES3_MAC0x0000013416–24hardware, sign, verify
CKM_DES3_MAC_GENERAL0x0000013516–24hardware, sign, verify
CKM_DES3_CBC_PAD0x0000013616–24hardware, encrypt, decrypt, wrap, unwrap
CKM_DES3_CMAC_GENERAL0x0000013716–24hardware, sign, verify
CKM_DES3_CMAC0x0000013816–24hardware, sign, verify
CKM_MD20x00000200-hardware, digest
CKM_MD2_HMAC0x00000201-hardware, sign, verify
CKM_MD2_HMAC_GENERAL0x00000202-hardware, sign, verify
CKM_MD50x00000210-hardware, digest
CKM_MD5_HMAC0x00000211-hardware, sign, verify
CKM_MD5_HMAC_GENERAL0x00000212-hardware, sign, verify
CKM_SHA_10x00000220-hardware, digest
CKM_SHA_1_HMAC0x00000221-hardware, sign, verify
CKM_SHA_1_HMAC_GENERAL0x00000222-hardware, sign, verify
CKM_RIPEMD1280x00000230-hardware, digest
CKM_RIPEMD128_HMAC0x00000231-hardware, sign, verify
CKM_RIPEMD128_HMAC_GENERAL0x00000232-hardware, sign, verify
CKM_RIPEMD1600x00000240-hardware, digest
CKM_RIPEMD160_HMAC0x00000241-hardware, sign, verify
CKM_RIPEMD160_HMAC_GENERAL0x00000242-hardware, sign, verify
CKM_SHA2560x00000250-hardware, digest
CKM_SHA256_HMAC0x00000251-hardware, sign, verify
CKM_SHA256_HMAC_GENERAL0x00000252-hardware, sign, verify
CKM_SHA2240x00000255-hardware, digest
CKM_SHA224_HMAC0x00000256-hardware, sign, verify
CKM_SHA224_HMAC_GENERAL0x00000257-hardware, sign, verify
CKM_SHA3840x00000260-hardware, digest
CKM_SHA384_HMAC0x00000261-hardware, sign, verify
CKM_SHA384_HMAC_GENERAL0x00000262-hardware, sign, verify
CKM_SHA5120x00000270-hardware, digest
CKM_SHA512_HMAC0x00000271-hardware, sign, verify
CKM_SHA512_HMAC_GENERAL0x00000272-hardware, sign, verify
CKM_SHA3_2560x000002B0-hardware, digest
CKM_SHA3_256_HMAC0x000002B1-hardware, sign, verify
CKM_SHA3_256_HMAC_GENERAL0x000002B2-hardware, sign, verify
CKM_SHA3_2240x000002B5-hardware, digest
CKM_SHA3_224_HMAC0x000002B6-hardware, sign, verify
CKM_SHA3_224_HMAC_GENERAL0x000002B7-hardware, sign, verify
CKM_SHA3_3840x000002C0-hardware, digest
CKM_SHA3_384_HMAC0x000002C1-hardware, sign, verify
CKM_SHA3_384_HMAC_GENERAL0x000002C2-hardware, sign, verify
CKM_SHA3_5120x000002D0-hardware, digest
CKM_SHA3_512_HMAC0x000002D1-hardware, sign, verify
CKM_SHA3_512_HMAC_GENERAL0x000002D2-hardware, sign, verify
CKM_CAST5_KEY_GEN0x000003201–16hardware, generate
CKM_CAST5_ECB0x000003211–16hardware, encrypt, decrypt, wrap, unwrap
CKM_CAST5_CBC0x000003221–16hardware, encrypt, decrypt, wrap, unwrap
CKM_CAST5_MAC0x000003231–16hardware, sign, verify
CKM_CAST5_MAC_GENERAL0x000003241–16hardware, sign, verify
CKM_CAST5_CBC_PAD0x000003251–16hardware, encrypt, decrypt, wrap, unwrap
CKM_IDEA_KEY_GEN0x0000034016–16hardware, generate
CKM_IDEA_ECB0x0000034116–16hardware, encrypt, decrypt, wrap, unwrap
CKM_IDEA_CBC0x0000034216–16hardware, encrypt, decrypt, wrap, unwrap
CKM_IDEA_MAC0x0000034316–16hardware, sign, verify
CKM_IDEA_MAC_GENERAL0x0000034416–16hardware, sign, verify
CKM_IDEA_CBC_PAD0x0000034516–16hardware, encrypt, decrypt, wrap, unwrap
CKM_GENERIC_SECRET_KEY_GEN0x00000350-hardware, generate
CKM_SSL3_PRE_MASTER_KEY_GEN0x0000037048–48hardware, generate
CKM_SSL3_MASTER_KEY_DERIVE0x0000037148–48hardware, derive
CKM_SSL3_KEY_AND_MAC_DERIVE0x0000037248–48hardware, derive
CKM_SSL3_MD5_MAC0x00000380-hardware, sign, verify
CKM_SSL3_SHA1_MAC0x00000381-hardware, sign, verify
CKM_MD5_KEY_DERIVATION0x00000390-hardware, derive
CKM_MD2_KEY_DERIVATION0x00000391-hardware, derive
CKM_SHA1_KEY_DERIVATION0x00000392-hardware, derive
CKM_SHA256_KEY_DERIVATION0x00000393-hardware, derive
CKM_SHA384_KEY_DERIVATION0x00000394-hardware, derive
CKM_SHA512_KEY_DERIVATION0x00000395-hardware, derive
CKM_SHA224_KEY_DERIVATION0x00000396-hardware, derive
CKM_SHA3_256_KEY_DERIVATION0x00000397-hardware, derive
CKM_SHA3_224_KEY_DERIVATION0x00000398-hardware, derive
CKM_SHA3_384_KEY_DERIVATION0x00000399-hardware, derive
CKM_SHA3_512_KEY_DERIVATION0x0000039A-hardware, derive
CKM_PBE_MD2_DES_CBC0x000003A08–8hardware, generate
CKM_PBE_MD5_DES_CBC0x000003A18–8hardware, generate
CKM_PBE_MD5_CAST5_CBC0x000003A416–16hardware, generate
CKM_PBE_SHA1_CAST5_CBC0x000003A516–16hardware, generate
CKM_PBE_SHA1_RC4_1280x000003A616–16hardware, generate
CKM_PBE_SHA1_RC4_400x000003A75–5hardware, generate
CKM_PBE_SHA1_DES3_EDE_CBC0x000003A824–24hardware, generate
CKM_PBE_SHA1_DES2_EDE_CBC0x000003A916–16hardware, generate
CKM_PBE_SHA1_RC2_128_CBC0x000003AA16–16hardware, generate
CKM_PBE_SHA1_RC2_40_CBC0x000003AB5–5hardware, generate
CKM_PBA_SHA1_WITH_SHA1_HMAC0x000003C020–20hardware, generate
CKM_KEY_WRAP_SET_OAEP0x00000401512–4096hardware, wrap, unwrap
CKM_ARIA_KEY_GEN0x0000056016–32hardware, generate
CKM_ARIA_ECB0x0000056116–32hardware, encrypt, decrypt, wrap, unwrap
CKM_ARIA_CBC0x0000056216–32hardware, encrypt, decrypt, wrap, unwrap
CKM_ARIA_MAC0x0000056316–32hardware, sign, verify
CKM_ARIA_MAC_GENERAL0x0000056416–32hardware, sign, verify
CKM_ARIA_CBC_PAD0x0000056516–32hardware, encrypt, decrypt, wrap, unwrap
CKM_ECDSA_KEY_PAIR_GEN0x0000104064–571hardware, generate_key_pair, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
CKM_ECDSA0x0000104164–571hardware, sign, verify, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
CKM_ECDSA_SHA10x0000104264–571hardware, sign, verify, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
CKM_ECDSA_SHA3_2240x0000104764–571hardware, sign, verify, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
CKM_ECDSA_SHA3_2560x0000104864–571hardware, sign, verify, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
CKM_ECDSA_SHA3_3840x0000104964–571hardware, sign, verify, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
CKM_ECDSA_SHA3_5120x0000104A64–571hardware, sign, verify, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
CKM_ECDH1_DERIVE0x0000105064–571hardware, derive, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
CKM_EC_EDWARDS_KEY_PAIR_GEN0x0000105564–571generate_key_pair, ec_f_p, ec_oid, ec_uncompress
CKM_EC_MONTGOMERY_KEY_PAIR_GEN0x0000105664–571hardware, generate_key_pair, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
CKM_EDDSA0x0000105764–571sign, verify, ec_f_p, ec_oid, ec_uncompress
CKM_AES_KEY_GEN0x0000108016–32hardware, generate
CKM_AES_ECB0x0000108116–32hardware, encrypt, decrypt, wrap, unwrap
CKM_AES_CBC0x0000108216–32hardware, encrypt, decrypt, wrap, unwrap
CKM_AES_MAC0x0000108316–32hardware, sign, verify
CKM_AES_MAC_GENERAL0x0000108416–32hardware, sign, verify
CKM_AES_CBC_PAD0x0000108516–32hardware, encrypt, decrypt, wrap, unwrap
CKM_AES_CTR0x0000108616–32hardware, encrypt, decrypt
CKM_AES_GCM0x0000108716–32hardware, encrypt, decrypt, wrap, unwrap
CKM_AES_CCM0x0000108816–32hardware, encrypt, decrypt
CKM_AES_CMAC0x0000108A16–32hardware, sign, verify
CKM_AES_CMAC_GENERAL0x0000108B16–32hardware, sign, verify
CKM_AES_GMAC0x0000108E16–32hardware, sign, verify
CKM_BLOWFISH_KEY_GEN0x0000109016–32hardware, wrap, unwrap
CKM_BLOWFISH_CBC0x0000109116–32hardware, encrypt, decrypt, wrap, unwrap
CKM_DES_ECB_ENCRYPT_DATA0x000011008–8hardware, derive
CKM_DES_CBC_ENCRYPT_DATA0x000011018–8hardware, derive
CKM_DES3_ECB_ENCRYPT_DATA0x0000110216–24hardware, derive
CKM_DES3_CBC_ENCRYPT_DATA0x0000110316–24hardware, derive
CKM_AES_ECB_ENCRYPT_DATA0x0000110416–32hardware, derive
CKM_AES_CBC_ENCRYPT_DATA0x0000110516–32hardware, derive
CKM_DSA_PARAMETER_GEN0x00002000512–3072hardware, generate
CKM_DH_PKCS_PARAMETER_GEN0x00002001512–4096hardware, generate
CKM_X9_42_DH_PARAMETER_GEN0x000020021024–4096hardware, generate
CKM_AES_OFB0x0000210416–32hardware, encrypt, decrypt, wrap, unwrap
CKM_AES_KEY_WRAP0x0000210916–32hardware, wrap, unwrap
CKM_AES_KEY_WRAP_PAD0x0000210A16–32hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x80000013512–3072hardware, sign, verify
vendor-defined, unnamed0x800000321024–3072hardware, sign, verify
vendor-defined, unnamed0x800000331024–3072hardware, sign, verify
vendor-defined, unnamed0x800000341024–3072hardware, sign, verify
vendor-defined, unnamed0x800000351024–3072hardware, sign, verify
vendor-defined, unnamed0x800000361024–3072hardware, sign, verify
vendor-defined, unnamed0x800000371024–3072hardware, sign, verify
vendor-defined, unnamed0x800001011–128hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x800001218–8hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x8000012264–571hardware, sign, verify, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
vendor-defined, unnamed0x8000012364–571hardware, sign, verify, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
vendor-defined, unnamed0x8000012464–571hardware, sign, verify, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
vendor-defined, unnamed0x8000012564–571hardware, sign, verify, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
vendor-defined, unnamed0x8000013216–24hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x8000013416–24hardware, sign, verify
vendor-defined, unnamed0x8000013516–24hardware, sign, verify
vendor-defined, unnamed0x8000016164–571hardware, sign, verify, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
vendor-defined, unnamed0x8000017016–32hardware, wrap, unwrap
vendor-defined, unnamed0x8000017116–32hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x8000017216–24hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x80000200-hardware, digest
vendor-defined, unnamed0x80000204-hardware, digest
vendor-defined, unnamed0x80000205-hardware, digest
vendor-defined, unnamed0x800003211–16hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x8000034116–16hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x8000038E8–8hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x8000038F16–24hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x800004002048–4096hardware, generate_key_pair
vendor-defined, unnamed0x8000041116–32hardware, unwrap
vendor-defined, unnamed0x8000041216–32hardware, wrap
vendor-defined, unnamed0x8000041316–32hardware, wrap
vendor-defined, unnamed0x800005008–8hardware, derive
vendor-defined, unnamed0x800005018–8hardware, derive
vendor-defined, unnamed0x8000050216–24hardware, derive
vendor-defined, unnamed0x8000050316–24hardware, derive
vendor-defined, unnamed0x8000051016–24hardware, sign, verify
vendor-defined, unnamed0x8000051116–16hardware, derive
vendor-defined, unnamed0x8000051216–16hardware, sign
vendor-defined, unnamed0x8000051316–32hardware, sign
vendor-defined, unnamed0x8000051416–32hardware, derive
vendor-defined, unnamed0x80000515-hardware, digest
vendor-defined, unnamed0x80000600512–4096hardware, sign
vendor-defined, unnamed0x80000935-hardware, derive
vendor-defined, unnamed0x800009408–8hardware, encrypt, decrypt
vendor-defined, unnamed0x8000094116–24hardware, encrypt, decrypt
vendor-defined, unnamed0x80000950-hardware, wrap, unwrap
vendor-defined, unnamed0x80000951-hardware, derive
vendor-defined, unnamed0x80000952-hardware, derive
vendor-defined, unnamed0x80000953-hardware, derive
vendor-defined, unnamed0x80000954-hardware, wrap, unwrap
vendor-defined, unnamed0x80000955-hardware, derive
vendor-defined, unnamed0x80000961-hardware, wrap, unwrap
vendor-defined, unnamed0x80000962-hardware, wrap, unwrap
vendor-defined, unnamed0x8000096316–32hardware, wrap, unwrap
vendor-defined, unnamed0x8000096416–16hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x8000096516–32hardware, wrap, unwrap
vendor-defined, unnamed0x8000096616–32hardware, encrypt, decrypt
vendor-defined, unnamed0x8000097016–32hardware, wrap, unwrap
vendor-defined, unnamed0x80000971-hardware, wrap, unwrap
vendor-defined, unnamed0x800009A01–0generate
vendor-defined, unnamed0x800009A11–0generate
vendor-defined, unnamed0x800009B016–16hardware, sign, verify
vendor-defined, unnamed0x800009C0-hardware, derive
vendor-defined, unnamed0x800009D016–16hardware, generate
vendor-defined, unnamed0x800009D116–16hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x800009D216–16hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x800009D316–16hardware, sign, verify
vendor-defined, unnamed0x800009D416–16hardware, sign, verify
vendor-defined, unnamed0x800009D516–16hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x800009D616–16hardware, encrypt, decrypt, wrap, unwrap
vendor-defined, unnamed0x800009E02048–4096hardware, wrap, unwrap
vendor-defined, unnamed0x800009F0-hardware, derive
vendor-defined, unnamed0x800009F1-hardware, derive
vendor-defined, unnamed0x800009F2-hardware, wrap, unwrap
vendor-defined, unnamed0x800009F3-hardware, wrap, unwrap
vendor-defined, unnamed0x80000A0064–571hardware, encrypt, decrypt, ec_f_p, ec_f_2m, ec_oid, ec_uncompress
vendor-defined, unnamed0x80000A101024–4096hardware, extension + undefined bit 0x40000000
vendor-defined, unnamed0x80000C0964–571sign, verify, ec_f_p, ec_oid, ec_uncompress
vendor-defined, unnamed0x80000C0A64–571sign, verify, ec_f_p, ec_oid, ec_uncompress
vendor-defined, unnamed0x80000C0B64–571sign, verify, ec_f_p, ec_oid, ec_uncompress
vendor-defined, unnamed0x80000C0C64–571sign, verify, ec_f_p, ec_oid, ec_uncompress
vendor-defined, unnamed0x80000C0D64–571sign, verify, ec_f_p, ec_oid, ec_uncompress
vendor-defined, unnamed0x80000E0064–571hardware, derive, ec_f_p, ec_uncompress
vendor-defined, unnamed0x80000E0164–571hardware, derive, ec_f_p, ec_uncompress
vendor-defined, unnamed0x80001000521–521hardware, generate_key_pair
vendor-defined, unnamed0x80001001521–521hardware, generate
vendor-defined, unnamed0x8000100216–32hardware, derive
vendor-defined, unnamed0x8000100316–32hardware, derive
vendor-defined, unnamed0x8000100432–32hardware, encrypt, decrypt
vendor-defined, unnamed0x80001C0A64–571sign, verify, ec_f_p, ec_oid, ec_uncompress
vendor-defined, unnamed0x80001C0B64–571sign, verify, ec_f_p, ec_oid, ec_uncompress
vendor-defined, unnamed0x80001C0C64–571sign, verify, ec_f_p, ec_oid, ec_uncompress
vendor-defined, unnamed0x80001C0D64–571sign, verify, ec_f_p, ec_oid, ec_uncompress

observed · Software Only 7.3 · Cryptoki 2.20 · slot 0 · C_GetMechanismInfo · 2026-09-10

This library is one column of Same name, different number, the table of constants that carry one name and more than one value.

Return values with a note for this library

  • CKR_GENERAL_ERROR · Not a failed call but a broken library. The specification says nothing further will work, so retrying it is wasted effort.
  • CKR_MECHANISM_INVALID · The mechanism is unknown here, or not valid for the operation you used it in. Check the slot's own list rather than the header you compiled against.
  • CKR_PIN_LOCKED · The token has locked the PIN after too many failed attempts. On most HSMs this is not something you can wait out, and on some it destroys the partition.

How this page was made

The return value table is the vendor's own published list, reduced to the constant name and its number. Nothing else from that document is reproduced, and nothing on this page comes from the SDK itself. The mechanism table is from the read-only probe against the software-only token that ships with the SDK. Values below the vendor range are named from the base specification. Values above it are left as numbers, because the vendor does not publish the numbers.

Scope. The return values are the ones Thales documents for ProtectToolkit-C, the same list for 5.9 and 7, which is what the library is specified to return and not necessarily what any particular firmware implements. The mechanism list is read from the software-only token that ships with ProtectToolkit 7.3.1 (with the 5.9 differences stated above), which is not a ProtectServer card and is not running in FIPS mode. A hardware token under a restrictive security policy exposes fewer mechanisms and narrower key size ranges. Treat all of it as what the library offers, not as what a configured HSM will let you do.

Sources

Names and numbers only. No vendor documentation text is reproduced here.