Source code for pycryptoki.default_templates

"""
File containing a number of templates taken from CKDemo and manually converted into python format.
See the attributes.py file for methods to convert them into the proper C format.
"""

import copy

from .defines import (CKA_BASE, CKA_CERTIFICATE_TYPE, CKA_CLASS, CKA_DECRYPT, CKA_DERIVE,
                     CKA_ECDSA_PARAMS, CKA_ENCRYPT,
                     CKA_EXTRACTABLE, CKA_KEY_TYPE, CKA_LABEL, CKA_MODIFIABLE, CKA_MODULUS_BITS,
                     CKA_PRIME,
                     CKA_PRIME_BITS, CKA_PRIVATE, CKA_PUBLIC_EXPONENT, CKA_SENSITIVE, CKA_SIGN,
                     CKA_SUBJECT,
                     CKA_SUBPRIME, CKA_SUBPRIME_BITS, CKA_TOKEN, CKA_UNWRAP, CKA_VALUE,
                     CKA_VALUE_BITS, CKA_VALUE_LEN,
                     CKA_VERIFY, CKA_WRAP, CKC_X_509, CKK_AES, CKK_ARIA, CKK_CAST3, CKK_CAST5,
                     CKK_DES, CKK_DES2,
                     CKK_DES3, CKK_GENERIC_SECRET, CKK_RC2, CKK_RC4, CKK_RC5, CKK_SEED,
                     CKM_2DES_KEY_DERIVATION,
                     CKM_ACTI, CKM_ACTI_KEY_GEN, CKM_AES_CBC, CKM_AES_CBC_ENCRYPT_DATA,
                     CKM_AES_CBC_PAD,
                     CKM_AES_CBC_PAD_EXTRACT, CKM_AES_CBC_PAD_EXTRACT_DOMAIN_CTRL,
                     CKM_AES_CBC_PAD_EXTRACT_FLATTENED,
                     CKM_AES_CBC_PAD_INSERT, CKM_AES_CBC_PAD_INSERT_DOMAIN_CTRL,
                     CKM_AES_CBC_PAD_INSERT_FLATTENED,
                     CKM_AES_CBC_PAD_IPSEC, CKM_AES_CFB128, CKM_AES_CFB8, CKM_AES_CMAC,
                     CKM_AES_CMAC_GENERAL,
                     CKM_AES_CTR, CKM_AES_ECB, CKM_AES_ECB_ENCRYPT_DATA, CKM_AES_GCM, CKM_AES_GMAC,
                     CKM_AES_KEY_GEN,
                     CKM_AES_KEY_WRAP, CKM_AES_KEY_WRAP_PAD, CKM_AES_KW, CKM_AES_KWP, CKM_AES_MAC,
                     CKM_AES_MAC_GENERAL,
                     CKM_AES_OFB, CKM_ARIA_CBC, CKM_ARIA_CBC_ENCRYPT_DATA, CKM_ARIA_CBC_PAD,
                     CKM_ARIA_CFB128,
                     CKM_ARIA_CFB8, CKM_ARIA_CMAC, CKM_ARIA_CMAC_GENERAL, CKM_ARIA_CTR,
                     CKM_ARIA_ECB,
                     CKM_ARIA_ECB_ENCRYPT_DATA, CKM_ARIA_GCM, CKM_ARIA_KEY_GEN, CKM_ARIA_L_CBC,
                     CKM_ARIA_L_CBC_PAD,
                     CKM_ARIA_L_ECB, CKM_ARIA_L_MAC, CKM_ARIA_L_MAC_GENERAL, CKM_ARIA_MAC,
                     CKM_ARIA_MAC_GENERAL,
                     CKM_ARIA_OFB, CKM_BATON_CBC128, CKM_BATON_COUNTER, CKM_BATON_ECB128,
                     CKM_BATON_ECB96,
                     CKM_BATON_KEY_GEN, CKM_BATON_SHUFFLE, CKM_BATON_WRAP, CKM_BLOWFISH_CBC,
                     CKM_BLOWFISH_KEY_GEN,
                     CKM_CAMELLIA_CBC, CKM_CAMELLIA_CBC_ENCRYPT_DATA, CKM_CAMELLIA_CBC_PAD,
                     CKM_CAMELLIA_CTR,
                     CKM_CAMELLIA_ECB, CKM_CAMELLIA_ECB_ENCRYPT_DATA, CKM_CAMELLIA_KEY_GEN,
                     CKM_CAMELLIA_MAC,
                     CKM_CAMELLIA_MAC_GENERAL, CKM_CAST3_CBC, CKM_CAST3_CBC_PAD, CKM_CAST3_ECB,
                     CKM_CAST3_KEY_GEN,
                     CKM_CAST3_MAC, CKM_CAST3_MAC_GENERAL, CKM_CAST5_CBC, CKM_CAST5_CBC_PAD,
                     CKM_CAST5_ECB,
                     CKM_CAST5_KEY_GEN, CKM_CAST5_MAC, CKM_CAST5_MAC_GENERAL, CKM_CAST_CBC,
                     CKM_CAST_CBC_PAD,
                     CKM_CAST_ECB, CKM_CAST_KEY_GEN, CKM_CAST_MAC, CKM_CAST_MAC_GENERAL,
                     CKM_CDMF_CBC, CKM_CDMF_CBC_PAD,
                     CKM_CDMF_ECB, CKM_CDMF_KEY_GEN, CKM_CDMF_MAC, CKM_CDMF_MAC_GENERAL,
                     CKM_CMS_SIG,
                     CKM_CONCATENATE_BASE_AND_DATA, CKM_CONCATENATE_BASE_AND_KEY,
                     CKM_CONCATENATE_DATA_AND_BASE,
                     CKM_DES2_DUKPT_DATA, CKM_DES2_DUKPT_DATA_RESP, CKM_DES2_DUKPT_MAC,
                     CKM_DES2_DUKPT_MAC_RESP,
                     CKM_DES2_DUKPT_PIN, CKM_DES2_KEY_GEN, CKM_DES3_CBC, CKM_DES3_CBC_ENCRYPT_DATA,
                     CKM_DES3_CBC_PAD,
                     CKM_DES3_CBC_PAD_IPSEC, CKM_DES3_CMAC, CKM_DES3_CMAC_GENERAL, CKM_DES3_CTR,
                     CKM_DES3_ECB,
                     CKM_DES3_ECB_ENCRYPT_DATA, CKM_DES3_KEY_GEN, CKM_DES3_MAC,
                     CKM_DES3_MAC_GENERAL, CKM_DES3_X919_MAC,
                     CKM_DES_CBC, CKM_DES_CBC_ENCRYPT_DATA, CKM_DES_CBC_PAD, CKM_DES_CFB64,
                     CKM_DES_CFB8, CKM_DES_ECB,
                     CKM_DES_ECB_ENCRYPT_DATA, CKM_DES_KEY_GEN, CKM_DES_MAC, CKM_DES_MAC_GENERAL,
                     CKM_DES_OFB64,
                     CKM_DES_OFB8, CKM_DH_PKCS_DERIVE, CKM_DH_PKCS_KEY_PAIR_GEN,
                     CKM_DH_PKCS_PARAMETER_GEN, CKM_DSA,
                     CKM_DSA_KEY_PAIR_GEN, CKM_DSA_PARAMETER_GEN, CKM_DSA_SHA1, CKM_DSA_SHA224,
                     CKM_DSA_SHA256,
                     CKM_ECDH1_COFACTOR_DERIVE, CKM_ECDH1_DERIVE, CKM_ECDSA, CKM_ECDSA_GBCS_SHA256,
                     CKM_ECDSA_KEY_PAIR_GEN, CKM_ECDSA_KEY_PAIR_GEN_W_EXTRA_BITS, CKM_ECDSA_SHA1,
                     CKM_ECDSA_SHA224,
                     CKM_ECDSA_SHA256, CKM_ECDSA_SHA384, CKM_ECDSA_SHA512, CKM_ECIES,
                     CKM_ECMQV_DERIVE,
                     CKM_EXTRACT_KEY_FROM_KEY, CKM_FASTHASH, CKM_FORTEZZA_TIMESTAMP,
                     CKM_GENERIC_SECRET_KEY_GEN,
                     CKM_HAS160, CKM_HOTP, CKM_HOTP_KEY_GEN, CKM_IDEA_CBC, CKM_IDEA_CBC_PAD,
                     CKM_IDEA_ECB,
                     CKM_IDEA_KEY_GEN, CKM_IDEA_MAC, CKM_IDEA_MAC_GENERAL,
                     CKM_INDIRECT_LOGIN_REENCRYPT,
                     CKM_JUNIPER_CBC128, CKM_JUNIPER_COUNTER, CKM_JUNIPER_ECB128,
                     CKM_JUNIPER_KEY_GEN,
                     CKM_JUNIPER_SHUFFLE, CKM_JUNIPER_WRAP, CKM_KCDSA_HAS160,
                     CKM_KCDSA_HAS160_NO_PAD,
                     CKM_KCDSA_KEY_PAIR_GEN, CKM_KCDSA_PARAMETER_GEN, CKM_KCDSA_SHA1,
                     CKM_KCDSA_SHA1_NO_PAD,
                     CKM_KCDSA_SHA224, CKM_KCDSA_SHA224_NO_PAD, CKM_KCDSA_SHA256,
                     CKM_KCDSA_SHA256_NO_PAD,
                     CKM_KCDSA_SHA384, CKM_KCDSA_SHA384_NO_PAD, CKM_KCDSA_SHA512,
                     CKM_KCDSA_SHA512_NO_PAD,
                     CKM_KEA_KEY_DERIVE, CKM_KEA_KEY_PAIR_GEN, CKM_KEY_TRANSLATION,
                     CKM_KEY_WRAP_LYNKS,
                     CKM_KEY_WRAP_SET_OAEP, CKM_KIP_DERIVE, CKM_KIP_MAC, CKM_KIP_WRAP, CKM_MD2,
                     CKM_MD2_HMAC,
                     CKM_MD2_HMAC_GENERAL, CKM_MD2_KEY_DERIVATION, CKM_MD2_RSA_PKCS, CKM_MD5,
                     CKM_MD5_HMAC,
                     CKM_MD5_HMAC_GENERAL, CKM_MD5_KEY_DERIVATION, CKM_MD5_RSA_PKCS,
                     CKM_NIST_PRF_KDF,
                     CKM_PBA_SHA1_WITH_SHA1_HMAC, CKM_PBE_MD2_DES_CBC, CKM_PBE_MD5_CAST3_CBC,
                     CKM_PBE_MD5_CAST5_CBC,
                     CKM_PBE_MD5_CAST_CBC, CKM_PBE_MD5_DES_CBC, CKM_PBE_SHA1_CAST5_CBC,
                     CKM_PBE_SHA1_DES2_EDE_CBC,
                     CKM_PBE_SHA1_DES3_EDE_CBC, CKM_PBE_SHA1_RC2_128_CBC, CKM_PBE_SHA1_RC2_40_CBC,
                     CKM_PBE_SHA1_RC4_128,
                     CKM_PBE_SHA1_RC4_40, CKM_PKCS5_PBKD2, CKM_PLACE_HOLDER_FOR_ERACOME_DEF_IN_SHIM,
                     CKM_PRF_KDF,
                     CKM_RC2_CBC, CKM_RC2_CBC_PAD, CKM_RC2_ECB, CKM_RC2_KEY_GEN, CKM_RC2_MAC,
                     CKM_RC2_MAC_GENERAL,
                     CKM_RC4, CKM_RC4_KEY_GEN, CKM_RC5_CBC, CKM_RC5_CBC_PAD, CKM_RC5_ECB,
                     CKM_RC5_KEY_GEN, CKM_RC5_MAC,
                     CKM_RC5_MAC_GENERAL, CKM_RIPEMD128, CKM_RIPEMD128_HMAC,
                     CKM_RIPEMD128_HMAC_GENERAL,
                     CKM_RIPEMD128_RSA_PKCS, CKM_RIPEMD160, CKM_RIPEMD160_HMAC,
                     CKM_RIPEMD160_HMAC_GENERAL,
                     CKM_RIPEMD160_RSA_PKCS, CKM_RSA_9796,
                     CKM_RSA_FIPS_186_3_AUX_PRIME_KEY_PAIR_GEN,
                     CKM_RSA_FIPS_186_3_PRIME_KEY_PAIR_GEN, CKM_RSA_PKCS, CKM_RSA_PKCS_KEY_PAIR_GEN,
                     CKM_RSA_PKCS_OAEP,
                     CKM_RSA_PKCS_PSS, CKM_RSA_X9_31, CKM_RSA_X9_31_KEY_PAIR_GEN,
                     CKM_RSA_X9_31_NON_FIPS, CKM_RSA_X_509,
                     CKM_SECURID, CKM_SECURID_KEY_GEN, CKM_SEED_CBC, CKM_SEED_CBC_PAD,
                     CKM_SEED_CMAC,
                     CKM_SEED_CMAC_GENERAL, CKM_SEED_CTR, CKM_SEED_ECB, CKM_SEED_KEY_GEN,
                     CKM_SEED_MAC,
                     CKM_SEED_MAC_GENERAL, CKM_SHA1_KEY_DERIVATION, CKM_SHA1_RSA_PKCS,
                     CKM_SHA1_RSA_PKCS_PSS,
                     CKM_SHA1_RSA_X9_31, CKM_SHA1_RSA_X9_31_NON_FIPS, CKM_SHA224, CKM_SHA224_HMAC,
                     CKM_SHA224_HMAC_GENERAL, CKM_SHA224_KEY_DERIVATION, CKM_SHA224_RSA_PKCS,
                     CKM_SHA224_RSA_PKCS_PSS,
                     CKM_SHA224_RSA_X9_31, CKM_SHA224_RSA_X9_31_NON_FIPS, CKM_SHA256,
                     CKM_SHA256_HMAC,
                     CKM_SHA256_HMAC_GENERAL, CKM_SHA256_KEY_DERIVATION, CKM_SHA256_RSA_PKCS,
                     CKM_SHA256_RSA_PKCS_PSS,
                     CKM_SHA256_RSA_X9_31, CKM_SHA256_RSA_X9_31_NON_FIPS, CKM_SHA384,
                     CKM_SHA384_HMAC,
                     CKM_SHA384_HMAC_GENERAL, CKM_SHA384_KEY_DERIVATION, CKM_SHA384_RSA_PKCS,
                     CKM_SHA384_RSA_PKCS_PSS,
                     CKM_SHA384_RSA_X9_31, CKM_SHA384_RSA_X9_31_NON_FIPS, CKM_SHA512,
                     CKM_SHA512_HMAC,
                     CKM_SHA512_HMAC_GENERAL, CKM_SHA512_KEY_DERIVATION, CKM_SHA512_RSA_PKCS,
                     CKM_SHA512_RSA_PKCS_PSS,
                     CKM_SHA512_RSA_X9_31, CKM_SHA512_RSA_X9_31_NON_FIPS, CKM_SHA_1, CKM_SHA_1_HMAC,
                     CKM_SHA_1_HMAC_GENERAL, CKM_SKIPJACK_CBC64, CKM_SKIPJACK_CFB16,
                     CKM_SKIPJACK_CFB32,
                     CKM_SKIPJACK_CFB64, CKM_SKIPJACK_CFB8, CKM_SKIPJACK_ECB64,
                     CKM_SKIPJACK_KEY_GEN, CKM_SKIPJACK_OFB64,
                     CKM_SKIPJACK_PRIVATE_WRAP, CKM_SKIPJACK_RELAYX, CKM_SKIPJACK_WRAP,
                     CKM_SSL3_KEY_AND_MAC_DERIVE,
                     CKM_SSL3_MASTER_KEY_DERIVE, CKM_SSL3_MASTER_KEY_DERIVE_DH, CKM_SSL3_MD5_MAC,
                     CKM_SSL3_PRE_MASTER_KEY_GEN, CKM_SSL3_SHA1_MAC, CKM_TDEA_KW, CKM_TDEA_KWP,
                     CKM_TLS_KEY_AND_MAC_DERIVE, CKM_TLS_MASTER_KEY_DERIVE,
                     CKM_TLS_MASTER_KEY_DERIVE_DH,
                     CKM_TLS_PRE_MASTER_KEY_GEN, CKM_TLS_PRF, CKM_TWOFISH_CBC, CKM_TWOFISH_KEY_GEN,
                     CKM_VENDOR_DEFINED,
                     CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE, CKM_WTLS_MASTER_KEY_DERIVE,
                     CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC,
                     CKM_WTLS_PRE_MASTER_KEY_GEN, CKM_WTLS_PRF, CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE,
                     CKM_X9_42_DH_DERIVE,
                     CKM_X9_42_DH_HYBRID_DERIVE, CKM_X9_42_DH_KEY_PAIR_GEN,
                     CKM_X9_42_DH_PARAMETER_GEN,
                     CKM_X9_42_MQV_DERIVE, CKM_XOR_BASE_AND_DATA, CKM_XOR_BASE_AND_DATA_W_KDF,
                     CKM_XOR_BASE_AND_KEY,
                     CKO_CERTIFICATE, CKO_DATA, CKO_SECRET_KEY)

