8331959: Update PKCS#11 Cryptographic Token Interface to v3.1

Reviewed-by: weijun, ascarpino
This commit is contained in:
Valerie Peng 2024-10-16 21:26:57 +00:00
parent 285385247a
commit b4ab290fd7
4 changed files with 210 additions and 126 deletions

View File

@ -1,16 +1,16 @@
## OASIS PKCS #11 Cryptographic Token Interface v3.0
## OASIS PKCS #11 Cryptographic Token Interface v3.1
### OASIS PKCS #11 Cryptographic Token Interface License
<pre>
Copyright © OASIS Open 2020. All Rights Reserved.
Copyright © OASIS Open 2023. All Rights Reserved.
All capitalized terms in the following text have the meanings
All capitalized terms in the following text have the meanings
assigned to them in the OASIS Intellectual Property Rights Policy (the
"OASIS IPR Policy"). The full Policy may be found at the OASIS website:
[http://www.oasis-open.org/policies-guidelines/ipr]
[https://www.oasis-open.org/policies-guidelines/ipr/].
This document and translations of it may be copied and furnished to
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it or
assist in its implementation may be prepared, copied, published, and
distributed, in whole or in part, without restriction of any kind,
@ -23,10 +23,10 @@ Committee (in which case the rules applicable to copyrights, as set
forth in the OASIS IPR Policy, must be followed) or as required to
translate it into languages other than English.
The limited permissions granted above are perpetual and will not be
The limited permissions granted above are perpetual and will not be
revoked by OASIS or its successors or assigns.
This document and the information contained herein is provided on an
This document and the information contained herein is provided on an
"AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED
@ -35,7 +35,11 @@ AND ITS MEMBERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THIS DOCUMENT OR ANY
PART THEREOF.
[OASIS requests that any OASIS Party or any other party that
As stated in the OASIS IPR Policy, the following three paragraphs in
brackets apply to OASIS Standards Final Deliverable documents (Committee
Specifications, OASIS Standards, or Approved Errata).
[OASIS requests that any OASIS Party or any other party that
believes it has patent claims that would necessarily be infringed by
implementations of this OASIS Standards Final Deliverable, to notify
OASIS TC Administrator and provide an indication of its willingness to
@ -43,7 +47,7 @@ grant patent licenses to such patent claims in a manner consistent with
the IPR Mode of the OASIS Technical Committee that produced this
deliverable.]
[OASIS invites any party to contact the OASIS TC Administrator if it
[OASIS invites any party to contact the OASIS TC Administrator if it
is aware of a claim of ownership of any patent claims that would
necessarily be infringed by implementations of this OASIS Standards
Final Deliverable by a patent holder that is not willing to provide a
@ -52,7 +56,7 @@ of the OASIS Technical Committee that produced this OASIS Standards
Final Deliverable. OASIS may include such claims on its website, but
disclaims any obligation to do so.]
[OASIS takes no position regarding the validity or scope of any
[OASIS takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to pertain
to the implementation or use of the technology described in this OASIS
Standards Final Deliverable or the extent to which any license under

View File

@ -1,8 +1,11 @@
/* Copyright (c) OASIS Open 2016-2019. All Rights Reserved.
* Distributed under the terms of the OASIS IPR Policy,
* [http://www.oasis-open.org/policies-guidelines/ipr], AS-IS, WITHOUT ANY
* IMPLIED OR EXPRESS WARRANTY; there is no warranty of MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE or NONINFRINGEMENT of the rights of others.
/*
* PKCS #11 Specification Version 3.1
* OASIS Standard
* 23 July 2023
* Copyright (c) OASIS Open 2023. All Rights Reserved.
* Source: https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/os/include/pkcs11-v3.1/
* Latest stage of narrative specification: https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/pkcs11-spec-v3.1.html
* TC IPR Statement: https://www.oasis-open.org/committees/pkcs11/ipr.php
*/
#ifndef _PKCS11_H_
@ -47,7 +50,7 @@ extern "C" {
*
* typedef CK_BYTE CK_PTR CK_BYTE_PTR;
*
* If you're using windows, it might be defined by:
* If you're using Windows, it might be defined by:
*
* #define CK_PTR *
*
@ -65,7 +68,7 @@ extern "C" {
* CK_VOID_PTR pReserved
* );
*
* If you're using Windows to declare a function in a Win32 cryptoki .dll,
* If you're using Windows to declare a function in a Win32 Cryptoki .dll,
* it might be defined by:
*
* #define CK_DECLARE_FUNCTION(returnType, name) \
@ -241,4 +244,3 @@ struct CK_FUNCTION_LIST {
#endif /* _PKCS11_H_ */

View File

@ -1,12 +1,11 @@
/* Copyright (c) OASIS Open 2016, 2019. All Rights Reserved./
* /Distributed under the terms of the OASIS IPR Policy,
* [http://www.oasis-open.org/policies-guidelines/ipr], AS-IS, WITHOUT ANY
* IMPLIED OR EXPRESS WARRANTY; there is no warranty of MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE or NONINFRINGEMENT of the rights of others.
*/
/* Latest version of the specification:
* http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/pkcs11-base-v2.40.html
/*
* PKCS #11 Specification Version 3.1
* OASIS Standard
* 23 July 2023
* Copyright (c) OASIS Open 2023. All Rights Reserved.
* Source: https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/os/include/pkcs11-v3.1/
* Latest stage of narrative specification: https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/pkcs11-spec-v3.1.html
* TC IPR Statement: https://www.oasis-open.org/committees/pkcs11/ipr.php
*/
/* This header file contains pretty much everything about all the

View File

@ -1,12 +1,11 @@
/* Copyright (c) OASIS Open 2016, 2019. All Rights Reserved./
* /Distributed under the terms of the OASIS IPR Policy,
* [http://www.oasis-open.org/policies-guidelines/ipr], AS-IS, WITHOUT ANY
* IMPLIED OR EXPRESS WARRANTY; there is no warranty of MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE or NONINFRINGEMENT of the rights of others.
*/
/* Latest version of the specification:
* http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/pkcs11-base-v2.40.html
/*
* PKCS #11 Specification Version 3.1
* OASIS Standard
* 23 July 2023
* Copyright (c) OASIS Open 2023. All Rights Reserved.
* Source: https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/os/include/pkcs11-v3.1/
* Latest stage of narrative specification: https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/pkcs11-spec-v3.1.html
* TC IPR Statement: https://www.oasis-open.org/committees/pkcs11/ipr.php
*/
/* See top of pkcs11.h for information about the macros that
@ -18,7 +17,7 @@
#define _PKCS11T_H_ 1
#define CRYPTOKI_VERSION_MAJOR 3
#define CRYPTOKI_VERSION_MINOR 0
#define CRYPTOKI_VERSION_MINOR 1
#define CRYPTOKI_VERSION_AMENDMENT 0
#define CK_TRUE 1
@ -329,8 +328,11 @@ typedef CK_OBJECT_CLASS CK_PTR CK_OBJECT_CLASS_PTR;
#define CKP_EXTENDED_PROVIDER 0x00000002UL
#define CKP_AUTHENTICATION_TOKEN 0x00000003UL
#define CKP_PUBLIC_CERTIFICATES_TOKEN 0x00000004UL
#define CKP_COMPLETE_PROVIDER 0x00000005UL
#define CKP_HKDF_TLS_TOKEN 0x00000006UL
#define CKP_VENDOR_DEFINED 0x80000000UL
/* CK_HW_FEATURE_TYPE is a value that identifies the hardware feature type
* of an object with CK_OBJECT_CLASS equal to CKO_HW_FEATURE.
*/
@ -409,9 +411,11 @@ typedef CK_ULONG CK_KEY_TYPE;
#define CKK_EC_EDWARDS 0x00000040UL
#define CKK_EC_MONTGOMERY 0x00000041UL
#define CKK_HKDF 0x00000042UL
#define CKK_SHA512_224_HMAC 0x00000043UL
#define CKK_SHA512_256_HMAC 0x00000044UL
#define CKK_SHA512_T_HMAC 0x00000045UL
#define CKK_HSS 0x00000046UL
#define CKK_VENDOR_DEFINED 0x80000000UL
@ -481,9 +485,9 @@ typedef CK_ULONG CK_ATTRIBUTE_TYPE;
#define CKA_CERTIFICATE_CATEGORY 0x00000087UL
#define CKA_JAVA_MIDP_SECURITY_DOMAIN 0x00000088UL
#define CKA_URL 0x00000089UL
#define CKA_HASH_OF_SUBJECT_PUBLIC_KEY 0x0000008AUL
#define CKA_HASH_OF_ISSUER_PUBLIC_KEY 0x0000008BUL
#define CKA_NAME_HASH_ALGORITHM 0x0000008CUL
#define CKA_HASH_OF_SUBJECT_PUBLIC_KEY 0x0000008aUL
#define CKA_HASH_OF_ISSUER_PUBLIC_KEY 0x0000008bUL
#define CKA_NAME_HASH_ALGORITHM 0x0000008cUL
#define CKA_CHECK_VALUE 0x00000090UL
#define CKA_KEY_TYPE 0x00000100UL
@ -496,9 +500,9 @@ typedef CK_ULONG CK_ATTRIBUTE_TYPE;
#define CKA_UNWRAP 0x00000107UL
#define CKA_SIGN 0x00000108UL
#define CKA_SIGN_RECOVER 0x00000109UL
#define CKA_VERIFY 0x0000010AUL
#define CKA_VERIFY_RECOVER 0x0000010BUL
#define CKA_DERIVE 0x0000010CUL
#define CKA_VERIFY 0x0000010aUL
#define CKA_VERIFY_RECOVER 0x0000010bUL
#define CKA_DERIVE 0x0000010cUL
#define CKA_START_DATE 0x00000110UL
#define CKA_END_DATE 0x00000111UL
#define CKA_MODULUS 0x00000120UL
@ -555,12 +559,12 @@ typedef CK_ULONG CK_ATTRIBUTE_TYPE;
#define CKA_OTP_TIME_REQUIREMENT 0x00000225UL
#define CKA_OTP_COUNTER_REQUIREMENT 0x00000226UL
#define CKA_OTP_PIN_REQUIREMENT 0x00000227UL
#define CKA_OTP_COUNTER 0x0000022EUL
#define CKA_OTP_TIME 0x0000022FUL
#define CKA_OTP_USER_IDENTIFIER 0x0000022AUL
#define CKA_OTP_SERVICE_IDENTIFIER 0x0000022BUL
#define CKA_OTP_SERVICE_LOGO 0x0000022CUL
#define CKA_OTP_SERVICE_LOGO_TYPE 0x0000022DUL
#define CKA_OTP_COUNTER 0x0000022eUL
#define CKA_OTP_TIME 0x0000022fUL
#define CKA_OTP_USER_IDENTIFIER 0x0000022aUL
#define CKA_OTP_SERVICE_IDENTIFIER 0x0000022bUL
#define CKA_OTP_SERVICE_LOGO 0x0000022cUL
#define CKA_OTP_SERVICE_LOGO_TYPE 0x0000022dUL
#define CKA_GOSTR3410_PARAMS 0x00000250UL
#define CKA_GOSTR3411_PARAMS 0x00000251UL
@ -586,6 +590,7 @@ typedef CK_ULONG CK_ATTRIBUTE_TYPE;
#define CKA_SUPPORTED_CMS_ATTRIBUTES 0x00000503UL
#define CKA_ALLOWED_MECHANISMS (CKF_ARRAY_ATTRIBUTE|0x00000600UL)
#define CKA_PROFILE_ID 0x00000601UL
#define CKA_X2RATCHET_BAG 0x00000602UL
#define CKA_X2RATCHET_BAGSIZE 0x00000603UL
#define CKA_X2RATCHET_BOBS1STMSG 0x00000604UL
@ -603,6 +608,13 @@ typedef CK_ULONG CK_ATTRIBUTE_TYPE;
#define CKA_X2RATCHET_NS 0x00000610UL
#define CKA_X2RATCHET_PNS 0x00000611UL
#define CKA_X2RATCHET_RK 0x00000612UL
/* HSS */
#define CKA_HSS_LEVELS 0x00000617UL
#define CKA_HSS_LMS_TYPE 0x00000618UL
#define CKA_HSS_LMOTS_TYPE 0x00000619UL
#define CKA_HSS_LMS_TYPES 0x0000061aUL
#define CKA_HSS_LMOTS_TYPES 0x0000061bUL
#define CKA_HSS_KEYS_REMAINING 0x0000061cUL
#define CKA_VENDOR_DEFINED 0x80000000UL
@ -644,11 +656,11 @@ typedef CK_ULONG CK_MECHANISM_TYPE;
#define CKM_RIPEMD160_RSA_PKCS 0x00000008UL
#define CKM_RSA_PKCS_OAEP 0x00000009UL
#define CKM_RSA_X9_31_KEY_PAIR_GEN 0x0000000AUL
#define CKM_RSA_X9_31 0x0000000BUL
#define CKM_SHA1_RSA_X9_31 0x0000000CUL
#define CKM_RSA_PKCS_PSS 0x0000000DUL
#define CKM_SHA1_RSA_PKCS_PSS 0x0000000EUL
#define CKM_RSA_X9_31_KEY_PAIR_GEN 0x0000000aUL
#define CKM_RSA_X9_31 0x0000000bUL
#define CKM_SHA1_RSA_X9_31 0x0000000cUL
#define CKM_RSA_PKCS_PSS 0x0000000dUL
#define CKM_SHA1_RSA_PKCS_PSS 0x0000000eUL
#define CKM_DSA_KEY_PAIR_GEN 0x00000010UL
#define CKM_DSA 0x00000011UL
@ -659,8 +671,8 @@ typedef CK_ULONG CK_MECHANISM_TYPE;
#define CKM_DSA_SHA512 0x00000016UL
#define CKM_DSA_SHA3_224 0x00000018UL
#define CKM_DSA_SHA3_256 0x00000019UL
#define CKM_DSA_SHA3_384 0x0000001AUL
#define CKM_DSA_SHA3_512 0x0000001BUL
#define CKM_DSA_SHA3_384 0x0000001aUL
#define CKM_DSA_SHA3_512 0x0000001bUL
#define CKM_DH_PKCS_KEY_PAIR_GEN 0x00000020UL
#define CKM_DH_PKCS_DERIVE 0x00000021UL
@ -682,12 +694,12 @@ typedef CK_ULONG CK_MECHANISM_TYPE;
#define CKM_SHA512_224 0x00000048UL
#define CKM_SHA512_224_HMAC 0x00000049UL
#define CKM_SHA512_224_HMAC_GENERAL 0x0000004AUL
#define CKM_SHA512_224_KEY_DERIVATION 0x0000004BUL
#define CKM_SHA512_256 0x0000004CUL
#define CKM_SHA512_256_HMAC 0x0000004DUL
#define CKM_SHA512_256_HMAC_GENERAL 0x0000004EUL
#define CKM_SHA512_256_KEY_DERIVATION 0x0000004FUL
#define CKM_SHA512_224_HMAC_GENERAL 0x0000004aUL
#define CKM_SHA512_224_KEY_DERIVATION 0x0000004bUL
#define CKM_SHA512_256 0x0000004cUL
#define CKM_SHA512_256_HMAC 0x0000004dUL
#define CKM_SHA512_256_HMAC_GENERAL 0x0000004eUL
#define CKM_SHA512_256_KEY_DERIVATION 0x0000004fUL
#define CKM_SHA512_T 0x00000050UL
#define CKM_SHA512_T_HMAC 0x00000051UL
@ -781,25 +793,25 @@ typedef CK_ULONG CK_MECHANISM_TYPE;
#define CKM_SECURID 0x00000282UL
#define CKM_HOTP_KEY_GEN 0x00000290UL
#define CKM_HOTP 0x00000291UL
#define CKM_ACTI 0x000002A0UL
#define CKM_ACTI_KEY_GEN 0x000002A1UL
#define CKM_ACTI 0x000002a0UL
#define CKM_ACTI_KEY_GEN 0x000002a1UL
#define CKM_SHA3_256 0x000002B0UL
#define CKM_SHA3_256_HMAC 0x000002B1UL
#define CKM_SHA3_256_HMAC_GENERAL 0x000002B2UL
#define CKM_SHA3_256_KEY_GEN 0x000002B3UL
#define CKM_SHA3_224 0x000002B5UL
#define CKM_SHA3_224_HMAC 0x000002B6UL
#define CKM_SHA3_224_HMAC_GENERAL 0x000002B7UL
#define CKM_SHA3_224_KEY_GEN 0x000002B8UL
#define CKM_SHA3_384 0x000002C0UL
#define CKM_SHA3_384_HMAC 0x000002C1UL
#define CKM_SHA3_384_HMAC_GENERAL 0x000002C2UL
#define CKM_SHA3_384_KEY_GEN 0x000002C3UL
#define CKM_SHA3_512 0x000002D0UL
#define CKM_SHA3_512_HMAC 0x000002D1UL
#define CKM_SHA3_512_HMAC_GENERAL 0x000002D2UL
#define CKM_SHA3_512_KEY_GEN 0x000002D3UL
#define CKM_SHA3_256 0x000002b0UL
#define CKM_SHA3_256_HMAC 0x000002b1UL
#define CKM_SHA3_256_HMAC_GENERAL 0x000002b2UL
#define CKM_SHA3_256_KEY_GEN 0x000002b3UL
#define CKM_SHA3_224 0x000002b5UL
#define CKM_SHA3_224_HMAC 0x000002b6UL
#define CKM_SHA3_224_HMAC_GENERAL 0x000002b7UL
#define CKM_SHA3_224_KEY_GEN 0x000002b8UL
#define CKM_SHA3_384 0x000002c0UL
#define CKM_SHA3_384_HMAC 0x000002c1UL
#define CKM_SHA3_384_HMAC_GENERAL 0x000002c2UL
#define CKM_SHA3_384_KEY_GEN 0x000002c3UL
#define CKM_SHA3_512 0x000002d0UL
#define CKM_SHA3_512_HMAC 0x000002d1UL
#define CKM_SHA3_512_HMAC_GENERAL 0x000002d2UL
#define CKM_SHA3_512_KEY_GEN 0x000002d3UL
#define CKM_CAST_KEY_GEN 0x00000300UL
@ -870,9 +882,9 @@ typedef CK_ULONG CK_MECHANISM_TYPE;
#define CKM_SHA3_256_KEY_DERIVATION 0x00000397UL
#define CKM_SHA3_224_KEY_DERIVATION 0x00000398UL
#define CKM_SHA3_384_KEY_DERIVATION 0x00000399UL
#define CKM_SHA3_512_KEY_DERIVATION 0x0000039AUL
#define CKM_SHAKE_128_KEY_DERIVATION 0x0000039BUL
#define CKM_SHAKE_256_KEY_DERIVATION 0x0000039CUL
#define CKM_SHA3_512_KEY_DERIVATION 0x0000039aUL
#define CKM_SHAKE_128_KEY_DERIVATION 0x0000039bUL
#define CKM_SHAKE_256_KEY_DERIVATION 0x0000039cUL
#define CKM_SHA3_256_KEY_DERIVE CKM_SHA3_256_KEY_DERIVATION
#define CKM_SHA3_224_KEY_DERIVE CKM_SHA3_224_KEY_DERIVATION
#define CKM_SHA3_384_KEY_DERIVE CKM_SHA3_384_KEY_DERIVATION
@ -880,40 +892,42 @@ typedef CK_ULONG CK_MECHANISM_TYPE;
#define CKM_SHAKE_128_KEY_DERIVE CKM_SHAKE_128_KEY_DERIVATION
#define CKM_SHAKE_256_KEY_DERIVE CKM_SHAKE_256_KEY_DERIVATION
#define CKM_PBE_MD2_DES_CBC 0x000003A0UL
#define CKM_PBE_MD5_DES_CBC 0x000003A1UL
#define CKM_PBE_MD5_CAST_CBC 0x000003A2UL
#define CKM_PBE_MD5_CAST3_CBC 0x000003A3UL
#define CKM_PBE_MD5_CAST5_CBC 0x000003A4UL /* Deprecated */
#define CKM_PBE_MD5_CAST128_CBC 0x000003A4UL
#define CKM_PBE_SHA1_CAST5_CBC 0x000003A5UL /* Deprecated */
#define CKM_PBE_SHA1_CAST128_CBC 0x000003A5UL
#define CKM_PBE_SHA1_RC4_128 0x000003A6UL
#define CKM_PBE_SHA1_RC4_40 0x000003A7UL
#define CKM_PBE_SHA1_DES3_EDE_CBC 0x000003A8UL
#define CKM_PBE_SHA1_DES2_EDE_CBC 0x000003A9UL
#define CKM_PBE_SHA1_RC2_128_CBC 0x000003AAUL
#define CKM_PBE_SHA1_RC2_40_CBC 0x000003ABUL
#define CKM_PBE_MD2_DES_CBC 0x000003a0UL
#define CKM_PBE_MD5_DES_CBC 0x000003a1UL
#define CKM_PBE_MD5_CAST_CBC 0x000003a2UL
#define CKM_PBE_MD5_CAST3_CBC 0x000003a3UL
#define CKM_PBE_MD5_CAST5_CBC 0x000003a4UL /* Deprecated */
#define CKM_PBE_MD5_CAST128_CBC 0x000003a4UL
#define CKM_PBE_SHA1_CAST5_CBC 0x000003a5UL /* Deprecated */
#define CKM_PBE_SHA1_CAST128_CBC 0x000003a5UL
#define CKM_PBE_SHA1_RC4_128 0x000003a6UL
#define CKM_PBE_SHA1_RC4_40 0x000003a7UL
#define CKM_PBE_SHA1_DES3_EDE_CBC 0x000003a8UL
#define CKM_PBE_SHA1_DES2_EDE_CBC 0x000003a9UL
#define CKM_PBE_SHA1_RC2_128_CBC 0x000003aaUL
#define CKM_PBE_SHA1_RC2_40_CBC 0x000003abUL
#define CKM_PKCS5_PBKD2 0x000003B0UL
#define CKM_PKCS5_PBKD2 0x000003b0UL
#define CKM_PBA_SHA1_WITH_SHA1_HMAC 0x000003C0UL
#define CKM_PBA_SHA1_WITH_SHA1_HMAC 0x000003c0UL
#define CKM_WTLS_PRE_MASTER_KEY_GEN 0x000003D0UL
#define CKM_WTLS_MASTER_KEY_DERIVE 0x000003D1UL
#define CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC 0x000003D2UL
#define CKM_WTLS_PRF 0x000003D3UL
#define CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE 0x000003D4UL
#define CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE 0x000003D5UL
#define CKM_WTLS_PRE_MASTER_KEY_GEN 0x000003d0UL
#define CKM_WTLS_MASTER_KEY_DERIVE 0x000003d1UL
#define CKM_WTLS_MASTER_KEY_DERIVE_DH_ECC 0x000003d2UL
#define CKM_WTLS_PRF 0x000003d3UL
#define CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE 0x000003d4UL
#define CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE 0x000003d5UL
#define CKM_TLS12_MAC 0x000003D8UL
#define CKM_TLS12_KDF 0x000003D9UL
#define CKM_TLS12_MASTER_KEY_DERIVE 0x000003E0UL
#define CKM_TLS12_KEY_AND_MAC_DERIVE 0x000003E1UL
#define CKM_TLS12_MASTER_KEY_DERIVE_DH 0x000003E2UL
#define CKM_TLS12_KEY_SAFE_DERIVE 0x000003E3UL
#define CKM_TLS_MAC 0x000003E4UL
#define CKM_TLS_KDF 0x000003E5UL
#define CKM_TLS10_MAC_SERVER 0x000003d6UL
#define CKM_TLS10_MAC_CLIENT 0x000003d7UL
#define CKM_TLS12_MAC 0x000003d8UL
#define CKM_TLS12_KDF 0x000003d9UL
#define CKM_TLS12_MASTER_KEY_DERIVE 0x000003e0UL
#define CKM_TLS12_KEY_AND_MAC_DERIVE 0x000003e1UL
#define CKM_TLS12_MASTER_KEY_DERIVE_DH 0x000003e2UL
#define CKM_TLS12_KEY_SAFE_DERIVE 0x000003e3UL
#define CKM_TLS_MAC 0x000003e4UL
#define CKM_TLS_KDF 0x000003e5UL
#define CKM_KEY_WRAP_LYNKS 0x00000400UL
#define CKM_KEY_WRAP_SET_OAEP 0x00000401UL
@ -983,7 +997,7 @@ typedef CK_ULONG CK_MECHANISM_TYPE;
#define CKM_ECDSA_SHA256 0x00001044UL
#define CKM_ECDSA_SHA384 0x00001045UL
#define CKM_ECDSA_SHA512 0x00001046UL
#define CKM_EC_KEY_PAIR_GEN_W_EXTRA_BITS 0x0000140BUL
#define CKM_EC_KEY_PAIR_GEN_W_EXTRA_BITS 0x0000140bUL
#define CKM_ECDH1_DERIVE 0x00001050UL
#define CKM_ECDH1_COFACTOR_DERIVE 0x00001051UL
@ -1012,12 +1026,12 @@ typedef CK_ULONG CK_MECHANISM_TYPE;
#define CKM_AES_GCM 0x00001087UL
#define CKM_AES_CCM 0x00001088UL
#define CKM_AES_CTS 0x00001089UL
#define CKM_AES_CMAC 0x0000108AUL
#define CKM_AES_CMAC_GENERAL 0x0000108BUL
#define CKM_AES_CMAC 0x0000108aUL
#define CKM_AES_CMAC_GENERAL 0x0000108bUL
#define CKM_AES_XCBC_MAC 0x0000108CUL
#define CKM_AES_XCBC_MAC_96 0x0000108DUL
#define CKM_AES_GMAC 0x0000108EUL
#define CKM_AES_XCBC_MAC 0x0000108cUL
#define CKM_AES_XCBC_MAC_96 0x0000108dUL
#define CKM_AES_GMAC 0x0000108eUL
#define CKM_BLOWFISH_KEY_GEN 0x00001090UL
#define CKM_BLOWFISH_CBC 0x00001091UL
@ -1066,6 +1080,7 @@ typedef CK_ULONG CK_MECHANISM_TYPE;
#define CKM_AES_KEY_WRAP 0x00002109UL /* WAS: 0x00001090 */
#define CKM_AES_KEY_WRAP_PAD 0x0000210AUL /* WAS: 0x00001091 */
#define CKM_AES_KEY_WRAP_KWP 0x0000210BUL
#define CKM_AES_KEY_WRAP_PKCS7 0x0000210CUL
#define CKM_RSA_PKCS_TPM_1_1 0x00004001UL
#define CKM_RSA_PKCS_OAEP_TPM_1_1 0x00004002UL
@ -1125,6 +1140,14 @@ typedef CK_ULONG CK_MECHANISM_TYPE;
#define CKM_SP800_108_FEEDBACK_KDF 0x000003adUL
#define CKM_SP800_108_DOUBLE_PIPELINE_KDF 0x000003aeUL
#define CKM_IKE2_PRF_PLUS_DERIVE 0x0000402eUL
#define CKM_IKE_PRF_DERIVE 0x0000402fUL
#define CKM_IKE1_PRF_DERIVE 0x00004030UL
#define CKM_IKE1_EXTENDED_DERIVE 0x00004031UL
#define CKM_HSS_KEY_PAIR_GEN 0x00004032UL
#define CKM_HSS 0x00004033UL
#define CKM_VENDOR_DEFINED 0x80000000UL
typedef CK_MECHANISM_TYPE CK_PTR CK_MECHANISM_TYPE_PTR;
@ -1320,6 +1343,7 @@ typedef CK_ULONG CK_RV;
#define CKR_FUNCTION_REJECTED 0x00000200UL
#define CKR_TOKEN_RESOURCE_EXCEEDED 0x00000201UL
#define CKR_OPERATION_CANCEL_FAILED 0x00000202UL
#define CKR_KEY_EXHAUSTED 0x00000203UL
#define CKR_VENDOR_DEFINED 0x80000000UL
@ -1436,6 +1460,7 @@ typedef CK_RSA_PKCS_MGF_TYPE CK_PTR CK_RSA_PKCS_MGF_TYPE_PTR;
#define CKG_MGF1_SHA3_384 0x00000008UL
#define CKG_MGF1_SHA3_512 0x00000009UL
/* CK_RSA_PKCS_OAEP_SOURCE_TYPE is used to indicate the source
* of the encoding parameter when formatting a message block
* for the PKCS #1 OAEP encryption scheme.
@ -1701,8 +1726,7 @@ typedef struct CK_DES_CBC_ENCRYPT_DATA_PARAMS {
CK_ULONG length;
} CK_DES_CBC_ENCRYPT_DATA_PARAMS;
typedef CK_DES_CBC_ENCRYPT_DATA_PARAMS CK_PTR \
CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR;
typedef CK_DES_CBC_ENCRYPT_DATA_PARAMS CK_PTR CK_DES_CBC_ENCRYPT_DATA_PARAMS_PTR;
typedef struct CK_AES_CBC_ENCRYPT_DATA_PARAMS {
CK_BYTE iv[16];
@ -1710,8 +1734,7 @@ typedef struct CK_AES_CBC_ENCRYPT_DATA_PARAMS {
CK_ULONG length;
} CK_AES_CBC_ENCRYPT_DATA_PARAMS;
typedef CK_AES_CBC_ENCRYPT_DATA_PARAMS CK_PTR \
CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR;
typedef CK_AES_CBC_ENCRYPT_DATA_PARAMS CK_PTR CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR;
/* CK_SKIPJACK_PRIVATE_WRAP_PARAMS provides the parameters to the
* CKM_SKIPJACK_PRIVATE_WRAP mechanism
@ -2051,6 +2074,7 @@ typedef CK_ULONG CK_GENERATOR_FUNCTION;
#define CKG_GENERATE 0x00000001UL
#define CKG_GENERATE_COUNTER 0x00000002UL
#define CKG_GENERATE_RANDOM 0x00000003UL
#define CKG_GENERATE_COUNTER_XOR 0x00000004UL
typedef struct CK_GCM_MESSAGE_PARAMS {
CK_BYTE_PTR pIv;
@ -2061,7 +2085,7 @@ typedef struct CK_GCM_MESSAGE_PARAMS {
CK_ULONG ulTagBits;
} CK_GCM_MESSAGE_PARAMS;
typedef CK_GCM_MESSAGE_PARAMS CK_GCM_MESSAGE_PARAMS_PTR;
typedef CK_GCM_MESSAGE_PARAMS CK_PTR CK_GCM_MESSAGE_PARAMS_PTR;
typedef struct CK_CCM_PARAMS {
CK_ULONG ulDataLen;
@ -2084,7 +2108,7 @@ typedef struct CK_CCM_MESSAGE_PARAMS {
CK_ULONG ulMACLen;
} CK_CCM_MESSAGE_PARAMS;
typedef CK_CCM_MESSAGE_PARAMS CK_CCM_MESSAGE_PARAMS_PTR;
typedef CK_CCM_MESSAGE_PARAMS CK_PTR CK_CCM_MESSAGE_PARAMS_PTR;
/* Deprecated. Use CK_GCM_PARAMS */
typedef struct CK_AES_GCM_PARAMS {
@ -2339,7 +2363,6 @@ typedef struct CK_SALSA20_PARAMS {
CK_BYTE_PTR pNonce;
CK_ULONG ulNonceBits;
} CK_SALSA20_PARAMS;
typedef CK_SALSA20_PARAMS CK_PTR CK_SALSA20_PARAMS_PTR;
typedef struct CK_SALSA20_CHACHA20_POLY1305_PARAMS {
@ -2423,6 +2446,7 @@ typedef struct CK_XEDDSA_PARAMS {
} CK_XEDDSA_PARAMS;
typedef CK_XEDDSA_PARAMS CK_PTR CK_XEDDSA_PARAMS_PTR;
/* HKDF params */
typedef struct CK_HKDF_PARAMS {
CK_BBOOL bExtract;
CK_BBOOL bExpand;
@ -2440,5 +2464,60 @@ typedef CK_HKDF_PARAMS CK_PTR CK_HKDF_PARAMS_PTR;
#define CKF_HKDF_SALT_DATA 0x00000002UL
#define CKF_HKDF_SALT_KEY 0x00000004UL
/* HSS */
typedef CK_ULONG CK_HSS_LEVELS;
typedef CK_ULONG CK_LMS_TYPE;
typedef CK_ULONG CK_LMOTS_TYPE;
typedef struct specifiedParams {
CK_HSS_LEVELS levels;
CK_LMS_TYPE lm_type[8];
CK_LMOTS_TYPE lm_ots_type[8];
} specifiedParams;
/* IKE Params */
typedef struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS {
CK_MECHANISM_TYPE prfMechanism;
CK_BBOOL bHasSeedKey;
CK_OBJECT_HANDLE hSeedKey;
CK_BYTE_PTR pSeedData;
CK_ULONG ulSeedDataLen;
} CK_IKE2_PRF_PLUS_DERIVE_PARAMS;
typedef CK_IKE2_PRF_PLUS_DERIVE_PARAMS CK_PTR CK_IKE2_PRF_PLUS_DERIVE_PARAMS_PTR;
typedef struct CK_IKE_PRF_DERIVE_PARAMS {
CK_MECHANISM_TYPE prfMechanism;
CK_BBOOL bDataAsKey;
CK_BBOOL bRekey;
CK_BYTE_PTR pNi;
CK_ULONG ulNiLen;
CK_BYTE_PTR pNr;
CK_ULONG ulNrLen;
CK_OBJECT_HANDLE hNewKey;
} CK_IKE_PRF_DERIVE_PARAMS;
typedef CK_IKE_PRF_DERIVE_PARAMS CK_PTR CK_IKE_PRF_DERIVE_PARAMS_PTR;
typedef struct CK_IKE1_PRF_DERIVE_PARAMS {
CK_MECHANISM_TYPE prfMechanism;
CK_BBOOL bHasPrevKey;
CK_OBJECT_HANDLE hKeygxy;
CK_OBJECT_HANDLE hPrevKey;
CK_BYTE_PTR pCKYi;
CK_ULONG ulCKYiLen;
CK_BYTE_PTR pCKYr;
CK_ULONG ulCKYrLen;
CK_BYTE keyNumber;
} CK_IKE1_PRF_DERIVE_PARAMS;
typedef CK_IKE1_PRF_DERIVE_PARAMS CK_PTR CK_IKE1_PRF_DERIVE_PARAMS_PTR;
typedef struct CK_IKE1_EXTENDED_DERIVE_PARAMS {
CK_MECHANISM_TYPE prfMechanism;
CK_BBOOL bHasKeygxy;
CK_OBJECT_HANDLE hKeygxy;
CK_BYTE_PTR pExtraData;
CK_ULONG ulExtraDataLen;
} CK_IKE1_EXTENDED_DERIVE_PARAMS;
typedef CK_IKE1_EXTENDED_DERIVE_PARAMS CK_PTR CK_IKE1_EXTENDED_DERIVE_PARAMS_PTR;
#endif /* _PKCS11T_H_ */