#ifndef _PKCS11_TC26_12_H_INCLUDED_
#define _PKCS11_TC26_12_H_INCLUDED_

#ifndef CK_VENDOR_PKCS11_RU_TEAM_TC26
#define NSSCK_VENDOR_PKCS11_RU_TEAM             0xD4321000 /* 0x80000000 | 0x54321000 */
#define CK_VENDOR_PKCS11_RU_TEAM_TC26           NSSCK_VENDOR_PKCS11_RU_TEAM
#endif // CK_VENDOR_PKCS11_RU_TEAM_TC26

/* GOST KEY TYPES */
#define CKK_GOSTR3410_256                       CKK_GOSTR3410
#define CKK_GOSTR3410_512                       (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x003)

/* GOST OBJECT ATTRIBUTES */
#define CKA_GOSTR3410_256PARAMS                 CKA_GOSTR3410_PARAMS

/* PKCS #5 PRF Functions */
#define CKP_PKCS5_PBKD2_HMAC_GOSTR3411_2012_512 (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x003)

/* GOST MECHANISMS */
#define CKM_GOSTR3410_256_KEY_PAIR_GEN          CKM_GOSTR3410_KEY_PAIR_GEN 
#define CKM_GOSTR3410_512_KEY_PAIR_GEN          (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x005) 
#define CKM_GOSTR3410_256                       CKM_GOSTR3410 
#define CKM_GOSTR3410_512                       (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x006) 
#define CKM_GOSTR3410_2012_DERIVE               (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x007) 
#define CKM_GOSTR3410_12_DERIVE                 CKM_GOSTR3410_2012_DERIVE
#define CKM_GOSTR3410_WITH_GOSTR3411_94         CKM_GOSTR3410_WITH_GOSTR3411
#define CKM_GOSTR3410_WITH_GOSTR3411_2012_256   (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x008)
#define CKM_GOSTR3410_WITH_GOSTR3411_2012_512   (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x009)
#define CKM_GOSTR3410_WITH_GOSTR3411_12_256     CKM_GOSTR3410_WITH_GOSTR3411_2012_256
#define CKM_GOSTR3410_WITH_GOSTR3411_12_512     CKM_GOSTR3410_WITH_GOSTR3411_2012_512
#define CKM_GOSTR3410_PUBLIC_KEY_DERIVE         (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x00A)
#define CKM_GOSTR3410_512_PUBLIC_KEY_DERIVE     (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x00B)

#define CKM_GOSTR3411_94                        CKM_GOSTR3411 
#define CKM_GOSTR3411_2012_256                  (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x012) 
#define CKM_GOSTR3411_2012_512                  (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x013)
#define CKM_GOSTR3411_12_256                    CKM_GOSTR3411_2012_256
#define CKM_GOSTR3411_12_512                    CKM_GOSTR3411_2012_512
#define CKM_GOSTR3411_94_HMAC                   CKM_GOSTR3411_HMAC
#define CKM_GOSTR3411_2012_256_HMAC             (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x014)
#define CKM_GOSTR3411_2012_512_HMAC             (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x015)
#define CKM_GOSTR3411_12_256_HMAC               CKM_GOSTR3411_2012_256_HMAC
#define CKM_GOSTR3411_12_512_HMAC               CKM_GOSTR3411_2012_512_HMAC

#define CKM_TLS_GOST_PRF_2012_256               (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x016)
#define CKM_TLS_GOST_PRF_2012_512               (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x017)
#define CKM_TLS_GOST_PRE_MASTER_KEY_GEN         CKM_GOST28147_KEY_GEN
#define CKM_TLS_GOST_MASTER_KEY_DERIVE_2012_256 (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x018)

// deprecated
//#define CKM_KUZNECHIK_KEY_GEN                 (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x019)
// deprecated
//#define CKM_KUZNECHIK_ECB                     (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x01A)
// deprecated
//#define CKM_KUZNECHIK_CTR                     (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x01B)
// deprecated
//#define CKM_KUZNECHIK_CFB                     (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x01C)
// deprecated
//#define CKM_KUZNECHIK_OFB                     (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x01D)
// deprecated
//#define CKM_KUZNECHIK_CBC                     (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x01E)
// deprecated
//#define CKM_KUZNECHIK_MAC                     (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x01F)

// deprecated
//#define CKM_MAGMA_ECB                         CKM_GOST28147_ECB
// deprecated
//#define CKM_MAGMA_CTR                         (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x020)
// deprecated
//#define CKM_MAGMA_CFB                         (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x021)
// deprecated
//#define CKM_MAGMA_OFB                         (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x022)
// deprecated
//#define CKM_MAGMA_CBC                         (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x023)
// deprecated
//#define CKM_MAGMA_MAC                         (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x024)

#define CKM_KDF_4357                            (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x025)
#define CKM_KDF_GOSTR3411_2012_256              (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x026)
#define CKM_VKO_GOSTR3410_2012_512              (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x038)
#define CKM_GOST_KEG                            (CK_VENDOR_PKCS11_RU_TEAM_TC26 |0x039)

#endif // _PKCS11_TC26_12_H_INCLUDED_