CKM_DES_KEY_GEN_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                        CKA_KEY_TYPE: CKK_DES,
                        CKA_TOKEN: True,
                        CKA_SENSITIVE: True,
                        CKA_PRIVATE: True,
                        CKA_ENCRYPT: True,
                        CKA_DECRYPT: True,
                        CKA_SIGN: True,
                        CKA_VERIFY: True,
                        CKA_WRAP: True,
                        CKA_UNWRAP: True,
                        CKA_DERIVE: True,
                        CKA_VALUE_LEN: 8,
                        CKA_EXTRACTABLE: True,
                        CKA_LABEL: b"DES Key"}

CKM_DES_UNWRAP_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                       CKA_KEY_TYPE: CKK_DES,
                       CKA_TOKEN: True,
                       CKA_SENSITIVE: True,
                       CKA_PRIVATE: True,
                       CKA_ENCRYPT: True,
                       CKA_SIGN: True,
                       CKA_WRAP: True,
                       CKA_DERIVE: True,
                       CKA_LABEL: b"DES Key"}

CKM_DES2_KEY_GEN_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                         CKA_KEY_TYPE: CKK_DES2,
                         CKA_TOKEN: True,
                         CKA_SENSITIVE: True,
                         CKA_PRIVATE: True,
                         CKA_ENCRYPT: True,
                         CKA_DECRYPT: True,
                         CKA_SIGN: True,
                         CKA_VERIFY: True,
                         CKA_WRAP: True,
                         CKA_UNWRAP: True,
                         CKA_DERIVE: True,
                         CKA_VALUE_LEN: 16,
                         CKA_EXTRACTABLE: True,
                         CKA_LABEL: b"DES2 Key"}
CKM_DES3_KEY_GEN_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                         CKA_KEY_TYPE: CKK_DES3,
                         CKA_TOKEN: True,
                         CKA_SENSITIVE: True,
                         CKA_PRIVATE: True,
                         CKA_ENCRYPT: True,
                         CKA_DECRYPT: True,
                         CKA_SIGN: True,
                         CKA_VERIFY: True,
                         CKA_WRAP: True,
                         CKA_UNWRAP: True,
                         CKA_DERIVE: True,
                         CKA_VALUE_LEN: 24,
                         CKA_EXTRACTABLE: True,
                         CKA_LABEL: b"DES3 Key"}

CKM_CAST3_KEY_GEN_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                          CKA_KEY_TYPE: CKK_CAST3,
                          CKA_TOKEN: True,
                          CKA_SENSITIVE: True,
                          CKA_PRIVATE: True,
                          CKA_ENCRYPT: True,
                          CKA_DECRYPT: True,
                          CKA_SIGN: True,
                          CKA_VERIFY: True,
                          CKA_WRAP: True,
                          CKA_UNWRAP: True,
                          CKA_DERIVE: True,
                          CKA_VALUE_LEN: 8,  # 1-8
                          CKA_EXTRACTABLE: True,
                          CKA_LABEL: b"CAST3 Key"}

CKM_GENERIC_SECRET_KEY_GEN_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                                   CKA_KEY_TYPE: CKK_GENERIC_SECRET,
                                   CKA_TOKEN: True,
                                   CKA_SENSITIVE: True,
                                   CKA_PRIVATE: True,
                                   CKA_ENCRYPT: True,
                                   CKA_DECRYPT: True,
                                   CKA_SIGN: True,
                                   CKA_VERIFY: True,
                                   CKA_WRAP: True,
                                   CKA_UNWRAP: True,
                                   CKA_DERIVE: True,
                                   CKA_VALUE_LEN: 16,
                                   CKA_EXTRACTABLE: True,
                                   CKA_LABEL: b"GENERIC SECRET Key"}

CKM_RSA_PKCS_KEY_PAIR_GEN_PUBTEMP = {CKA_TOKEN: True,
                                     CKA_PRIVATE: True,
                                     CKA_MODIFIABLE: True,
                                     CKA_ENCRYPT: True,
                                     CKA_VERIFY: True,
                                     CKA_WRAP: True,
                                     CKA_MODULUS_BITS: 1024,  # long 0 - MAX_RSA_KEY_NBITS
                                     CKA_PUBLIC_EXPONENT: 3,  # byte
                                     CKA_LABEL: b"RSA Public Key"}
CKM_RSA_PKCS_KEY_PAIR_GEN_PRIVTEMP = {CKA_TOKEN: True,
                                      CKA_PRIVATE: True,
                                      CKA_SENSITIVE: True,
                                      CKA_MODIFIABLE: True,
                                      CKA_EXTRACTABLE: True,
                                      CKA_DECRYPT: True,
                                      CKA_SIGN: True,
                                      CKA_UNWRAP: True,
                                      CKA_LABEL: b"RSA Private Key"}

dsa_prime_1024_160 = [0xfc, 0xec, 0x61, 0x82, 0xeb, 0x20, 0x6b, 0x43, 0xc0, 0x3e, 0x36, 0xc0, 0xea,
                      0xda, 0xbf, 0xf5,
                      0x6a, 0x0c, 0x2e, 0x79, 0xde, 0xf4, 0x4b, 0xc8, 0xf2, 0xe5, 0x36, 0x99, 0x09,
                      0x6d, 0x1f, 0xf2,
                      0x70, 0xf1, 0x59, 0x78, 0x5d, 0x75, 0x69, 0x21, 0xdb, 0xff, 0x97, 0x73, 0xae,
                      0x08, 0x48, 0x3b,
                      0x66, 0x2f, 0xc0, 0x7d, 0xf7, 0x51, 0x2f, 0xf6, 0x8b, 0x2e, 0x55, 0x65, 0xfd,
                      0x79, 0x82, 0xe2,
                      0x0c, 0x24, 0x48, 0x32, 0xab, 0xa1, 0x21, 0xcc, 0x07, 0x99, 0xcc, 0x09, 0xf2,
                      0xd5, 0x41, 0x4d,
                      0x5f, 0x39, 0x66, 0x21, 0x13, 0x65, 0xf5, 0x1b, 0x83, 0xe9, 0xff, 0xcc, 0xcb,
                      0x3d, 0x88, 0xcd,
                      0xf2, 0x38, 0xf7, 0xc2, 0x73, 0x91, 0x31, 0xca, 0x7a, 0xad, 0xff, 0x66, 0x2f,
                      0xec, 0x1f, 0xb0,
                      0xe1, 0xd3, 0x11, 0xa4, 0x04, 0x26, 0x03, 0x76, 0xfd, 0x01, 0x1f, 0xe0, 0x0d,
                      0x02, 0x04, 0xc3]
dsa_sub_prime_1024_160 = [0xd3, 0x80, 0x73, 0x53, 0xb5, 0x1c, 0x5f, 0x71, 0xb2, 0x2a, 0xc3, 0xd0,
                          0xc7, 0xe3, 0x94,
                          0x14,
                          0x8f, 0xce, 0xdc, 0x61]
dsa_base_1024_160 = [0x42, 0xe3, 0x77, 0x8e, 0x6e, 0xc3, 0x1b, 0x0d, 0xb0, 0x7a, 0x6b, 0x37, 0x0d,
                     0x7f, 0xb6, 0xfb,
                     0x4a, 0x0b, 0xca, 0x6d, 0xea, 0xac, 0x37, 0x1f, 0x6a, 0xdb, 0xcb, 0xeb, 0xa3,
                     0x8d, 0xdf, 0x76,
                     0xa4, 0x7c, 0x3c, 0x3d, 0x79, 0x27, 0x6a, 0x0e, 0x57, 0x9c, 0xe4, 0xe3, 0x47,
                     0x18, 0x0f, 0xd9,
                     0xb4, 0xad, 0x46, 0x1d, 0x6c, 0xf0, 0xea, 0xc5, 0x1f, 0xb0, 0x8c, 0xf4, 0x52,
                     0xf6, 0x24, 0x57,
                     0x00, 0x51, 0xe5, 0x18, 0xa7, 0x5a, 0x5b, 0xb9, 0xc3, 0x57, 0x8a, 0x14, 0xfd,
                     0x4f, 0x27, 0xf7,
                     0x95, 0xb2, 0x2a, 0xce, 0xa6, 0x2b, 0x1f, 0xdf, 0x10, 0x32, 0xc1, 0x26, 0x6d,
                     0xa0, 0x81, 0xc7,
                     0xfb, 0x99, 0xc4, 0x26, 0x66, 0x26, 0x58, 0x70, 0x93, 0xfd, 0x38, 0x16, 0x17,
                     0x23, 0x8e, 0xe1,
                     0x57, 0x8f, 0xc3, 0x25, 0x54, 0x8d, 0xc1, 0xc0, 0x8e, 0x5f, 0x93, 0x22, 0xc3,
                     0xb1, 0x20, 0x5e]

dsa_prime_2048_224 = [0xa2, 0x15, 0xdc, 0xa3, 0xf7, 0x87, 0x34, 0x2c, 0x91, 0x90, 0x87, 0x83, 0x70,
                      0x79, 0x73, 0x38,
                      0x9f, 0x3e, 0x02, 0xf2, 0xc9, 0x68, 0xfe, 0x67, 0xca, 0xb9, 0x4f, 0x5d, 0x6f,
                      0x92, 0x8c, 0xe8,
                      0x6c, 0x8d, 0x62, 0x25, 0x37, 0x4c, 0xa1, 0xbf, 0x7f, 0x27, 0x77, 0x44, 0x8c,
                      0xc7, 0xc0, 0xc5,
                      0xed, 0x66, 0xd1, 0x20, 0x11, 0x7f, 0xec, 0x10, 0xed, 0x81, 0x55, 0x51, 0x45,
                      0x36, 0xe1, 0xaa,
                      0x31, 0x6b, 0x8d, 0xd4, 0x58, 0x27, 0xa0, 0xf0, 0x0e, 0x5d, 0x91, 0x8c, 0x0f,
                      0xdd, 0x21, 0x8a,
                      0xcd, 0x6c, 0x26, 0x3c, 0x1c, 0x2e, 0x55, 0xf6, 0xd0, 0xa7, 0x0f, 0x1b, 0xc9,
                      0x7f, 0x4b, 0xb0,
                      0x4f, 0xff, 0xee, 0x4b, 0x78, 0xb4, 0xdf, 0x34, 0x90, 0xad, 0x98, 0xab, 0xad,
                      0x0a, 0x4b, 0xfe,
                      0x1d, 0xaf, 0xaf, 0x6c, 0x09, 0xdd, 0xda, 0xdf, 0xb8, 0x88, 0x96, 0x94, 0x51,
                      0x3b, 0x86, 0x5c,
                      0x07, 0xa4, 0xf5, 0xf9, 0x27, 0xbe, 0x72, 0x39, 0xe8, 0xd7, 0x67, 0x14, 0xe0,
                      0x3b, 0x7b, 0xfa,
                      0xfb, 0x92, 0x94, 0x00, 0x0f, 0xbb, 0x3f, 0x7a, 0x75, 0x0b, 0x39, 0xca, 0x50,
                      0x63, 0x0e, 0xe7,
                      0xd0, 0xbc, 0x45, 0xa9, 0xc9, 0x87, 0xae, 0x38, 0xae, 0x03, 0x7a, 0x11, 0xb1,
                      0xd1, 0x3d, 0xf5,
                      0x51, 0x76, 0xd9, 0xd8, 0xab, 0x9e, 0xc0, 0xa4, 0x1b, 0x78, 0xa6, 0x36, 0x9e,
                      0xb5, 0x19, 0x88,
                      0xfe, 0x9f, 0xbd, 0x97, 0xa1, 0x0d, 0x48, 0xe2, 0xeb, 0x21, 0x8e, 0xc6, 0x92,
                      0xb3, 0x1c, 0xfc,
                      0xc9, 0x58, 0x3c, 0x7a, 0x41, 0x1d, 0x7d, 0xfa, 0x0a, 0xb3, 0x15, 0xfb, 0x0c,
                      0x75, 0xe2, 0x10,
                      0x9e, 0xb1, 0xe2, 0xee, 0x75, 0xf4, 0x1d, 0x0a, 0x01, 0x65, 0x46, 0xda, 0x70,
                      0xa6, 0x31, 0xac,
                      0x77, 0x8a, 0x2a, 0xe3, 0x25, 0x1f, 0x11, 0x39, 0xe5, 0x74, 0xe2, 0x6d, 0x2c,
                      0xc6, 0x5c, 0x47]
dsa_sub_prime_2048_224 = [0xd3, 0x76, 0x83, 0x74, 0x55, 0x3d, 0x49, 0x17, 0x19, 0x92, 0x74, 0xba,
                          0x05, 0x63, 0xbe,
                          0xff,
                          0xa2, 0xa4, 0x5f, 0x05, 0xae, 0x83, 0xdf, 0x9b, 0x34, 0x81, 0x55, 0xbf]
dsa_base_2048_224 = [0x4e, 0x1f, 0x73, 0x4e, 0x08, 0x92, 0xd0, 0x4d, 0x80, 0x89, 0x93, 0xe6, 0x3d,
                     0xad, 0xef, 0xb3,
                     0xfa, 0xa2, 0x48, 0x4c, 0x88, 0x83, 0x8d, 0x38, 0xd8, 0xea, 0x64, 0xca, 0x28,
                     0xd6, 0xc0, 0x89,
                     0xbe, 0x4b, 0x88, 0x14, 0x66, 0x83, 0xec, 0xbd, 0x8b, 0x8d, 0xc6, 0xfb, 0x17,
                     0x81, 0xca, 0x1d,
                     0x83, 0xf3, 0x7f, 0x38, 0xd2, 0x36, 0x03, 0x2b, 0x17, 0x51, 0x16, 0x6a, 0xe4,
                     0x3f, 0x22, 0xb5,
                     0x2d, 0xd6, 0x03, 0x40, 0x1e, 0x89, 0xfe, 0xf6, 0xc9, 0xd0, 0x21, 0x5f, 0x49,
                     0xa2, 0xcf, 0x97,
                     0x33, 0x7b, 0xe2, 0x61, 0x28, 0x8f, 0xd9, 0xac, 0xfb, 0xb6, 0xc2, 0xc0, 0xc5,
                     0xea, 0x70, 0x9d,
                     0x14, 0x76, 0x02, 0x74, 0x41, 0x75, 0x4c, 0xcd, 0x71, 0x00, 0x79, 0x05, 0x52,
                     0x55, 0x97, 0xd7,
                     0xae, 0xc7, 0x71, 0xeb, 0x01, 0x2b, 0x0b, 0xfc, 0xd3, 0x4f, 0x87, 0x16, 0xc7,
                     0xcc, 0xb1, 0x91,
                     0x3d, 0x4f, 0xa6, 0x10, 0x50, 0x4b, 0x67, 0x79, 0x01, 0xdb, 0x37, 0x80, 0x01,
                     0x9a, 0xa6, 0x92,
                     0x23, 0xfb, 0xcd, 0x94, 0x33, 0x6f, 0x2b, 0xf0, 0x2b, 0x44, 0x09, 0x39, 0x39,
                     0xcc, 0x0d, 0x96,
                     0x11, 0xe8, 0xf5, 0xc6, 0x28, 0x50, 0x2e, 0x2b, 0x81, 0x08, 0x3f, 0xc1, 0x28,
                     0x2f, 0x65, 0x2e,
                     0x16, 0x48, 0xc4, 0xe2, 0xb0, 0x29, 0x54, 0x99, 0x19, 0xc5, 0x78, 0xbf, 0x3b,
                     0xf3, 0x84, 0x70,
                     0xc7, 0x8b, 0x5a, 0xcb, 0x10, 0x55, 0xfe, 0x4b, 0x71, 0xef, 0xf5, 0xdb, 0x85,
                     0xa6, 0xf5, 0xe8,
                     0x00, 0xf5, 0xc2, 0xb4, 0xa6, 0x48, 0x39, 0x83, 0x6e, 0xd1, 0xb0, 0xad, 0xea,
                     0x2d, 0x7e, 0x2e,
                     0x22, 0x98, 0xaa, 0x10, 0x7f, 0xa0, 0xec, 0x23, 0x70, 0x87, 0xf5, 0xda, 0x6b,
                     0x5e, 0x0d, 0x8b,
                     0x46, 0xc8, 0x88, 0x61, 0xc3, 0xc1, 0xf5, 0xdb, 0x02, 0x2a, 0x62, 0x7a, 0xd5,
                     0x95, 0xe5, 0xe2]

dsa_prime_2048_256 = [0xad, 0x78, 0xd1, 0x93, 0x08, 0x76, 0x4f, 0x04, 0xeb, 0x6a, 0xa3, 0x82, 0x09,
                      0x38, 0x0f, 0xf6,
                      0xc9, 0x87, 0x5e, 0x27, 0xb2, 0x7c, 0xc1, 0x4b, 0x78, 0x29, 0xbe, 0x2e, 0xcd,
                      0xae, 0x26, 0x88,
                      0xf4, 0x5d, 0xe8, 0x09, 0xd1, 0x16, 0x06, 0x61, 0xd4, 0x81, 0x65, 0x00, 0x5d,
                      0x76, 0x7e, 0xf1,
                      0x24, 0x73, 0x01, 0x8f, 0x92, 0xd4, 0x07, 0xe7, 0xf3, 0xf7, 0x3a, 0xb9, 0x8b,
                      0x8e, 0xc8, 0xf4,
                      0x13, 0x2b, 0x52, 0xb8, 0x2a, 0x08, 0x57, 0xbc, 0x15, 0xe5, 0x8e, 0x2a, 0x16,
                      0xda, 0x5e, 0xff,
                      0xd2, 0x4e, 0xc7, 0x24, 0xa9, 0x70, 0x74, 0xd2, 0xb4, 0xc1, 0xc0, 0xec, 0x81,
                      0xcb, 0x83, 0xe9,
                      0x29, 0x2a, 0xfd, 0x3b, 0xb9, 0x83, 0xec, 0x23, 0xd1, 0xf9, 0x13, 0xec, 0x1a,
                      0x68, 0x3f, 0x44,
                      0x9b, 0x85, 0x7a, 0x5e, 0x6a, 0x38, 0x91, 0xe0, 0xc6, 0xc8, 0x15, 0x23, 0xf3,
                      0x98, 0xf7, 0x29,
                      0x7f, 0x7b, 0x07, 0x14, 0x3f, 0x6f, 0xfa, 0x11, 0x71, 0x65, 0xff, 0xd9, 0xdc,
                      0x71, 0x23, 0xd3,
                      0x40, 0xec, 0x3b, 0x5f, 0x47, 0x9c, 0x4d, 0x53, 0x4c, 0x4f, 0x61, 0x31, 0xae,
                      0xda, 0x2e, 0xb6,
                      0xd3, 0xd2, 0x01, 0x2c, 0x63, 0x9b, 0xaa, 0x61, 0x79, 0x13, 0xe9, 0xcc, 0xef,
                      0x57, 0xb1, 0x7a,
                      0xd1, 0xd2, 0xe3, 0xfd, 0x92, 0x29, 0x43, 0x4a, 0xc4, 0x50, 0x8c, 0x36, 0xe8,
                      0xa5, 0xca, 0x9a,
                      0xf6, 0x43, 0x3e, 0x75, 0x32, 0x16, 0x8b, 0xe8, 0x98, 0x9c, 0x60, 0x00, 0x83,
                      0xb6, 0xf4, 0xc9,
                      0xa2, 0x36, 0xe8, 0xf6, 0xe3, 0x8a, 0x68, 0x64, 0x61, 0x1d, 0x7b, 0xe2, 0x3c,
                      0xf2, 0x48, 0x77,
                      0x7d, 0xe5, 0xd1, 0xd0, 0x7a, 0x8d, 0x34, 0xdd, 0x1c, 0xc2, 0xbe, 0x99, 0xa4,
                      0xda, 0xbf, 0xd1,
                      0x30, 0x4b, 0xc1, 0xc9, 0x73, 0xc1, 0x07, 0x78, 0x04, 0x0f, 0xdd, 0x7f, 0xa2,
                      0xfa, 0xc1, 0x0f]
dsa_sub_prime_2048_256 = [0xac, 0x66, 0x19, 0x0a, 0x7f, 0x8d, 0x6b, 0x5f, 0xc3, 0x77, 0x06, 0x35,
                          0x58, 0x2f, 0x9b,
                          0xc1,
                          0x4a, 0x56, 0x91, 0x55, 0xf9, 0x79, 0x3b, 0x79, 0x8e, 0x2e, 0xdb, 0xfc,
                          0x69, 0x4e, 0x6a,
                          0xfd]
dsa_base_2048_256 = [0xa6, 0x37, 0x45, 0x31, 0xe5, 0x54, 0x8a, 0x58, 0xa6, 0xd0, 0x20, 0x33, 0xdf,
                     0x60, 0xbf, 0xf8,
                     0xa3, 0x5c, 0xa4, 0x1b, 0x37, 0xe4, 0xc9, 0xea, 0xb0, 0xf2, 0x53, 0x22, 0x19,
                     0x60, 0xaa, 0x6f,
                     0xb2, 0x6b, 0xad, 0x24, 0x04, 0xad, 0x38, 0x57, 0x70, 0x3c, 0x4e, 0x71, 0x6e,
                     0x35, 0x0d, 0x4b,
                     0xcc, 0xbc, 0x4d, 0xad, 0xd9, 0x1d, 0x30, 0x5e, 0xc4, 0x3a, 0x62, 0xfe, 0x2e,
                     0x82, 0x52, 0xcb,
                     0x97, 0x37, 0xb6, 0x0a, 0xf4, 0xc5, 0x5d, 0xf7, 0xfa, 0xe4, 0x95, 0x18, 0xeb,
                     0x0d, 0x1b, 0xcc,
                     0x0e, 0xda, 0x06, 0x50, 0x28, 0xa5, 0x1a, 0x87, 0x51, 0x21, 0xcd, 0xd5, 0xea,
                     0x60, 0xa1, 0x39,
                     0x39, 0x82, 0x33, 0xa5, 0xd1, 0x9b, 0x0d, 0xb3, 0x5c, 0xc3, 0xeb, 0x7d, 0xa3,
                     0x23, 0xa8, 0xf3,
                     0xb2, 0x95, 0xd3, 0x5c, 0x31, 0xb6, 0xaa, 0x55, 0xd4, 0x22, 0xaa, 0xb5, 0x5f,
                     0x47, 0x0f, 0xd2,
                     0x79, 0xa3, 0xd3, 0x55, 0xb2, 0xa5, 0xd7, 0x5b, 0xd0, 0x37, 0x1d, 0x92, 0x58,
                     0xf6, 0xda, 0x07,
                     0x48, 0x9e, 0x02, 0x9d, 0xfb, 0xd6, 0x71, 0x10, 0x7e, 0x0b, 0x2c, 0x94, 0xff,
                     0xc3, 0xdc, 0xa7,
                     0x40, 0x4b, 0x81, 0x34, 0x19, 0xdb, 0x55, 0xc3, 0x46, 0xf8, 0xc3, 0x4d, 0xe7,
                     0x8a, 0x0d, 0x1c,
                     0x69, 0xd2, 0x6f, 0x91, 0xb2, 0xd3, 0xcf, 0xc5, 0x20, 0xfe, 0x0a, 0xc0, 0x6d,
                     0x95, 0x5b, 0xd2,
                     0x50, 0xa6, 0xb8, 0x6f, 0xe1, 0x32, 0xc0, 0x57, 0x13, 0x0b, 0x26, 0xd8, 0x22,
                     0x9d, 0xe3, 0xad,
                     0x06, 0x79, 0xb4, 0xfc, 0xf5, 0x00, 0xb5, 0x5c, 0x76, 0x5d, 0xf9, 0x86, 0xb6,
                     0x69, 0x4f, 0x6c,
                     0x02, 0x2d, 0x92, 0x7d, 0x9c, 0x48, 0x58, 0x7b, 0x17, 0x95, 0x7c, 0xe3, 0x97,
                     0x4d, 0x93, 0x7a,
                     0x4c, 0x26, 0xc1, 0xa1, 0xe0, 0x6c, 0xbb, 0xc3, 0x01, 0x70, 0x9f, 0x14, 0x29,
                     0x3f, 0xe0, 0x5e]

dsa_prime_3072_256 = [0xa0, 0x38, 0x3e, 0xe6, 0x92, 0xf8, 0xf5, 0xba, 0xdd, 0xf9, 0x31, 0x7b, 0x16,
                      0xed, 0xd2, 0x84,
                      0xa3, 0x63, 0x19, 0xb0, 0x53, 0xf7, 0x3a, 0xd4, 0x31, 0xae, 0x4b, 0x5d, 0xb2,
                      0xc6, 0x63, 0x0b,
                      0x5a, 0xbf, 0xe8, 0xc5, 0xcb, 0x9d, 0x23, 0x06, 0x50, 0xdc, 0x72, 0xee, 0xfb,
                      0xe6, 0xf2, 0x61,
                      0xdb, 0x2f, 0x43, 0xe6, 0x83, 0x81, 0x58, 0x8c, 0xfd, 0x4a, 0x74, 0x51, 0xbb,
                      0xbb, 0x30, 0xc5,
                      0x95, 0x21, 0xd7, 0x8e, 0xa7, 0x6d, 0xc0, 0x70, 0xcf, 0x81, 0x78, 0x33, 0x19,
                      0x9f, 0xf7, 0x15,
                      0xcb, 0xd1, 0x12, 0xa2, 0x58, 0x50, 0x69, 0x35, 0x44, 0x66, 0x2e, 0x12, 0xbb,
                      0x27, 0x93, 0xa8,
                      0x14, 0x84, 0x77, 0x64, 0xac, 0x27, 0x7c, 0x5c, 0xf0, 0x6b, 0x3e, 0x04, 0x4a,
                      0x45, 0x91, 0x3e,
                      0xdd, 0x61, 0x92, 0x29, 0xdd, 0xd7, 0x28, 0x93, 0x14, 0xd0, 0x0b, 0xb6, 0xa7,
                      0xda, 0xf1, 0x7e,
                      0xb8, 0x63, 0xf3, 0x1d, 0xc2, 0x2c, 0xcc, 0x05, 0xf6, 0x14, 0xc1, 0xbb, 0x0c,
                      0xea, 0x4c, 0x45,
                      0x4f, 0xc6, 0xa0, 0x29, 0xc0, 0xd2, 0x56, 0x8d, 0x1c, 0x5e, 0xef, 0x7f, 0x7c,
                      0x41, 0xf1, 0xb6,
                      0x59, 0xce, 0xd9, 0x24, 0xdd, 0x0e, 0xab, 0xc7, 0xc9, 0xbc, 0x3a, 0x55, 0x90,
                      0xd4, 0x03, 0x12,
                      0xe3, 0xec, 0x13, 0xa2, 0xca, 0xa1, 0x80, 0xed, 0x6b, 0x0c, 0x7d, 0x54, 0xd1,
                      0x63, 0xca, 0x1f,
                      0x32, 0xcd, 0x89, 0x27, 0xa0, 0xfd, 0x39, 0x4e, 0x51, 0xde, 0xf2, 0xa3, 0x1e,
                      0x83, 0xfc, 0x53,
                      0x73, 0xbe, 0xf8, 0xd2, 0x5f, 0x65, 0x32, 0xef, 0x51, 0x5f, 0x86, 0x7b, 0x0b,
                      0x31, 0x73, 0x8f,
                      0xf2, 0x7f, 0xac, 0xad, 0x0d, 0xfb, 0x40, 0xe7, 0x6b, 0x68, 0x3a, 0x3b, 0x11,
                      0xc9, 0x9f, 0x59,
                      0xc8, 0xa4, 0x98, 0xba, 0x2b, 0x88, 0x08, 0x70, 0x0f, 0x20, 0x15, 0x14, 0x5c,
                      0x77, 0xdb, 0xa4,
                      0x20, 0xc5, 0xf0, 0xdb, 0x95, 0xac, 0x88, 0x03, 0x6a, 0x40, 0x90, 0x4a, 0x53,
                      0xb3, 0x80, 0xaa,
                      0x0c, 0x75, 0x80, 0x5a, 0x0d, 0xfd, 0xad, 0x4c, 0xbe, 0xaa, 0x48, 0x91, 0xab,
                      0xd8, 0x4d, 0x24,
                      0xbb, 0x64, 0x4d, 0x96, 0xc5, 0x9f, 0x33, 0x9e, 0x01, 0x6b, 0xb4, 0x32, 0x1f,
                      0xf4, 0xee, 0x33,
                      0xe4, 0x03, 0xce, 0xa0, 0xde, 0x9e, 0xd9, 0x59, 0xcc, 0x6c, 0x1b, 0xba, 0x2c,
                      0x7d, 0xc7, 0x44,
                      0xde, 0x7a, 0x22, 0x5f, 0x65, 0xfb, 0x0a, 0x78, 0xee, 0x57, 0xba, 0x7d, 0x2a,
                      0x92, 0xf2, 0x47,
                      0x50, 0xda, 0xa6, 0x8c, 0x8a, 0x6a, 0x83, 0x06, 0xc3, 0x5c, 0x49, 0x0d, 0x2d,
                      0x2f, 0x58, 0x92,
                      0xbe, 0x12, 0x41, 0x86, 0x0a, 0xd5, 0x45, 0x3b, 0x1b, 0xe3, 0x2b, 0x0e, 0xc7,
                      0x29, 0x98, 0x3e,
                      0x3c, 0x97, 0xd3, 0x28, 0x73, 0xfc, 0x82, 0xc7, 0xb4, 0xf4, 0x6b, 0xfd, 0xa5,
                      0x14, 0x9e, 0x8f]
dsa_sub_prime_3072_256 = [0xf3, 0x96, 0x52, 0xd0, 0x0e, 0xf7, 0x96, 0x2d, 0xae, 0x7d, 0x8a, 0x13,
                          0xa8, 0x09, 0xa8,
                          0x14,
                          0xc5, 0xe4, 0xf9, 0xba, 0x8e, 0x6d, 0xea, 0x3d, 0x18, 0xf3, 0x51, 0x48,
                          0x04, 0xfc, 0xe1,
                          0x37]
dsa_base_3072_256 = [0x07, 0x1f, 0x94, 0x97, 0xf8, 0x58, 0x85, 0x5e, 0xa6, 0x1f, 0xa8, 0x05, 0x97,
                     0x34, 0xc0, 0x12,
                     0x2a, 0xc9, 0x1c, 0xb9, 0xf8, 0x1d, 0xfd, 0x8f, 0xa6, 0xec, 0xc0, 0x83, 0xf6,
                     0x0c, 0xb3, 0x0e,
                     0xa8, 0x0b, 0x15, 0x56, 0xe5, 0xc3, 0x90, 0xd0, 0x06, 0x73, 0x24, 0x68, 0x28,
                     0xd4, 0xbc, 0xed,
                     0xa1, 0x84, 0x89, 0x15, 0xab, 0x86, 0xff, 0x24, 0x56, 0x8e, 0x40, 0x02, 0x03,
                     0x99, 0xbd, 0xb9,
                     0xf6, 0x75, 0x12, 0x59, 0x51, 0xad, 0x1e, 0x57, 0x1d, 0xd4, 0xf2, 0x23, 0x46,
                     0x14, 0x89, 0xab,
                     0x65, 0x45, 0x04, 0x40, 0xe2, 0x2b, 0x01, 0xb8, 0xf5, 0x9b, 0x9b, 0x38, 0x69,
                     0x2f, 0x12, 0x0b,
                     0x98, 0x34, 0xdd, 0x28, 0xeb, 0x9f, 0xf0, 0x8a, 0xfc, 0x44, 0x98, 0xe1, 0x72,
                     0xeb, 0x3d, 0x54,
                     0xb2, 0x8a, 0x8e, 0xb1, 0x00, 0xab, 0x50, 0xa5, 0x66, 0x7b, 0x9a, 0x9e, 0x8a,
                     0xad, 0x3f, 0x68,
                     0xf1, 0xde, 0xb1, 0x04, 0x60, 0x4a, 0x3d, 0x2e, 0x0f, 0x25, 0x0a, 0x9c, 0x18,
                     0x8b, 0x74, 0x61,
                     0xec, 0xd7, 0xde, 0xc6, 0x56, 0xb5, 0x77, 0xe8, 0x46, 0x7e, 0x46, 0x4e, 0x11,
                     0xac, 0x49, 0x44,
                     0x97, 0x88, 0x65, 0xcd, 0xf5, 0x63, 0xaa, 0xb6, 0xa2, 0xe6, 0x8a, 0x29, 0x53,
                     0x95, 0x2b, 0x0a,
                     0x68, 0xe8, 0x81, 0x48, 0x6e, 0x76, 0x34, 0xd4, 0x91, 0x8d, 0xf9, 0x70, 0xa7,
                     0xce, 0x0d, 0x60,
                     0x8a, 0x92, 0x70, 0x8e, 0x49, 0x52, 0x12, 0xfd, 0x4b, 0x26, 0x79, 0x0d, 0x5c,
                     0x07, 0xdd, 0x5a,
                     0xb5, 0x5a, 0xe8, 0x20, 0x9b, 0x63, 0x19, 0x05, 0x55, 0xc0, 0x43, 0xb7, 0x80,
                     0x2f, 0xae, 0x78,
                     0x79, 0x7e, 0x4f, 0x63, 0xf1, 0xcb, 0x18, 0x09, 0xaf, 0x4a, 0xfc, 0x60, 0xb2,
                     0xb4, 0xaf, 0x78,
                     0xba, 0xb3, 0xad, 0x9c, 0xcc, 0x39, 0x10, 0x08, 0x96, 0x43, 0x8e, 0x67, 0x91,
                     0xae, 0xec, 0x90,
                     0xe8, 0x99, 0xf9, 0x76, 0x59, 0x45, 0x4f, 0x4c, 0x75, 0x96, 0x33, 0xb0, 0xd8,
                     0x57, 0xb5, 0x05,
                     0x12, 0x45, 0x15, 0xc7, 0x5e, 0x3a, 0x64, 0x90, 0xe7, 0x16, 0x8c, 0x73, 0xfa,
                     0x15, 0x68, 0xe8,
                     0xc9, 0x04, 0xb0, 0x42, 0x49, 0xfa, 0x31, 0xa8, 0x3c, 0x6d, 0x83, 0x8a, 0xf7,
                     0xd4, 0x2d, 0x48,
                     0x71, 0x09, 0x89, 0xf9, 0xfb, 0xc9, 0xc3, 0x7b, 0x2c, 0x87, 0x91, 0x57, 0xc9,
                     0xe9, 0x81, 0x8e,
                     0xa4, 0xdd, 0xb7, 0x7a, 0x1f, 0xbc, 0x66, 0x3e, 0xd8, 0x2d, 0xe8, 0x38, 0xc3,
                     0xab, 0x3b, 0x82,
                     0xc5, 0x7d, 0xd0, 0xff, 0xbf, 0xa4, 0x95, 0xe6, 0xea, 0xd3, 0x3e, 0x44, 0x05,
                     0xd0, 0x58, 0xe9,
                     0xb3, 0x7b, 0x3a, 0x71, 0xce, 0xbd, 0xe4, 0x2f, 0x4d, 0x33, 0x46, 0xb4, 0xc5,
                     0xf9, 0xd6, 0x49,
                     0x8b, 0x73, 0xbc, 0x1b, 0x9f, 0x0d, 0x3d, 0x0c, 0x49, 0x29, 0x42, 0x99, 0x70,
                     0xe9, 0xc5, 0xeb]

CKM_DSA_KEY_PAIR_GEN_PUBTEMP_1024_160 = {CKA_TOKEN: True,
                                         CKA_PRIVATE: True,
                                         CKA_ENCRYPT: True,
                                         CKA_VERIFY: True,
                                         CKA_WRAP: True,
                                         CKA_PRIME: dsa_prime_1024_160,
                                         CKA_SUBPRIME: dsa_sub_prime_1024_160,
                                         CKA_BASE: dsa_base_1024_160,
                                         CKA_LABEL: b"DSA 1024_160 Public Key"}
CKM_DSA_KEY_PAIR_GEN_PUBTEMP_2048_224 = {CKA_TOKEN: True,
                                         CKA_PRIVATE: True,
                                         CKA_ENCRYPT: True,
                                         CKA_VERIFY: True,
                                         CKA_WRAP: True,
                                         CKA_PRIME: dsa_prime_2048_224,
                                         CKA_SUBPRIME: dsa_sub_prime_2048_224,
                                         CKA_BASE: dsa_base_2048_224,
                                         CKA_LABEL: b"DSA 2048_224 Public Key"}
CKM_DSA_KEY_PAIR_GEN_PUBTEMP_2048_256 = {CKA_TOKEN: True,
                                         CKA_PRIVATE: True,
                                         CKA_ENCRYPT: True,
                                         CKA_VERIFY: True,
                                         CKA_WRAP: True,
                                         CKA_PRIME: dsa_prime_2048_256,
                                         CKA_SUBPRIME: dsa_sub_prime_2048_256,
                                         CKA_BASE: dsa_base_2048_256,
                                         CKA_LABEL: b"DSA 2048_256 Public Key"}
CKM_DSA_KEY_PAIR_GEN_PUBTEMP_3072_256 = {CKA_TOKEN: True,
                                         CKA_PRIVATE: True,
                                         CKA_ENCRYPT: True,
                                         CKA_VERIFY: True,
                                         CKA_WRAP: True,
                                         CKA_PRIME: dsa_prime_3072_256,
                                         CKA_SUBPRIME: dsa_sub_prime_3072_256,
                                         CKA_BASE: dsa_base_3072_256,
                                         CKA_LABEL: b"DSA 3072_256 Public Key"}
CKM_DSA_KEY_PAIR_GEN_PRIVTEMP = {CKA_TOKEN: True,
                                 CKA_PRIVATE: True,
                                 CKA_SENSITIVE: True,
                                 CKA_DECRYPT: True,
                                 CKA_SIGN: True,
                                 CKA_UNWRAP: True,
                                 CKA_EXTRACTABLE: True,
                                 CKA_LABEL: b"DSA Public Key"}

dh_prime = [0xF4, 0x88, 0xFD, 0x58, 0x4E, 0x49, 0xDB, 0xCD, 0x20, 0xB4, 0x9D, 0xE4, 0x91, 0x07,
            0x36, 0x6B,
            0x33, 0x6C, 0x38, 0x0D, 0x45, 0x1D, 0x0F, 0x7C, 0x88, 0xB3, 0x1C, 0x7C, 0x5B, 0x2D,
            0x8E, 0xF6,
            0xF3, 0xC9, 0x23, 0xC0, 0x43, 0xF0, 0xA5, 0x5B, 0x18, 0x8D, 0x8E, 0xBB, 0x55, 0x8C,
            0xB8, 0x5D,
            0x38, 0xD3, 0x34, 0xFD, 0x7C, 0x17, 0x57, 0x43, 0xA3, 0x1D, 0x18, 0x6C, 0xDE, 0x33,
            0x21, 0x2C,
            0xB5, 0x2A, 0xFF, 0x3C, 0xE1, 0xB1, 0x29, 0x40, 0x18, 0x11, 0x8D, 0x7C, 0x84, 0xA7,
            0x0A, 0x72,
            0xD6, 0x86, 0xC4, 0x03, 0x19, 0xC8, 0x07, 0x29, 0x7A, 0xCA, 0x95, 0x0C, 0xD9, 0x96,
            0x9F, 0xAB,
            0xD0, 0x0A, 0x50, 0x9B, 0x02, 0x46, 0xD3, 0x08, 0x3D, 0x66, 0xA4, 0x5D, 0x41, 0x9F,
            0x9C, 0x7C,
            0xBD, 0x89, 0x4B, 0x22, 0x19, 0x26, 0xBA, 0xAB, 0xA2, 0x5E, 0xC3, 0x55, 0xE9, 0x2F,
            0x78, 0xC7]
dh_prime_2048 = [0xF1, 0x20, 0xB5, 0x5B, 0x3A, 0xE4, 0xD0, 0xF6, 0xEF, 0xA4, 0xF2, 0x9F, 0xC4, 0xDF,
                 0x86, 0x84,
                 0x57, 0x54, 0x14, 0x90, 0x98, 0xBD, 0x3E, 0x57, 0x86, 0xE8, 0xC9, 0xA0, 0x30, 0xAF,
                 0xE6, 0xA7,
                 0x6D, 0x7E, 0x4F, 0xDA, 0x20, 0x87, 0x46, 0x0C, 0xED, 0x88, 0xDC, 0xDB, 0x95, 0xDE,
                 0xD3, 0x4F,
                 0xC7, 0x18, 0x80, 0x3A, 0x0D, 0xD2, 0xF1, 0x54, 0x5C, 0xD2, 0x29, 0x78, 0x3C, 0xE4,
                 0x40, 0x0C,
                 0x1A, 0x6B, 0x36, 0x73, 0x42, 0xE1, 0xB3, 0xD3, 0xEB, 0x95, 0xDB, 0x7A, 0x06, 0xD6,
                 0x54, 0x11,
                 0xDB, 0x0B, 0xB3, 0x00, 0x52, 0xA5, 0x74, 0x77, 0x5B, 0x47, 0x2A, 0x6E, 0x31, 0xCB,
                 0x8A, 0x5D,
                 0x1C, 0x8A, 0x7D, 0x93, 0x7A, 0xC3, 0x62, 0x44, 0xC3, 0x29, 0x40, 0x6D, 0x3E, 0x47,
                 0x62, 0x2F,
                 0x93, 0xCD, 0xF3, 0xED, 0xA6, 0x1E, 0x1D, 0x57, 0x4E, 0xFF, 0x5F, 0x46, 0x92, 0xCC,
                 0xFC, 0x7E,
                 0x98, 0x8C, 0xE8, 0xB0, 0xAA, 0x33, 0x70, 0x96, 0x3D, 0xC1, 0x5B, 0x10, 0x2A, 0x07,
                 0x34, 0x84,
                 0x4E, 0xCD, 0xEB, 0xD7, 0x15, 0x63, 0x8C, 0xC4, 0x67, 0xB0, 0xC1, 0xB9, 0xB8, 0x45,
                 0xB0, 0x3B,
                 0x3A, 0x76, 0x83, 0x2C, 0xF5, 0x28, 0xB3, 0xF7, 0x10, 0x23, 0x7E, 0xAA, 0xF6, 0xE6,
                 0x8B, 0xE7,
                 0x57, 0x35, 0x1F, 0x51, 0x34, 0x58, 0x5E, 0x0C, 0x2D, 0x36, 0xCF, 0xA3, 0x85, 0x34,
                 0xB0, 0x14,
                 0x7D, 0xD0, 0x8C, 0x34, 0xBB, 0xC1, 0x8D, 0x49, 0x8C, 0xDA, 0x41, 0x48, 0x66, 0xDB,
                 0x41, 0xE1,
                 0xAE, 0x41, 0x9B, 0xCB, 0x6E, 0x78, 0x92, 0x0B, 0x60, 0x17, 0x4B, 0xE8, 0x15, 0x40,
                 0x30, 0xD5,
                 0x06, 0xFD, 0xA3, 0x9C, 0xA1, 0xA9, 0xC2, 0xA6, 0x46, 0xF5, 0xEA, 0xE6, 0x4E, 0xF4,
                 0x19, 0x49,
                 0x4A, 0x5C, 0x90, 0xE4, 0x6B, 0xF8, 0x04, 0xF5, 0xB6, 0xB7, 0xF9, 0x92, 0x3D, 0x5F,
                 0x05, 0x9B]
CKM_DH_PKCS_KEY_PAIR_GEN_PUBTEMP = {CKA_TOKEN: True,
                                    CKA_PRIVATE: True,
                                    CKA_DERIVE: True,
                                    CKA_PRIME: dh_prime,
                                    CKA_BASE: [0x02],
                                    CKA_LABEL: b"DH Public Key"}
CKM_DH_PKCS_KEY_PAIR_GEN_PRIVTEMP = {CKA_VALUE_BITS: len(dh_prime) * 8,  # long
                                     CKA_TOKEN: True,
                                     CKA_PRIVATE: True,
                                     CKA_SENSITIVE: True,
                                     CKA_DERIVE: True,
                                     CKA_EXTRACTABLE: True,
                                     CKA_LABEL: b"DH Private Key"}

CKM_CAST5_KEY_GEN_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                          CKA_KEY_TYPE: CKK_CAST5,
                          CKA_TOKEN: True,
                          CKA_SENSITIVE: True,
                          CKA_PRIVATE: True,
                          CKA_ENCRYPT: True,
                          CKA_DECRYPT: True,
                          CKA_SIGN: True,
                          CKA_VERIFY: True,
                          CKA_WRAP: True,
                          CKA_UNWRAP: True,
                          CKA_DERIVE: True,
                          CKA_VALUE_LEN: 16,  # 1-16
                          CKA_EXTRACTABLE: True,
                          CKA_LABEL: b"CAST5 Key"}

CKM_RC2_KEY_GEN_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                        CKA_KEY_TYPE: CKK_RC2,
                        CKA_TOKEN: True,
                        CKA_SENSITIVE: True,
                        CKA_PRIVATE: True,
                        CKA_ENCRYPT: True,
                        CKA_DECRYPT: True,
                        CKA_SIGN: True,
                        CKA_VERIFY: True,
                        CKA_WRAP: True,
                        CKA_UNWRAP: True,
                        CKA_DERIVE: True,
                        CKA_VALUE_LEN: 64,  # 1-128
                        CKA_EXTRACTABLE: True,
                        CKA_LABEL: b"RC2 Key"}

CKM_RC4_KEY_GEN_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                        CKA_KEY_TYPE: CKK_RC4,
                        CKA_TOKEN: True,
                        CKA_SENSITIVE: True,
                        CKA_PRIVATE: True,
                        CKA_ENCRYPT: True,
                        CKA_DECRYPT: True,
                        CKA_SIGN: True,
                        CKA_VERIFY: True,
                        CKA_WRAP: True,
                        CKA_UNWRAP: True,
                        CKA_DERIVE: True,
                        CKA_VALUE_LEN: 256,  # 1-256
                        CKA_EXTRACTABLE: True,
                        CKA_LABEL: b"RC4 Key"}

CKM_RC5_KEY_GEN_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                        CKA_KEY_TYPE: CKK_RC5,
                        CKA_TOKEN: True,
                        CKA_SENSITIVE: True,
                        CKA_PRIVATE: True,
                        CKA_ENCRYPT: True,
                        CKA_DECRYPT: True,
                        CKA_SIGN: True,
                        CKA_VERIFY: True,
                        CKA_WRAP: True,
                        CKA_UNWRAP: True,
                        CKA_DERIVE: True,
                        CKA_VALUE_LEN: 255,  # 1-255
                        CKA_EXTRACTABLE: True,
                        CKA_LABEL: b"RC5 Key"}

CKM_SSL3_PRE_MASTER_KEY_GEN_TEMP = {CKA_TOKEN: True,
                                    CKA_DERIVE: True,
                                    CKA_ENCRYPT: 0x1001,
                                    # TODO, is encrypt both a long and a boolean, uh oh
                                    CKA_LABEL: b"SSL3 Pre Master Key"}

'''
Curve dictionary for ECDSA with oids as lists, taken from Components/tools/common/CommonData.cpp
'''
curve_list = {
    'secp112r1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x06],  # [0] OID_secp112r1
    'secp112r2': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x07],  # [7] OID_secp112r2
    'secp128r1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x1C],  # [14] OID_secp128r1
    'secp128r2': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x1D],  # [21] OID_secp128r2
    'secp160k1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x09],  # [28] OID_secp160k1
    'secp160r1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x08],  # [35] OID_secp160r1
    'secp160r2': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x1E],  # [42] OID_secp160r2
    'secp192k1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x1F],  # [49] OID_secp192k1
    'secp224k1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x20],  # [56] OID_secp224k1
    'secp224r1(P-224)': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x21],  # [63] OID_secp224r1
    'secp256k1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x0A],  # [70] OID_secp256k1
    'secp384r1(P-384)': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x22],  # [77] OID_secp384r1
    'secp521r1(P-521)': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x23],  # [84] OID_secp521r1

    'X9_62_prime192v1(P-192)': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x01],
    # [91] OID_X9_62_prime192v1
    'X9_62_prime192v2': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x02],
    # [101] OID_X9_62_prime192v2
    'X9_62_prime192v3': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x03],
    # [111] OID_X9_62_prime192v3
    'X9_62_prime239v1': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x04],
    # [121] OID_X9_62_prime239v1
    'X9_62_prime239v2': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x05],
    # [131] OID_X9_62_prime239v2
    'X9_62_prime239v3': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x06],
    # [141] OID_X9_62_prime239v3
    'X9_62_prime256v1(P-256)': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07],
    # [151] OID_X9_62_prime256v1

    'sect113r1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x04],  # [161] OID_sect113r1
    'sect113r2': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x05],  # [168] OID_sect113r2
    'sect131r1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x16],  # [175] OID_sect131r1
    'sect131r2': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x17],  # [182] OID_sect131r2
    'sect163k1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x01],  # [189] OID_sect163k1
    'sect163r1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x02],  # [196] OID_sect163r1
    'sect163r2': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x0F],  # [203] OID_sect163r2
    'sect193r1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x18],  # [210] OID_sect193r1
    'sect193r2': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x19],  # [217] OID_sect193r2
    'sect233k1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x1A],  # [224] OID_sect233k1
    'sect233r1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x1B],  # [231] OID_sect233r1
    'sect239k1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x03],  # [238] OID_sect239k1
    'sect283k1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x10],  # [245] OID_sect283k1
    'sect283r1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x11],  # [252] OID_sect283r1
    'sect409k1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x24],  # [259] OID_sect409k1
    'sect409r1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x25],  # [266] OID_sect409r1
    'sect571k1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x26],  # [273] OID_sect571k1
    'sect571r1': [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x27],  # [280] OID_sect571r1

    'X9_62_c2pnb163v1': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x01],
    # [287] OID_X9_62_c2pnb163v1
    'X9_62_c2pnb163v2': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x02],
    # [297] OID_X9_62_c2pnb163v2
    'X9_62_c2pnb163v3': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x03],
    # [307] OID_X9_62_c2pnb163v3
    'X9_62_c2pnb176v1': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x04],
    # [317] OID_X9_62_c2pnb176v1
    'X9_62_c2tnb191v1': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x05],
    # [327] OID_X9_62_c2tnb191v1
    'X9_62_c2tnb191v2': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x06],
    # [337] OID_X9_62_c2tnb191v2
    'X9_62_c2tnb191v3': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x07],
    # [347] OID_X9_62_c2tnb191v3
    'X9_62_c2pnb208w1': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0A],
    # [357] OID_X9_62_c2pnb208w1
    'X9_62_c2tnb239v1': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0B],
    # [367] OID_X9_62_c2tnb239v1
    'X9_62_c2tnb239v2': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0C],
    # [377] OID_X9_62_c2tnb239v2
    'X9_62_c2tnb239v3': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0D],
    # [387] OID_X9_62_c2tnb239v3
    'X9_62_c2pnb272w1': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x10],
    # [397] OID_X9_62_c2pnb272w1
    'X9_62_c2pnb304w1': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x11],
    # [407] OID_X9_62_c2pnb304w1
    'X9_62_c2tnb359v1': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x12],
    # [417] OID_X9_62_c2tnb359v1
    'X9_62_c2pnb368w1': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x13],
    # [427] OID_X9_62_c2pnb368w1
    'X9_62_c2tnb431r1': [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x14],
    # [437] OID_X9_62_c2tnb431r1

    'brainpoolP160r1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x01],
    # [447] brainpoolP160r1
    'brainpoolP160t1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x02],
    # [458] brainpoolP160t1
    'brainpoolP192r1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x03],
    # [469] brainpoolP192r1
    'brainpoolP192t1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x04],
    # [480] brainpoolP192t1
    'brainpoolP224r1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x05],
    # [491] brainpoolP224r1
    'brainpoolP224t1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x06],
    # [502] brainpoolP224t1
    'brainpoolP256r1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x07],
    # [513] brainpoolP256r1
    'brainpoolP256t1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x08],
    # [524] brainpoolP256t1
    'brainpoolP320r1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x09],
    # [535] brainpoolP320r1
    'brainpoolP320t1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0a],
    # [546] brainpoolP320t1
    'brainpoolP384r1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0b],
    # [557] brainpoolP384r1
    'brainpoolP384t1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0c],
    # [568] brainpoolP384t1
    'brainpoolP512r1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0d],
    # [579] brainpoolP512r1
    'brainpoolP512t1': [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0e],
    # [590] brainpoolP512t1
    'microsoftPlayReadP160': [0x30, 0x81, 0x95, 0x02, 0x01, 0x01, 0x30, 0x20,
                              0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x01,
                              0x01, 0x02, 0x15, 0x00, 0x89, 0xab, 0xcd, 0xef,
                              0x01, 0x23, 0x45, 0x67, 0x27, 0x18, 0x28, 0x18,
                              0x31, 0x41, 0x59, 0x26, 0x14, 0x14, 0x24, 0xf7,
                              0x30, 0x2c, 0x04, 0x14, 0x37, 0xa5, 0xab, 0xcc,
                              0xd2, 0x77, 0xbc, 0xe8, 0x76, 0x32, 0xff, 0x3d,
                              0x47, 0x80, 0xc0, 0x09, 0xeb, 0xe4, 0x14, 0x97,
                              0x04, 0x14, 0x0d, 0xd8, 0xda, 0xbf, 0x72, 0x5e,
                              0x2f, 0x32, 0x28, 0xe8, 0x5f, 0x1a, 0xd7, 0x8f,
                              0xde, 0xdf, 0x93, 0x28, 0x23, 0x9e, 0x04, 0x29,
                              0x04, 0x87, 0x23, 0x94, 0x7f, 0xd6, 0xa3, 0xa1,
                              0xe5, 0x35, 0x10, 0xc0, 0x7d, 0xba, 0x38, 0xda,
                              0xf0, 0x10, 0x9f, 0xa1, 0x20, 0x44, 0x57, 0x44,
                              0x91, 0x10, 0x75, 0x52, 0x2d, 0x8c, 0x3c, 0x58,
                              0x56, 0xd4, 0xed, 0x7a, 0xcd, 0xa3, 0x79, 0x93,
                              0x6f, 0x02, 0x15, 0x00, 0x89, 0xab, 0xcd, 0xef,
                              0x01, 0x23, 0x45, 0x67, 0x27, 0x16, 0xb2, 0x6e,
                              0xec, 0x14, 0x90, 0x44, 0x28, 0xc2, 0xa6, 0x75]
}

CKM_ECDSA_KEY_PAIR_GEN_PUBTEMP = {CKA_TOKEN: True,
                                  CKA_PRIVATE: True,
                                  CKA_ENCRYPT: True,
                                  CKA_VERIFY: True,
                                  CKA_DERIVE: True,
                                  CKA_ECDSA_PARAMS: curve_list['secp112r1'],
                                  CKA_LABEL: b"ECDSA Public Key"}
CKM_ECDSA_KEY_PAIR_GEN_PRIVTEMP = {CKA_TOKEN: True,
                                   CKA_PRIVATE: True,
                                   CKA_SENSITIVE: True,
                                   CKA_DECRYPT: True,
                                   CKA_SIGN: True,
                                   CKA_DERIVE: True,
                                   CKA_EXTRACTABLE: True,
                                   CKA_LABEL: b"ECDSA Private Key"}

CKM_AES_KEY_GEN_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                        CKA_KEY_TYPE: CKK_AES,
                        CKA_TOKEN: True,
                        CKA_SENSITIVE: True,
                        CKA_PRIVATE: True,
                        CKA_ENCRYPT: True,
                        CKA_DECRYPT: True,
                        CKA_SIGN: True,
                        CKA_VERIFY: True,
                        CKA_WRAP: True,
                        CKA_UNWRAP: True,
                        CKA_DERIVE: True,
                        CKA_VALUE_LEN: 24,  # 16, 24, 32
                        CKA_EXTRACTABLE: True,
                        CKA_LABEL: b"AES Key"}

CKM_SEED_KEY_GEN_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                         CKA_KEY_TYPE: CKK_SEED,
                         CKA_TOKEN: True,
                         CKA_SENSITIVE: True,
                         CKA_PRIVATE: True,
                         CKA_ENCRYPT: True,
                         CKA_DECRYPT: True,
                         CKA_SIGN: True,
                         CKA_VERIFY: True,
                         CKA_WRAP: True,
                         CKA_UNWRAP: True,
                         CKA_DERIVE: True,
                         CKA_VALUE_LEN: 16,
                         CKA_EXTRACTABLE: True,
                         CKA_LABEL: b"SEED Key"}

kcdsa_prime_1024_160 = [0xdc, 0x02, 0xf3, 0xe0, 0x51, 0x4e, 0xf4, 0x72, 0x36, 0x51, 0x09, 0x72,
                        0x5c, 0x12, 0x00, 0x50,
                        0x69, 0x7d, 0xfc, 0x1d, 0xcb, 0xb4, 0x1f, 0xbc, 0x49, 0x63, 0xc4, 0x15,
                        0x45, 0x97, 0xb7, 0xae,
                        0x8d, 0x4a, 0x35, 0x3c, 0xe2, 0xfb, 0x1f, 0xbf, 0x77, 0x7b, 0x89, 0xe5,
                        0x56, 0xc5, 0x15, 0x6b,
                        0x1a, 0x4a, 0x82, 0xcc, 0xe2, 0xb8, 0xec, 0x4d, 0x61, 0x86, 0xd4, 0xa3,
                        0xf6, 0xc5, 0x65, 0xae,
                        0x8c, 0xf6, 0x04, 0x62, 0x1d, 0x63, 0xec, 0x9f, 0x1e, 0x91, 0x31, 0x39,
                        0x1d, 0xc0, 0x55, 0xbc,
                        0xac, 0xc5, 0x1a, 0xc8, 0x5c, 0x02, 0x93, 0xd7, 0xca, 0x74, 0x4f, 0xe9,
                        0xa2, 0x04, 0x5c, 0x3c,
                        0xc1, 0xb6, 0xe1, 0x4d, 0xcd, 0xfa, 0xbb, 0x7d, 0xf8, 0xa7, 0xb1, 0x94,
                        0xd5, 0x08, 0xe1, 0x99,
                        0xc1, 0x81, 0x62, 0x93, 0xd6, 0x8c, 0x7a, 0x5c, 0x0f, 0x8a, 0xc7, 0x14,
                        0xb5, 0xd6, 0xf5, 0xa3]
kcdsa_sub_prime_1024_160 = [0xc8, 0xf6, 0x2e, 0x10, 0xf0, 0xa4, 0xe5, 0x43, 0x1b, 0x8e, 0x1b, 0x0f,
                            0x53, 0xf6, 0x27,
                            0xec,
                            0x6a, 0xd3, 0xa6, 0xa5]
kcdsa_base_1024_160 = [0x9b, 0x8b, 0x4b, 0x16, 0x53, 0x65, 0x03, 0x18, 0x47, 0x19, 0xac, 0x4d, 0x13,
                       0x2d, 0x14, 0x57,
                       0x2d, 0xca, 0x56, 0x45, 0x3f, 0x05, 0x68, 0x68, 0x3b, 0x04, 0x17, 0x27, 0x6f,
                       0x93, 0x88, 0xdc,
                       0x0a, 0x79, 0xe7, 0x76, 0x45, 0x4a, 0x97, 0x7a, 0x02, 0xc0, 0x1a, 0xc7, 0x7a,
                       0x07, 0x1f, 0x6b,
                       0x99, 0x81, 0x67, 0xb8, 0xb9, 0x89, 0xce, 0xfd, 0x88, 0x7a, 0x26, 0x71, 0xf9,
                       0x44, 0x12, 0xcc,
                       0x94, 0xac, 0x62, 0xe7, 0x61, 0xc9, 0x5a, 0xdb, 0x38, 0xf7, 0x8b, 0x76, 0x73,
                       0xcc, 0x09, 0x0a,
                       0x62, 0xcf, 0xab, 0x4b, 0x03, 0x29, 0x0d, 0x34, 0x92, 0xb9, 0x09, 0x83, 0x68,
                       0x9b, 0x30, 0x82,
                       0x1f, 0xcf, 0xb0, 0xdb, 0x83, 0x71, 0x24, 0x2c, 0x73, 0xf3, 0xa6, 0x4f, 0x56,
                       0xb2, 0x13, 0xfd,
                       0xdb, 0xbc, 0xcf, 0x77, 0x5d, 0x01, 0x1f, 0xb8, 0x35, 0x85, 0x4f, 0x88, 0xb0,
                       0x58, 0x92, 0x07]
kcdsa_prime_2048_256 = [0xec, 0xfe, 0xa3, 0x3f, 0xa2, 0x27, 0xc3, 0xb1, 0xa7, 0xdf, 0xd7, 0xf1,
                        0xbb, 0x48, 0x7c, 0xd4,
                        0x26, 0xab, 0x0a, 0x2b, 0x2b, 0x3a, 0xf1, 0x8f, 0xef, 0x9d, 0x61, 0xcd,
                        0x4f, 0x7b, 0xbb, 0x8d,
                        0x7d, 0x8d, 0x4c, 0x84, 0x13, 0x7a, 0xaf, 0xe5, 0xb5, 0xba, 0x9d, 0xe4,
                        0xd2, 0xb5, 0x8b, 0x00,
                        0x39, 0xbc, 0x66, 0x9c, 0x7c, 0x3d, 0x98, 0x7e, 0x0a, 0x74, 0x1b, 0x06,
                        0xcf, 0x97, 0xb5, 0x3e,
                        0xcb, 0x1e, 0x1d, 0x22, 0x51, 0xe6, 0xd4, 0xe2, 0x72, 0xa7, 0x72, 0xd3,
                        0x4c, 0x3f, 0xfc, 0xd4,
                        0xd5, 0x7c, 0x3f, 0x44, 0xa2, 0x1b, 0xfc, 0x97, 0xad, 0x34, 0xb2, 0x8f,
                        0xd3, 0xcf, 0x77, 0x89,
                        0x7a, 0xce, 0x64, 0xc6, 0x92, 0xaa, 0x69, 0x13, 0xed, 0x22, 0xa2, 0x3b,
                        0x45, 0x19, 0x98, 0x88,
                        0x29, 0x05, 0x7c, 0xd2, 0x33, 0xaf, 0xa1, 0xf7, 0xab, 0x66, 0x40, 0xca,
                        0x05, 0x7e, 0x16, 0x99,
                        0x7a, 0x92, 0xaa, 0x5e, 0x07, 0xc0, 0xc7, 0x3c, 0x82, 0xb4, 0x96, 0x02,
                        0x23, 0x66, 0x99, 0x97,
                        0xa3, 0x40, 0xf1, 0x36, 0x9b, 0x33, 0xc7, 0xbe, 0xe9, 0xac, 0xce, 0x85,
                        0xf8, 0xbd, 0x6a, 0x26,
                        0x0f, 0x79, 0xe7, 0x9e, 0xee, 0xee, 0xd6, 0x82, 0xc8, 0x7d, 0x4b, 0xe7,
                        0x4c, 0x2f, 0x44, 0x9a,
                        0x1b, 0x68, 0x3f, 0xba, 0xe4, 0xfd, 0x19, 0xca, 0xd0, 0x97, 0xd3, 0x71,
                        0x12, 0x8c, 0x86, 0xbe,
                        0x93, 0x84, 0xb7, 0x35, 0x2a, 0xd1, 0x3a, 0x9a, 0x27, 0x8f, 0x36, 0x4f,
                        0x08, 0x9e, 0x38, 0xdf,
                        0x25, 0xe8, 0x4a, 0x70, 0x4d, 0xe4, 0xfb, 0x16, 0x40, 0xa5, 0x19, 0xfc,
                        0x62, 0x91, 0x76, 0x1d,
                        0xab, 0x11, 0xe2, 0xf7, 0x80, 0xe7, 0x1a, 0x62, 0x2e, 0x9a, 0xbf, 0x85,
                        0xfe, 0x19, 0x4a, 0x45,
                        0x79, 0x3b, 0xfa, 0xb3, 0xa1, 0xe9, 0x8a, 0x1d, 0xfd, 0x57, 0xb5, 0xc7,
                        0x09, 0x79, 0xb8, 0x1b]
kcdsa_sub_prime_2048_256 = [0xe5, 0x7d, 0x48, 0xd4, 0x44, 0x3d, 0x60, 0xb2, 0x6f, 0x48, 0x82, 0x3d,
                            0x1d, 0xea, 0xce,
                            0xf2,
                            0xb4, 0x4a, 0x6c, 0x47, 0x5b, 0x12, 0x43, 0x47, 0xb4, 0x81, 0x47, 0xf8,
                            0xa2, 0xfd, 0x33,
                            0xd3]
kcdsa_base_2048_256 = [0x68, 0x90, 0xea, 0x6f, 0x5a, 0x56, 0x4f, 0xd2, 0xa1, 0xfe, 0x07, 0xd7, 0xbc,
                       0xa5, 0xab, 0x80,
                       0xf9, 0x5a, 0x5f, 0x47, 0xe9, 0x7f, 0xfc, 0x9a, 0xea, 0x67, 0x13, 0xf8, 0xad,
                       0x36, 0xe1, 0xfc,
                       0x02, 0x42, 0x17, 0xcd, 0xf9, 0xbe, 0x5c, 0xe9, 0xa6, 0xcd, 0xdb, 0x6b, 0x5c,
                       0x1e, 0x7e, 0x22,
                       0x0e, 0xd5, 0x7f, 0x2b, 0x0c, 0x9b, 0xf7, 0xe2, 0xd5, 0x23, 0xc1, 0x45, 0x0b,
                       0x46, 0x7e, 0x64,
                       0x80, 0xc9, 0x6f, 0x9b, 0x20, 0x76, 0xd0, 0x3f, 0xae, 0x8c, 0x4d, 0x99, 0x3e,
                       0x9c, 0xe6, 0x6b,
                       0xc9, 0xb8, 0x39, 0xa5, 0x58, 0x15, 0x6c, 0x69, 0x79, 0x2a, 0xfa, 0x34, 0x76,
                       0x17, 0x64, 0x6a,
                       0x2a, 0x29, 0x4d, 0xce, 0xe4, 0x07, 0x78, 0xa3, 0xcb, 0x93, 0x7a, 0x78, 0x2a,
                       0x51, 0x91, 0xbd,
                       0x42, 0x97, 0x3b, 0x07, 0x31, 0xca, 0x4f, 0x62, 0x2a, 0x63, 0xe0, 0x69, 0x45,
                       0x31, 0xc8, 0x75,
                       0x3e, 0x3a, 0xb0, 0xe8, 0x8d, 0xdc, 0x86, 0x1c, 0x75, 0x1c, 0x25, 0x2e, 0x74,
                       0x18, 0x89, 0xb3,
                       0x3e, 0x39, 0x0e, 0x1c, 0xa5, 0xc4, 0x75, 0x1f, 0x31, 0x1e, 0x19, 0x61, 0x5b,
                       0xbe, 0xa7, 0x18,
                       0x9b, 0x04, 0xf2, 0x29, 0xc8, 0xe7, 0x40, 0x84, 0x39, 0xd2, 0x28, 0xa5, 0x30,
                       0x5b, 0x22, 0x78,
                       0x33, 0xab, 0xa8, 0x30, 0x98, 0x1c, 0x33, 0xec, 0xfe, 0xe7, 0x90, 0x8c, 0x6d,
                       0x39, 0x54, 0x42,
                       0x9b, 0xef, 0x30, 0xde, 0xa1, 0x15, 0xfe, 0xe6, 0xd0, 0x3f, 0x13, 0xf0, 0xa0,
                       0x2e, 0xb2, 0x19,
                       0xe4, 0xb9, 0xb0, 0xba, 0xac, 0x32, 0xc2, 0x24, 0x0b, 0x2a, 0x47, 0x17, 0xda,
                       0x7c, 0x11, 0x6c,
                       0xe2, 0x09, 0x24, 0x71, 0x30, 0xac, 0x14, 0x0c, 0xd3, 0xab, 0xdc, 0xe7, 0x78,
                       0xa4, 0x27, 0x27,
                       0xf3, 0x2c, 0xfa, 0xfd, 0xae, 0x9e, 0x51, 0x68, 0x47, 0xb2, 0x6c, 0xe4, 0xcb,
                       0xb7, 0x66, 0x03]
CKM_KCDSA_KEY_PAIR_GEN_PUBTEMP_1024_160 = {CKA_TOKEN: True,  # 1024_160 or 2048_256
                                           CKA_PRIVATE: True,
                                           CKA_ENCRYPT: True,
                                           CKA_VERIFY: True,
                                           CKA_WRAP: True,
                                           CKA_PRIME: kcdsa_prime_1024_160,
                                           CKA_SUBPRIME: kcdsa_sub_prime_1024_160,
                                           CKA_BASE: kcdsa_base_1024_160,
                                           CKA_LABEL: b"KCDSA Public Key"}
CKM_KCDSA_KEY_PAIR_GEN_PUBTEMP_2048_256 = {CKA_TOKEN: True,  # 1024_160 or 2048_256
                                           CKA_PRIVATE: True,
                                           CKA_ENCRYPT: True,
                                           CKA_VERIFY: True,
                                           CKA_WRAP: True,
                                           CKA_PRIME: kcdsa_prime_2048_256,
                                           CKA_SUBPRIME: kcdsa_sub_prime_2048_256,
                                           CKA_BASE: kcdsa_base_2048_256,
                                           CKA_LABEL: b"KCDSA Public Key"}
CKM_KCDSA_KEY_PAIR_GEN_PRIVTEMP = {CKA_TOKEN: True,
                                   CKA_PRIVATE: True,
                                   CKA_SENSITIVE: True,
                                   CKA_DECRYPT: True,
                                   CKA_SIGN: True,
                                   CKA_UNWRAP: True,
                                   CKA_EXTRACTABLE: True,
                                   CKA_LABEL: b"KCDSA Private Key"}

CKM_DSA_PARAMETER_GEN_TEMP = {CKA_TOKEN: True,
                              CKA_PRIVATE: True,
                              CKA_SENSITIVE: True,
                              CKA_PRIME_BITS: 1024,
                              # 0-4096, ONLY SUPPORTS: 1024-160, 2048-224, 2048-256, 3072-256
                              CKA_SUBPRIME_BITS: 160,  # 0-512
                              CKA_LABEL: b"DSA Parameter Key"}

CKM_KCDSA_PARAMETER_GEN_TEMP = {CKA_TOKEN: True,  # primelength 0-4096, subprimelength 0-512
                                CKA_PRIVATE: True,
                                CKA_SENSITIVE: True,
                                CKA_PRIME_BITS: 2048,  # 0-4096
                                CKA_SUBPRIME_BITS: 256,  # 0-512
                                CKA_LABEL: b"KCDSA Parameter Key"}

CKM_RSA_X9_31_KEY_PAIR_GEN_PUBTEMP = {CKA_TOKEN: True,
                                      CKA_PRIVATE: True,
                                      CKA_MODIFIABLE: True,
                                      CKA_ENCRYPT: True,
                                      CKA_VERIFY: True,
                                      CKA_WRAP: True,
                                      CKA_MODULUS_BITS: 1024,  # long 1-MAX_RSA_KEY_NBITS
                                      CKA_PUBLIC_EXPONENT: 3,  # byte
                                      CKA_LABEL: b"RSA Public Key"}
CKM_RSA_X9_31_KEY_PAIR_GEN_PRIVTEMP = {CKA_TOKEN: True,
                                       CKA_PRIVATE: True,
                                       CKA_SENSITIVE: True,
                                       CKA_MODIFIABLE: True,
                                       CKA_EXTRACTABLE: True,
                                       CKA_DECRYPT: True,
                                       CKA_SIGN: True,
                                       CKA_UNWRAP: True,
                                       CKA_LABEL: b"RSA Private Key"}

dhX9_42Prime = [0xE0, 0x01, 0xE8, 0x96, 0x7D, 0xB4, 0x93, 0x53, 0xE1, 0x6F, 0x8E, 0x89, 0x22, 0x0C,
                0xCE, 0xFC,
                0x5C, 0x5F, 0x12, 0xE3, 0xDF, 0xF8, 0xF1, 0xD1, 0x49, 0x90, 0x12, 0xE6, 0xEF, 0x53,
                0xE3, 0x1F,
                0x02, 0xEA, 0xCC, 0x5A, 0xDD, 0xF3, 0x37, 0x89, 0x35, 0xC9, 0x5B, 0x21, 0xEA, 0x3D,
                0x6F, 0x1C,
                0xD7, 0xCE, 0x63, 0x75, 0x52, 0xEC, 0x38, 0x6C, 0x0E, 0x34, 0xF7, 0x36, 0xAD, 0x95,
                0x17, 0xEF,
                0xFE, 0x5E, 0x4D, 0xA7, 0xA8, 0x6A, 0xF9, 0x0E, 0x2C, 0x22, 0x8F, 0xE4, 0xB9, 0xE6,
                0xD8, 0xF8,
                0xF0, 0x2D, 0x20, 0xAF, 0x78, 0xAB, 0xB6, 0x92, 0xAC, 0xBC, 0x4B, 0x23, 0xFA, 0xF2,
                0xC5, 0xCC,
                0xD4, 0x9A, 0x0C, 0x9A, 0x8B, 0xCD, 0x91, 0xAC, 0x0C, 0x55, 0x92, 0x01, 0xE6, 0xC2,
                0xFD, 0x1F,
                0x47, 0xC2, 0xCB, 0x2A, 0x88, 0xA8, 0x3C, 0x21, 0x0F, 0xC0, 0x54, 0xDB, 0x29, 0x2D,
                0xBC, 0x45]
dhX9_42Base = [0x86, 0x47, 0x17, 0xA3, 0x9E, 0x6A, 0xEA, 0x7E, 0x87, 0xC4, 0x32, 0xEE, 0x77, 0x43,
               0x15, 0x16,
               0x96, 0x70, 0xC4, 0x99]
dhX9_42SubPrime = [0x1C, 0xE0, 0xF6, 0x69, 0x26, 0x46, 0x11, 0x97, 0xEF, 0x45, 0xC4, 0x65, 0x8B,
                   0x83, 0xB8, 0xAB,
                   0x04, 0xA9, 0x22, 0x42, 0x68, 0x50, 0x4D, 0x05, 0xB8, 0x19, 0x83, 0x99, 0xDD,
                   0x71, 0x37, 0x18,
                   0xCC, 0x1F, 0x24, 0x5D, 0x47, 0x6C, 0xCF, 0x61, 0xA2, 0xF9, 0x34, 0x93, 0xF4,
                   0x1F, 0x55, 0x52,
                   0x48, 0x65, 0x57, 0xE6, 0xD4, 0xCA, 0xA8, 0x00, 0xD6, 0xD0, 0xDB, 0x3C, 0xBF,
                   0x5A, 0x95, 0x4B,
                   0x20, 0x8A, 0x4E, 0xBA, 0xF7, 0xE6, 0x49, 0xFB, 0x61, 0x24, 0xD8, 0xA2, 0x1E,
                   0xF2, 0xF2, 0x2B,
                   0xAA, 0xAE, 0x29, 0x21, 0x10, 0x19, 0x10, 0x51, 0x46, 0x47, 0x31, 0xB6, 0xCC,
                   0x3C, 0x93, 0xDC,
                   0x6E, 0x80, 0xBA, 0x16, 0x0B, 0x66, 0x64, 0xA5, 0x6C, 0xFA, 0x96, 0xEA, 0xF1,
                   0xB2, 0x83, 0x39,
                   0x8E, 0xB4, 0x61, 0x64, 0xE5, 0xE9, 0x43, 0x84, 0xEE, 0x02, 0x24, 0xE7, 0x1F,
                   0x03, 0x7C, 0x23]
CKM_X9_42_DH_KEY_PAIR_GEN_PUBTEMP = {CKA_TOKEN: True,
                                     CKA_PRIVATE: True,
                                     CKA_SENSITIVE: True,
                                     CKA_DERIVE: True,
                                     CKA_PRIME: dhX9_42Prime,
                                     CKA_BASE: dhX9_42Base,
                                     CKA_SUBPRIME: dhX9_42SubPrime,
                                     CKA_LABEL: b"DH X9.42 Public Key"}
CKM_X9_42_DH_KEY_PAIR_GEN_PRIVTEMP = {CKA_TOKEN: True,
                                      CKA_PRIVATE: True,
                                      CKA_SENSITIVE: True,
                                      CKA_DERIVE: True,
                                      CKA_EXTRACTABLE: True,
                                      CKA_LABEL: b"DH X9.42 Private Key"}

CKM_ARIA_KEY_GEN_TEMP = {CKA_CLASS: CKO_SECRET_KEY,
                         CKA_KEY_TYPE: CKK_ARIA,
                         CKA_TOKEN: True,
                         CKA_SENSITIVE: True,
                         CKA_PRIVATE: True,
                         CKA_ENCRYPT: True,
                         CKA_DECRYPT: True,
                         CKA_SIGN: True,
                         CKA_VERIFY: True,
                         CKA_WRAP: True,
                         CKA_UNWRAP: True,
                         CKA_DERIVE: True,
                         CKA_VALUE_LEN: 24,  # 16, 24, 32
                         CKA_EXTRACTABLE: True,
                         CKA_LABEL: b"ARIA Key"}

CKM_DH_PKCS_PARAMETER_GEN_TEMP = {CKA_TOKEN: True,
                                  CKA_PRIVATE: True,
                                  CKA_SENSITIVE: True,
                                  CKA_PRIME_BITS: 512,
                                  # between 512 and 2048 in 256bit increments (&0xff)
                                  CKA_LABEL: b"SH PKCS Parameter Key"}

'''
The simple certificate object taken from CKDemo when
you select the Create Object option and choose certificate
'''
CERTIFICATE_TEMPLATE = {CKA_CLASS: CKO_CERTIFICATE,
                        CKA_CERTIFICATE_TYPE: CKC_X_509,
                        CKA_TOKEN: True,
                        CKA_LABEL: b"Created certificate object",
                        CKA_SUBJECT: b"",
                        CKA_VALUE: [0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
                                    0x01, 0x01, 0x01, 0x01,
                                    0x01, 0x01]}

'''
The simple data object template taken from CKDemo when you select
the Create Object option and choose data
'''
DATA_TEMPLATE = {CKA_CLASS: CKO_DATA,
                 CKA_TOKEN: True,
                 CKA_LABEL: b"Created data object",
                 CKA_VALUE: [0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
                             0x01, 0x01, 0x01,
                             0x01]}

KEY_GENERATOR_TEMPLATES = {CKM_DES_KEY_GEN: CKM_DES_KEY_GEN_TEMP,
                           CKM_DES2_KEY_GEN: CKM_DES2_KEY_GEN_TEMP,
                           CKM_DES3_KEY_GEN: CKM_DES3_KEY_GEN_TEMP,
                           CKM_CAST3_KEY_GEN: CKM_CAST3_KEY_GEN_TEMP,
                           CKM_GENERIC_SECRET_KEY_GEN: CKM_GENERIC_SECRET_KEY_GEN_TEMP,
                           CKM_CAST5_KEY_GEN: CKM_CAST5_KEY_GEN_TEMP,
                           CKM_RC2_KEY_GEN: CKM_RC2_KEY_GEN_TEMP,
                           CKM_RC4_KEY_GEN: CKM_RC4_KEY_GEN_TEMP,
                           CKM_RC5_KEY_GEN: CKM_RC5_KEY_GEN_TEMP,
                           CKM_AES_KEY_GEN: CKM_AES_KEY_GEN_TEMP,
                           CKM_SEED_KEY_GEN: CKM_SEED_KEY_GEN_TEMP,
                           CKM_ARIA_KEY_GEN: CKM_ARIA_KEY_GEN_TEMP,
                           CKM_DH_PKCS_PARAMETER_GEN: CKM_DH_PKCS_PARAMETER_GEN_TEMP}

KEY_PAIR_GENERATOR_TEMPLATES = {  # Note lacks multiple sizes of the same kinds of keys
    CKM_RSA_PKCS_KEY_PAIR_GEN: (
        CKM_RSA_PKCS_KEY_PAIR_GEN_PUBTEMP, CKM_RSA_PKCS_KEY_PAIR_GEN_PRIVTEMP),
    CKM_RSA_FIPS_186_3_PRIME_KEY_PAIR_GEN: (
        CKM_RSA_PKCS_KEY_PAIR_GEN_PUBTEMP, CKM_RSA_PKCS_KEY_PAIR_GEN_PRIVTEMP),
    CKM_RSA_FIPS_186_3_AUX_PRIME_KEY_PAIR_GEN: (
        CKM_RSA_PKCS_KEY_PAIR_GEN_PUBTEMP, CKM_RSA_PKCS_KEY_PAIR_GEN_PRIVTEMP),
    CKM_DSA_KEY_PAIR_GEN: (
        CKM_DSA_KEY_PAIR_GEN_PUBTEMP_3072_256, CKM_DSA_KEY_PAIR_GEN_PRIVTEMP),
    CKM_DH_PKCS_KEY_PAIR_GEN: (
        CKM_DH_PKCS_KEY_PAIR_GEN_PUBTEMP, CKM_DH_PKCS_KEY_PAIR_GEN_PRIVTEMP),
    CKM_ECDSA_KEY_PAIR_GEN: (
        CKM_ECDSA_KEY_PAIR_GEN_PUBTEMP, CKM_ECDSA_KEY_PAIR_GEN_PRIVTEMP),
    CKM_KCDSA_KEY_PAIR_GEN: (
        CKM_KCDSA_KEY_PAIR_GEN_PUBTEMP_2048_256, CKM_KCDSA_KEY_PAIR_GEN_PRIVTEMP),
    CKM_RSA_X9_31_KEY_PAIR_GEN: (
        CKM_RSA_X9_31_KEY_PAIR_GEN_PUBTEMP, CKM_RSA_X9_31_KEY_PAIR_GEN_PRIVTEMP)}

'''
This list is not complete
'''
MECHANISM_LOOKUP = {CKM_RSA_PKCS_KEY_PAIR_GEN: b"CKM_RSA_PKCS_KEY_PAIR_GEN",
                    CKM_RSA_PKCS: b"CKM_RSA_PKCS",
                    CKM_SHA1_RSA_PKCS: b"CKM_SHA1_RSA_PKCS",
                    CKM_SHA224_RSA_PKCS: b"CKM_SHA224_RSA_PKCS",
                    CKM_SHA256_RSA_PKCS: b"CKM_SHA256_RSA_PKCS",
                    CKM_SHA384_RSA_PKCS: b"CKM_SHA384_RSA_PKCS",
                    CKM_SHA512_RSA_PKCS: b"CKM_SHA512_RSA_PKCS",
                    CKM_RSA_PKCS_PSS: b"CKM_RSA_PKCS_PSS",
                    CKM_SHA1_RSA_PKCS_PSS: b"CKM_SHA1_RSA_PKCS_PSS",
                    CKM_SHA224_RSA_PKCS_PSS: b"CKM_SHA224_RSA_PKCS_PSS",
                    CKM_SHA256_RSA_PKCS_PSS: b"CKM_SHA256_RSA_PKCS_PSS",
                    CKM_SHA384_RSA_PKCS_PSS: b"CKM_SHA384_RSA_PKCS_PSS",
                    CKM_SHA512_RSA_PKCS_PSS: b"CKM_SHA512_RSA_PKCS_PSS",
                    CKM_RSA_X9_31_KEY_PAIR_GEN: b"CKM_RSA_X9_31_KEY_PAIR_GEN",
                    CKM_RSA_X9_31: b"CKM_RSA_X9_31",
                    CKM_SHA1_RSA_X9_31: b"CKM_SHA1_RSA_X9_31",
                    CKM_SHA224_RSA_X9_31: b"CKM_SHA224_RSA_X9_31",
                    CKM_SHA256_RSA_X9_31: b"CKM_SHA256_RSA_X9_31",
                    CKM_SHA384_RSA_X9_31: b"CKM_SHA384_RSA_X9_31",
                    CKM_SHA512_RSA_X9_31: b"CKM_SHA512_RSA_X9_31",
                    CKM_RSA_PKCS_OAEP: b"CKM_RSA_PKCS_OAEP",
                    CKM_DSA_KEY_PAIR_GEN: b"CKM_DSA_KEY_PAIR_GEN",
                    CKM_DSA: b"CKM_DSA",
                    CKM_DSA_SHA1: b"CKM_DSA_SHA1",
                    CKM_DSA_SHA224: b"CKM_DSA_SHA224",
                    CKM_DSA_SHA256: b"CKM_DSA_SHA256",
                    CKM_DSA_PARAMETER_GEN: b"CKM_DSA_PARAMETER_GEN",
                    CKM_ECDSA_KEY_PAIR_GEN: b"CKM_ECDSA_KEY_PAIR_GEN",
                    CKM_ECDSA: b"CKM_ECDSA",
                    CKM_ECDSA_SHA1: b"CKM_ECDSA_SHA1",
                    CKM_ECDSA_SHA224: b"CKM_ECDSA_SHA224",
                    CKM_ECDSA_SHA256: b"CKM_ECDSA_SHA256",
                    CKM_ECDSA_SHA384: b"CKM_ECDSA_SHA384",
                    CKM_ECDSA_SHA512: b"CKM_ECDSA_SHA512",
                    CKM_ECDH1_DERIVE: b"CKM_ECDH1_DERIVE",
                    CKM_ECDH1_COFACTOR_DERIVE: b"CKM_ECDH1_DERIVE",
                    CKM_SHA_1_HMAC: b"CKM_SHA_1_HMAC",
                    CKM_SHA224_HMAC: b"CKM_SHA224_HMAC",
                    CKM_SHA256_HMAC: b"CKM_SHA256_HMAC",
                    CKM_SHA384_HMAC: b"CKM_SHA384_HMAC",
                    CKM_SHA512_HMAC: b"CKM_SHA512_HMAC",
                    CKM_GENERIC_SECRET_KEY_GEN: b"CKM_GENERIC_SECRET_KEY_GEN",
                    CKM_RSA_FIPS_186_3_PRIME_KEY_PAIR_GEN: b"CKM_RSA_FIPS_186_3_PRIME_KEY_PAIR_GEN",
                    CKM_RSA_FIPS_186_3_AUX_PRIME_KEY_PAIR_GEN:
                        "CKM_RSA_FIPS_186_3_AUX_PRIME_KEY_PAIR_GEN"}

MECHANISM_LOOKUP_EXT = {
    CKM_RSA_PKCS_KEY_PAIR_GEN: ('CKM_RSA_PKCS_KEY_PAIR_GEN',),
    CKM_RSA_PKCS: ('CKM_RSA_PKCS',),
    CKM_RSA_9796: ('CKM_RSA_9796',),
    CKM_RSA_X_509: ('CKM_RSA_X_509',),
    CKM_MD2_RSA_PKCS: ('CKM_MD2_RSA_PKCS',),
    CKM_MD5_RSA_PKCS: ('CKM_MD5_RSA_PKCS',),
    CKM_SHA1_RSA_PKCS: ('CKM_SHA1_RSA_PKCS',),
    CKM_RIPEMD128_RSA_PKCS: ('CKM_RIPEMD128_RSA_PKCS',),
    CKM_RIPEMD160_RSA_PKCS: ('CKM_RIPEMD160_RSA_PKCS',),
    CKM_RSA_PKCS_OAEP: ('CKM_RSA_PKCS_OAEP',),
    CKM_RSA_X9_31_KEY_PAIR_GEN: ('CKM_RSA_X9_31_KEY_PAIR_GEN',),
    CKM_RSA_X9_31: ('CKM_RSA_X9_31',),
    CKM_SHA1_RSA_X9_31: ('CKM_SHA1_RSA_X9_31',),
    CKM_RSA_PKCS_PSS: ('CKM_RSA_PKCS_PSS',),
    CKM_SHA1_RSA_PKCS_PSS: ('CKM_SHA1_RSA_PKCS_PSS',),
    CKM_DSA_KEY_PAIR_GEN: ('CKM_DSA_KEY_PAIR_GEN',),
    CKM_DSA: ('CKM_DSA',),
    CKM_DSA_SHA1: ('CKM_DSA_SHA1',),
    CKM_DH_PKCS_KEY_PAIR_GEN: ('CKM_DH_PKCS_KEY_PAIR_GEN',),
    CKM_DH_PKCS_DERIVE: ('CKM_DH_PKCS_DERIVE',),
    CKM_X9_42_DH_KEY_PAIR_GEN: ('CKM_X9_42_DH_KEY_PAIR_GEN',),
    CKM_X9_42_DH_DERIVE: ('CKM_X9_42_DH_DERIVE',),
    CKM_X9_42_DH_HYBRID_DERIVE: ('CKM_X9_42_DH_HYBRID_DERIVE',),
    CKM_X9_42_MQV_DERIVE: ('CKM_X9_42_MQV_DERIVE',),
    CKM_SHA256_RSA_PKCS: ('CKM_SHA256_RSA_PKCS',),
    CKM_SHA384_RSA_PKCS: ('CKM_SHA384_RSA_PKCS',),
    CKM_SHA512_RSA_PKCS: ('CKM_SHA512_RSA_PKCS',),
    CKM_SHA256_RSA_PKCS_PSS: ('CKM_SHA256_RSA_PKCS_PSS',),
    CKM_SHA384_RSA_PKCS_PSS: ('CKM_SHA384_RSA_PKCS_PSS',),
    CKM_SHA512_RSA_PKCS_PSS: ('CKM_SHA512_RSA_PKCS_PSS',),
    CKM_SHA224_RSA_PKCS: ('CKM_SHA224_RSA_PKCS',),
    CKM_SHA224_RSA_PKCS_PSS: ('CKM_SHA224_RSA_PKCS_PSS',),
    CKM_RC2_KEY_GEN: ('CKM_RC2_KEY_GEN',),
    CKM_RC2_ECB: ('CKM_RC2_ECB',),
    CKM_RC2_CBC: ('CKM_RC2_CBC',),
    CKM_RC2_MAC: ('CKM_RC2_MAC',),
    CKM_RC2_MAC_GENERAL: ('CKM_RC2_MAC_GENERAL',),
    CKM_RC2_CBC_PAD: ('CKM_RC2_CBC_PAD',),
    CKM_RC4_KEY_GEN: ('CKM_RC4_KEY_GEN',),
    CKM_RC4: ('CKM_RC4',),
    CKM_DES_KEY_GEN: ('CKM_DES_KEY_GEN',),
    CKM_DES_ECB: ('CKM_DES_ECB',),
    CKM_DES_CBC: ('CKM_DES_CBC',),
    CKM_DES_MAC: ('CKM_DES_MAC',),
    CKM_DES_MAC_GENERAL: ('CKM_DES_MAC_GENERAL',),
    CKM_DES_CBC_PAD: ('CKM_DES_CBC_PAD',),
    CKM_DES2_KEY_GEN: ('CKM_DES2_KEY_GEN',),
    CKM_DES3_KEY_GEN: ('CKM_DES3_KEY_GEN',),
    CKM_DES3_ECB: ('CKM_DES3_ECB',),
    CKM_DES3_CBC: ('CKM_DES3_CBC',),
    CKM_DES3_MAC: ('CKM_DES3_MAC',),
    CKM_DES3_MAC_GENERAL: ('CKM_DES3_MAC_GENERAL',),
    CKM_DES3_CBC_PAD: ('CKM_DES3_CBC_PAD',),
    CKM_DES3_CMAC_GENERAL: ('CKM_DES3_CMAC_GENERAL',),
    CKM_DES3_CMAC: ('CKM_DES3_CMAC',),
    CKM_CDMF_KEY_GEN: ('CKM_CDMF_KEY_GEN',),
    CKM_CDMF_ECB: ('CKM_CDMF_ECB',),
    CKM_CDMF_CBC: ('CKM_CDMF_CBC',),
    CKM_CDMF_MAC: ('CKM_CDMF_MAC',),
    CKM_CDMF_MAC_GENERAL: ('CKM_CDMF_MAC_GENERAL',),
    CKM_CDMF_CBC_PAD: ('CKM_CDMF_CBC_PAD',),
    CKM_DES_OFB64: ('CKM_DES_OFB64',),
    CKM_DES_OFB8: ('CKM_DES_OFB8',),
    CKM_DES_CFB64: ('CKM_DES_CFB64',),
    CKM_DES_CFB8: ('CKM_DES_CFB8',),
    CKM_MD2: ('CKM_MD2',),
    CKM_MD2_HMAC: ('CKM_MD2_HMAC',),
    CKM_MD2_HMAC_GENERAL: ('CKM_MD2_HMAC_GENERAL',),
    CKM_MD5: ('CKM_MD5',),
    CKM_MD5_HMAC: ('CKM_MD5_HMAC',),
    CKM_MD5_HMAC_GENERAL: ('CKM_MD5_HMAC_GENERAL',),
    CKM_SHA_1: ('CKM_SHA_1',),
    CKM_SHA_1_HMAC: ('CKM_SHA_1_HMAC',),
    CKM_SHA_1_HMAC_GENERAL: ('CKM_SHA_1_HMAC_GENERAL',),
    CKM_RIPEMD128: ('CKM_RIPEMD128',),
    CKM_RIPEMD128_HMAC: ('CKM_RIPEMD128_HMAC',),
    CKM_RIPEMD128_HMAC_GENERAL: ('CKM_RIPEMD128_HMAC_GENERAL',),
    CKM_RIPEMD160: ('CKM_RIPEMD160',),
    CKM_RIPEMD160_HMAC: ('CKM_RIPEMD160_HMAC',),
    CKM_RIPEMD160_HMAC_GENERAL: ('CKM_RIPEMD160_HMAC_GENERAL',),
    CKM_SHA256: ('CKM_SHA256',),
    CKM_SHA256_HMAC: ('CKM_SHA256_HMAC',),
    CKM_SHA256_HMAC_GENERAL: ('CKM_SHA256_HMAC_GENERAL',),
    CKM_SHA224: ('CKM_SHA224',),
    CKM_SHA224_HMAC: ('CKM_SHA224_HMAC',),
    CKM_SHA224_HMAC_GENERAL: ('CKM_SHA224_HMAC_GENERAL',),
    CKM_SHA384: ('CKM_SHA384',),
    CKM_SHA384_HMAC: ('CKM_SHA384_HMAC',),
    CKM_SHA384_HMAC_GENERAL: ('CKM_SHA384_HMAC_GENERAL',),
    CKM_SHA512: ('CKM_SHA512',),
    CKM_SHA512_HMAC: ('CKM_SHA512_HMAC',),
    CKM_SHA512_HMAC_GENERAL: ('CKM_SHA512_HMAC_GENERAL',),
    CKM_SECURID_KEY_GEN: ('CKM_SECURID_KEY_GEN',),
    CKM_SECURID: ('CKM_SECURID',),
    CKM_HOTP_KEY_GEN: ('CKM_HOTP_KEY_GEN',),
    CKM_HOTP: ('CKM_HOTP',),
    CKM_ACTI: ('CKM_ACTI',),
    CKM_ACTI_KEY_GEN: ('CKM_ACTI_KEY_GEN',),
    CKM_CAST_KEY_GEN: ('CKM_CAST_KEY_GEN',),
    CKM_CAST_ECB: ('CKM_CAST_ECB',),
    CKM_CAST_CBC: ('CKM_CAST_CBC',),
    CKM_CAST_MAC: ('CKM_CAST_MAC',),
    CKM_CAST_MAC_GENERAL: ('CKM_CAST_MAC_GENERAL',),
    CKM_CAST_CBC_PAD: ('CKM_CAST_CBC_PAD',),
    CKM_CAST3_KEY_GEN: ('CKM_CAST3_KEY_GEN',),
    CKM_CAST3_ECB: ('CKM_CAST3_ECB',),
    CKM_CAST3_CBC: ('CKM_CAST3_CBC',),
    CKM_CAST3_MAC: ('CKM_CAST3_MAC',),
    CKM_CAST3_MAC_GENERAL: ('CKM_CAST3_MAC_GENERAL',),
    CKM_CAST3_CBC_PAD: ('CKM_CAST3_CBC_PAD',),
    CKM_CAST5_KEY_GEN: ('CKM_CAST5_KEY_GEN', 'CKM_CAST128_KEY_GEN'),
    CKM_CAST5_ECB: ('CKM_CAST5_ECB', 'CKM_CAST128_ECB'),
    CKM_CAST5_CBC: ('CKM_CAST5_CBC', 'CKM_CAST128_CBC'),
    CKM_CAST5_MAC: ('CKM_CAST5_MAC', 'CKM_CAST128_MAC'),
    CKM_CAST5_MAC_GENERAL: ('CKM_CAST5_MAC_GENERAL', 'CKM_CAST128_MAC_GENERAL'),
    CKM_CAST5_CBC_PAD: ('CKM_CAST5_CBC_PAD', 'CKM_CAST128_CBC_PAD'),
    CKM_RC5_KEY_GEN: ('CKM_RC5_KEY_GEN',),
    CKM_RC5_ECB: ('CKM_RC5_ECB',),
    CKM_RC5_CBC: ('CKM_RC5_CBC',),
    CKM_RC5_MAC: ('CKM_RC5_MAC',),
    CKM_RC5_MAC_GENERAL: ('CKM_RC5_MAC_GENERAL',),
    CKM_RC5_CBC_PAD: ('CKM_RC5_CBC_PAD',),
    CKM_IDEA_KEY_GEN: ('CKM_IDEA_KEY_GEN',),
    CKM_IDEA_ECB: ('CKM_IDEA_ECB',),
    CKM_IDEA_CBC: ('CKM_IDEA_CBC',),
    CKM_IDEA_MAC: ('CKM_IDEA_MAC',),
    CKM_IDEA_MAC_GENERAL: ('CKM_IDEA_MAC_GENERAL',),
    CKM_IDEA_CBC_PAD: ('CKM_IDEA_CBC_PAD',),
    CKM_GENERIC_SECRET_KEY_GEN: ('CKM_GENERIC_SECRET_KEY_GEN',),
    CKM_CONCATENATE_BASE_AND_KEY: ('CKM_CONCATENATE_BASE_AND_KEY',),
    CKM_CONCATENATE_BASE_AND_DATA: ('CKM_CONCATENATE_BASE_AND_DATA',),
    CKM_CONCATENATE_DATA_AND_BASE: ('CKM_CONCATENATE_DATA_AND_BASE',),
    CKM_XOR_BASE_AND_DATA: ('CKM_XOR_BASE_AND_DATA',),
    CKM_EXTRACT_KEY_FROM_KEY: ('CKM_EXTRACT_KEY_FROM_KEY',),
    CKM_SSL3_PRE_MASTER_KEY_GEN: ('CKM_SSL3_PRE_MASTER_KEY_GEN',),
    CKM_SSL3_MASTER_KEY_DERIVE: ('CKM_SSL3_MASTER_KEY_DERIVE',),
    CKM_SSL3_KEY_AND_MAC_DERIVE: ('CKM_SSL3_KEY_AND_MAC_DERIVE',),
    CKM_SSL3_MASTER_KEY_DERIVE_DH: ('CKM_SSL3_MASTER_KEY_DERIVE_DH',),
    CKM_TLS_PRE_MASTER_KEY_GEN: ('CKM_TLS_PRE_MASTER_KEY_GEN',),
    CKM_TLS_MASTER_KEY_DERIVE: ('CKM_TLS_MASTER_KEY_DERIVE',),
    CKM_TLS_KEY_AND_MAC_DERIVE: ('CKM_TLS_KEY_AND_MAC_DERIVE',),
    CKM_TLS_MASTER_KEY_DERIVE_DH: ('CKM_TLS_MASTER_KEY_DERIVE_DH',),
    CKM_TLS_PRF: ('CKM_TLS_PRF',),
    CKM_SSL3_MD5_MAC: ('CKM_SSL3_MD5_MAC',),
    CKM_SSL3_SHA1_MAC: ('CKM_SSL3_SHA1_MAC',),
    CKM_MD5_KEY_DERIVATION: ('CKM_MD5_KEY_DERIVATION',),
    CKM_MD2_KEY_DERIVATION: ('CKM_MD2_KEY_DERIVATION',),
    CKM_SHA1_KEY_DERIVATION: ('CKM_SHA1_KEY_DERIVATION',),
    CKM_SHA256_KEY_DERIVATION: ('CKM_SHA256_KEY_DERIVATION',),
    CKM_SHA384_KEY_DERIVATION: ('CKM_SHA384_KEY_DERIVATION',),
    CKM_SHA512_KEY_DERIVATION: ('CKM_SHA512_KEY_DERIVATION',),
    CKM_SHA224_KEY_DERIVATION: ('CKM_SHA224_KEY_DERIVATION',),
    CKM_PBE_MD2_DES_CBC: ('CKM_PBE_MD2_DES_CBC',),
    CKM_PBE_MD5_DES_CBC: ('CKM_PBE_MD5_DES_CBC',),
    CKM_PBE_MD5_CAST_CBC: ('CKM_PBE_MD5_CAST_CBC',),
    CKM_PBE_MD5_CAST3_CBC: ('CKM_PBE_MD5_CAST3_CBC',),
    CKM_PBE_MD5_CAST5_CBC: ('CKM_PBE_MD5_CAST5_CBC', 'CKM_PBE_MD5_CAST128_CBC'),
    CKM_PBE_SHA1_CAST5_CBC: ('CKM_PBE_SHA1_CAST5_CBC', 'CKM_PBE_SHA1_CAST128_CBC'),
    CKM_PBE_SHA1_RC4_128: ('CKM_PBE_SHA1_RC4_128',),
    CKM_PBE_SHA1_RC4_40: ('CKM_PBE_SHA1_RC4_40',),
    CKM_PBE_SHA1_DES3_EDE_CBC: ('CKM_PBE_SHA1_DES3_EDE_CBC',),
    CKM_PBE_SHA1_DES2_EDE_CBC: ('CKM_PBE_SHA1_DES2_EDE_CBC',),
    CKM_PBE_SHA1_RC2_128_CBC: ('CKM_PBE_SHA1_RC2_128_CBC',),
    CKM_PBE_SHA1_RC2_40_CBC: ('CKM_PBE_SHA1_RC2_40_CBC',),
    CKM_PKCS5_PBKD2: ('CKM_PKCS5_PBKD2',),
    CKM_PBA_SHA1_WITH_SHA1_HMAC: ('CKM_PBA_SHA1_WITH_SHA1_HMAC',),
    CKM_WTLS_PRE_MASTER_KEY_GEN: ('CKM_WTLS_PRE_MASTER_KEY_GEN',),
    CKM_WTLS_MASTER_KEY_DERIVE: ('CKM_WTLS_MASTER_KEY_DERIVE',),
    CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC: ('CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC',),
    CKM_WTLS_PRF: ('CKM_WTLS_PRF',),
    CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE: ('CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE',),
    CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE: ('CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE',),
    CKM_KEY_WRAP_LYNKS: ('CKM_KEY_WRAP_LYNKS',),
    CKM_KEY_WRAP_SET_OAEP: ('CKM_KEY_WRAP_SET_OAEP',),
    CKM_CMS_SIG: ('CKM_CMS_SIG',),
    CKM_KIP_DERIVE: ('CKM_KIP_DERIVE',),
    CKM_KIP_WRAP: ('CKM_KIP_WRAP',),
    CKM_KIP_MAC: ('CKM_KIP_MAC',),
    CKM_CAMELLIA_KEY_GEN: ('CKM_CAMELLIA_KEY_GEN',),
    CKM_CAMELLIA_ECB: ('CKM_CAMELLIA_ECB',),
    CKM_CAMELLIA_CBC: ('CKM_CAMELLIA_CBC',),
    CKM_CAMELLIA_MAC: ('CKM_CAMELLIA_MAC',),
    CKM_CAMELLIA_MAC_GENERAL: ('CKM_CAMELLIA_MAC_GENERAL',),
    CKM_CAMELLIA_CBC_PAD: ('CKM_CAMELLIA_CBC_PAD',),
    CKM_CAMELLIA_ECB_ENCRYPT_DATA: ('CKM_CAMELLIA_ECB_ENCRYPT_DATA',),
    CKM_CAMELLIA_CBC_ENCRYPT_DATA: ('CKM_CAMELLIA_CBC_ENCRYPT_DATA',),
    CKM_CAMELLIA_CTR: ('CKM_CAMELLIA_CTR',),
    CKM_ARIA_KEY_GEN: ('CKM_ARIA_KEY_GEN',),
    CKM_ARIA_ECB: ('CKM_ARIA_ECB',),
    CKM_ARIA_CBC: ('CKM_ARIA_CBC',),
    CKM_ARIA_MAC: ('CKM_ARIA_MAC',),
    CKM_ARIA_MAC_GENERAL: ('CKM_ARIA_MAC_GENERAL',),
    CKM_ARIA_CBC_PAD: ('CKM_ARIA_CBC_PAD',),
    CKM_ARIA_ECB_ENCRYPT_DATA: ('CKM_ARIA_ECB_ENCRYPT_DATA',),
    CKM_ARIA_CBC_ENCRYPT_DATA: ('CKM_ARIA_CBC_ENCRYPT_DATA',),
    CKM_SKIPJACK_KEY_GEN: ('CKM_SKIPJACK_KEY_GEN',),
    CKM_SKIPJACK_ECB64: ('CKM_SKIPJACK_ECB64',),
    CKM_SKIPJACK_CBC64: ('CKM_SKIPJACK_CBC64',),
    CKM_SKIPJACK_OFB64: ('CKM_SKIPJACK_OFB64',),
    CKM_SKIPJACK_CFB64: ('CKM_SKIPJACK_CFB64',),
    CKM_SKIPJACK_CFB32: ('CKM_SKIPJACK_CFB32',),
    CKM_SKIPJACK_CFB16: ('CKM_SKIPJACK_CFB16',),
    CKM_SKIPJACK_CFB8: ('CKM_SKIPJACK_CFB8',),
    CKM_SKIPJACK_WRAP: ('CKM_SKIPJACK_WRAP',),
    CKM_SKIPJACK_PRIVATE_WRAP: ('CKM_SKIPJACK_PRIVATE_WRAP',),
    CKM_SKIPJACK_RELAYX: ('CKM_SKIPJACK_RELAYX',),
    CKM_KEA_KEY_PAIR_GEN: ('CKM_KEA_KEY_PAIR_GEN',),
    CKM_KEA_KEY_DERIVE: ('CKM_KEA_KEY_DERIVE',),
    CKM_FORTEZZA_TIMESTAMP: ('CKM_FORTEZZA_TIMESTAMP',),
    CKM_BATON_KEY_GEN: ('CKM_BATON_KEY_GEN',),
    CKM_BATON_ECB128: ('CKM_BATON_ECB128',),
    CKM_BATON_ECB96: ('CKM_BATON_ECB96',),
    CKM_BATON_CBC128: ('CKM_BATON_CBC128',),
    CKM_BATON_COUNTER: ('CKM_BATON_COUNTER',),
    CKM_BATON_SHUFFLE: ('CKM_BATON_SHUFFLE',),
    CKM_BATON_WRAP: ('CKM_BATON_WRAP',),
    CKM_ECDSA_KEY_PAIR_GEN: ('CKM_ECDSA_KEY_PAIR_GEN', 'CKM_EC_KEY_PAIR_GEN'),
    CKM_ECDSA: ('CKM_ECDSA',),
    CKM_ECDSA_SHA1: ('CKM_ECDSA_SHA1',),
    CKM_ECDH1_DERIVE: ('CKM_ECDH1_DERIVE',),
    CKM_ECDH1_COFACTOR_DERIVE: ('CKM_ECDH1_COFACTOR_DERIVE',),
    CKM_ECMQV_DERIVE: ('CKM_ECMQV_DERIVE',),
    CKM_JUNIPER_KEY_GEN: ('CKM_JUNIPER_KEY_GEN',),
    CKM_JUNIPER_ECB128: ('CKM_JUNIPER_ECB128',),
    CKM_JUNIPER_CBC128: ('CKM_JUNIPER_CBC128',),
    CKM_JUNIPER_COUNTER: ('CKM_JUNIPER_COUNTER',),
    CKM_JUNIPER_SHUFFLE: ('CKM_JUNIPER_SHUFFLE',),
    CKM_JUNIPER_WRAP: ('CKM_JUNIPER_WRAP',),
    CKM_FASTHASH: ('CKM_FASTHASH',),
    CKM_AES_KEY_GEN: ('CKM_AES_KEY_GEN',),
    CKM_AES_ECB: ('CKM_AES_ECB',),
    CKM_AES_CBC: ('CKM_AES_CBC',),
    CKM_AES_MAC: ('CKM_AES_MAC',),
    CKM_AES_MAC_GENERAL: ('CKM_AES_MAC_GENERAL',),
    CKM_AES_CBC_PAD: ('CKM_AES_CBC_PAD',),
    CKM_AES_CTR: ('CKM_AES_CTR',),
    CKM_AES_CMAC_GENERAL: ('CKM_AES_CMAC_GENERAL',),
    CKM_AES_CMAC: ('CKM_AES_CMAC',),
    CKM_BLOWFISH_KEY_GEN: ('CKM_BLOWFISH_KEY_GEN',),
    CKM_BLOWFISH_CBC: ('CKM_BLOWFISH_CBC',),
    CKM_TWOFISH_KEY_GEN: ('CKM_TWOFISH_KEY_GEN',),
    CKM_TWOFISH_CBC: ('CKM_TWOFISH_CBC',),
    CKM_DES_ECB_ENCRYPT_DATA: ('CKM_DES_ECB_ENCRYPT_DATA',),
    CKM_DES_CBC_ENCRYPT_DATA: ('CKM_DES_CBC_ENCRYPT_DATA',),
    CKM_DES3_ECB_ENCRYPT_DATA: ('CKM_DES3_ECB_ENCRYPT_DATA',),
    CKM_DES3_CBC_ENCRYPT_DATA: ('CKM_DES3_CBC_ENCRYPT_DATA',),
    CKM_AES_ECB_ENCRYPT_DATA: ('CKM_AES_ECB_ENCRYPT_DATA',),
    CKM_AES_CBC_ENCRYPT_DATA: ('CKM_AES_CBC_ENCRYPT_DATA',),
    CKM_DSA_PARAMETER_GEN: ('CKM_DSA_PARAMETER_GEN',),
    CKM_DH_PKCS_PARAMETER_GEN: ('CKM_DH_PKCS_PARAMETER_GEN',),
    CKM_X9_42_DH_PARAMETER_GEN: ('CKM_X9_42_DH_PARAMETER_GEN',),
    CKM_AES_KEY_WRAP: ('CKM_AES_KEY_WRAP',),
    CKM_AES_KEY_WRAP_PAD: ('CKM_AES_KEY_WRAP_PAD',),
    CKM_VENDOR_DEFINED: ('CKM_VENDOR_DEFINED',),
    CKM_KEY_TRANSLATION: ('CKM_KEY_TRANSLATION',),
    CKM_XOR_BASE_AND_KEY: ('CKM_XOR_BASE_AND_KEY',),
    CKM_2DES_KEY_DERIVATION: ('CKM_2DES_KEY_DERIVATION',),
    CKM_INDIRECT_LOGIN_REENCRYPT: ('CKM_INDIRECT_LOGIN_REENCRYPT',),
    CKM_HAS160: ('CKM_HAS160',),
    CKM_KCDSA_KEY_PAIR_GEN: ('CKM_KCDSA_KEY_PAIR_GEN',),
    CKM_KCDSA_HAS160: ('CKM_KCDSA_HAS160',),
    CKM_SEED_KEY_GEN: ('CKM_SEED_KEY_GEN',),
    CKM_SEED_ECB: ('CKM_SEED_ECB',),
    CKM_SEED_CBC: ('CKM_SEED_CBC',),
    CKM_SEED_CBC_PAD: ('CKM_SEED_CBC_PAD',),
    CKM_SEED_MAC: ('CKM_SEED_MAC',),
    CKM_SEED_MAC_GENERAL: ('CKM_SEED_MAC_GENERAL',),
    CKM_KCDSA_SHA1: ('CKM_KCDSA_SHA1',),
    CKM_KCDSA_SHA224: ('CKM_KCDSA_SHA224',),
    CKM_KCDSA_SHA256: ('CKM_KCDSA_SHA256',),
    CKM_KCDSA_SHA384: ('CKM_KCDSA_SHA384',),
    CKM_KCDSA_SHA512: ('CKM_KCDSA_SHA512',),
    CKM_KCDSA_PARAMETER_GEN: ('CKM_KCDSA_PARAMETER_GEN',),
    CKM_DES3_CTR: ('CKM_DES3_CTR',),
    CKM_AES_CFB8: ('CKM_AES_CFB8',),
    CKM_AES_CFB128: ('CKM_AES_CFB128',),
    CKM_AES_OFB: ('CKM_AES_OFB',),
    CKM_AES_GCM: ('CKM_AES_GCM',),
    CKM_ARIA_CFB8: ('CKM_ARIA_CFB8',),
    CKM_ARIA_CFB128: ('CKM_ARIA_CFB128',),
    CKM_ARIA_OFB: ('CKM_ARIA_OFB',),
    CKM_ARIA_CTR: ('CKM_ARIA_CTR',),
    CKM_ARIA_GCM: ('CKM_ARIA_GCM',),
    CKM_ECDSA_SHA224: ('CKM_ECDSA_SHA224',),
    CKM_ECDSA_SHA256: ('CKM_ECDSA_SHA256',),
    CKM_ECDSA_SHA384: ('CKM_ECDSA_SHA384',),
    CKM_ECDSA_SHA512: ('CKM_ECDSA_SHA512',),
    CKM_AES_GMAC: ('CKM_AES_GMAC',),
    CKM_ARIA_CMAC: ('CKM_ARIA_CMAC',),
    CKM_ARIA_CMAC_GENERAL: ('CKM_ARIA_CMAC_GENERAL',),
    CKM_SEED_CMAC: ('CKM_SEED_CMAC',),
    CKM_SEED_CMAC_GENERAL: ('CKM_SEED_CMAC_GENERAL',),
    CKM_DES3_CBC_PAD_IPSEC: ('CKM_DES3_CBC_PAD_IPSEC',),
    CKM_AES_CBC_PAD_IPSEC: ('CKM_AES_CBC_PAD_IPSEC',),
    CKM_ARIA_L_ECB: ('CKM_ARIA_L_ECB',),
    CKM_ARIA_L_CBC: ('CKM_ARIA_L_CBC',),
    CKM_ARIA_L_CBC_PAD: ('CKM_ARIA_L_CBC_PAD',),
    CKM_ARIA_L_MAC: ('CKM_ARIA_L_MAC',),
    CKM_ARIA_L_MAC_GENERAL: ('CKM_ARIA_L_MAC_GENERAL',),
    CKM_SHA224_RSA_X9_31: ('CKM_SHA224_RSA_X9_31',),
    CKM_SHA256_RSA_X9_31: ('CKM_SHA256_RSA_X9_31',),
    CKM_SHA384_RSA_X9_31: ('CKM_SHA384_RSA_X9_31',),
    CKM_SHA512_RSA_X9_31: ('CKM_SHA512_RSA_X9_31',),
    CKM_SHA1_RSA_X9_31_NON_FIPS: ('CKM_SHA1_RSA_X9_31_NON_FIPS',),
    CKM_SHA224_RSA_X9_31_NON_FIPS: ('CKM_SHA224_RSA_X9_31_NON_FIPS',),
    CKM_SHA256_RSA_X9_31_NON_FIPS: ('CKM_SHA256_RSA_X9_31_NON_FIPS',),
    CKM_SHA384_RSA_X9_31_NON_FIPS: ('CKM_SHA384_RSA_X9_31_NON_FIPS',),
    CKM_SHA512_RSA_X9_31_NON_FIPS: ('CKM_SHA512_RSA_X9_31_NON_FIPS',),
    CKM_RSA_X9_31_NON_FIPS: ('CKM_RSA_X9_31_NON_FIPS',),
    CKM_DSA_SHA224: ('CKM_DSA_SHA224',),
    CKM_DSA_SHA256: ('CKM_DSA_SHA256',),
    CKM_RSA_FIPS_186_3_AUX_PRIME_KEY_PAIR_GEN: ('CKM_RSA_FIPS_186_3_AUX_PRIME_KEY_PAIR_GEN',),
    CKM_RSA_FIPS_186_3_PRIME_KEY_PAIR_GEN: ('CKM_RSA_FIPS_186_3_PRIME_KEY_PAIR_GEN',),
    CKM_SEED_CTR: ('CKM_SEED_CTR',),
    CKM_KCDSA_HAS160_NO_PAD: ('CKM_KCDSA_HAS160_NO_PAD',),
    CKM_KCDSA_SHA1_NO_PAD: ('CKM_KCDSA_SHA1_NO_PAD',),
    CKM_KCDSA_SHA224_NO_PAD: ('CKM_KCDSA_SHA224_NO_PAD',),
    CKM_KCDSA_SHA256_NO_PAD: ('CKM_KCDSA_SHA256_NO_PAD',),
    CKM_KCDSA_SHA384_NO_PAD: ('CKM_KCDSA_SHA384_NO_PAD',),
    CKM_KCDSA_SHA512_NO_PAD: ('CKM_KCDSA_SHA512_NO_PAD',),
    CKM_DES3_X919_MAC: ('CKM_DES3_X919_MAC',),
    CKM_ECDSA_KEY_PAIR_GEN_W_EXTRA_BITS: ('CKM_ECDSA_KEY_PAIR_GEN_W_EXTRA_BITS',),
    CKM_ECDSA_GBCS_SHA256: ('CKM_ECDSA_GBCS_SHA256',),
    CKM_AES_KW: ('CKM_AES_KW',),
    CKM_AES_KWP: ('CKM_AES_KWP',),
    CKM_TDEA_KW: ('CKM_TDEA_KW',),
    CKM_TDEA_KWP: ('CKM_TDEA_KWP',),
    CKM_AES_CBC_PAD_EXTRACT: ('CKM_AES_CBC_PAD_EXTRACT',),
    CKM_AES_CBC_PAD_INSERT: ('CKM_AES_CBC_PAD_INSERT',),
    CKM_AES_CBC_PAD_EXTRACT_FLATTENED: ('CKM_AES_CBC_PAD_EXTRACT_FLATTENED',),
    CKM_AES_CBC_PAD_INSERT_FLATTENED: ('CKM_AES_CBC_PAD_INSERT_FLATTENED',),
    CKM_AES_CBC_PAD_EXTRACT_DOMAIN_CTRL: ('CKM_AES_CBC_PAD_EXTRACT_DOMAIN_CTRL',),
    CKM_AES_CBC_PAD_INSERT_DOMAIN_CTRL: ('CKM_AES_CBC_PAD_INSERT_DOMAIN_CTRL',),
    CKM_PLACE_HOLDER_FOR_ERACOME_DEF_IN_SHIM: ('CKM_PLACE_HOLDER_FOR_ERACOME_DEF_IN_SHIM',),
    CKM_DES2_DUKPT_PIN: ('CKM_DES2_DUKPT_PIN',),
    CKM_DES2_DUKPT_MAC: ('CKM_DES2_DUKPT_MAC',),
    CKM_DES2_DUKPT_MAC_RESP: ('CKM_DES2_DUKPT_MAC_RESP',),
    CKM_DES2_DUKPT_DATA: ('CKM_DES2_DUKPT_DATA',),
    CKM_DES2_DUKPT_DATA_RESP: ('CKM_DES2_DUKPT_DATA_RESP',),
    CKM_ECIES: ('CKM_ECIES',),
    CKM_XOR_BASE_AND_DATA_W_KDF: ('CKM_XOR_BASE_AND_DATA_W_KDF',),
    CKM_NIST_PRF_KDF: ('CKM_NIST_PRF_KDF',),
    CKM_PRF_KDF: ('CKM_PRF_KDF',)
}


[docs]def get_default_key_template(mechanism): """Gets a default template for the given key gen mechanism, returns a deep copy :param mechanism: """ return copy.deepcopy(KEY_GENERATOR_TEMPLATES[mechanism])
[docs]def get_default_key_pair_template(mechanism): """Gets the default template for the given key pair gen mechanism, returns a deep copy :param mechanism: """ pub, priv = KEY_PAIR_GENERATOR_TEMPLATES[mechanism] return copy.deepcopy(pub), copy.deepcopy(priv)