Skip to content

Commit e8731f6

Browse files
committed
Import PKCS#11 3.1 headers
Signed-off-by: Jakub Jelen <[email protected]>
1 parent 029c1ba commit e8731f6

File tree

2 files changed

+74
-12
lines changed

2 files changed

+74
-12
lines changed

cryptoki-sys/vendor/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Vendor
22

3-
This is downloaded from https://github.com/latchset/pkcs11-headers/blob/b131b9e4599db6e0287a3d74f6768e08a0c82d23/public-domain/3.0/pkcs11.h:
3+
This is downloaded from https://github.com/latchset/pkcs11-headers/blob/b131b9e4599db6e0287a3d74f6768e08a0c82d23/public-domain/3.1/pkcs11.h:
44

55
```shell
6-
wget https://raw.githubusercontent.com/latchset/pkcs11-headers/b131b9e4599db6e0287a3d74f6768e08a0c82d23/public-domain/3.0/pkcs11.h
7-
```
6+
wget https://raw.githubusercontent.com/latchset/pkcs11-headers/0ecf659eaa743472192bf3af2579144c5f8c053f/public-domain/3.1/pkcs11.h
7+
```

cryptoki-sys/vendor/pkcs11.h

Lines changed: 71 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,9 @@
44
#define _PD_PKCS11_
55

66
#define CRYPTOKI_VERSION_MAJOR 3
7-
#define CRYPTOKI_VERSION_MINOR 0
7+
#define CRYPTOKI_VERSION_MINOR 1
88
#define CRYPTOKI_VERSION_AMENDMENT 0
99

10-
#if defined(_WIN32) || defined(CRYPTOKI_FORCE_WIN32)
11-
#pragma pack(push, cryptoki, 1)
12-
#endif
13-
1410
/* Basic types */
1511
typedef unsigned char CK_BBOOL;
1612
typedef unsigned char CK_BYTE;
@@ -47,9 +43,12 @@ ULONGDEF(CK_EC_KDF_TYPE);
4743
ULONGDEF(CK_EXTRACT_PARAMS);
4844
ULONGDEF(CK_FLAGS);
4945
ULONGDEF(CK_GENERATOR_FUNCTION);
46+
ULONGDEF(CK_HSS_LEVELS);
5047
ULONGDEF(CK_HW_FEATURE_TYPE);
5148
ULONGDEF(CK_JAVA_MIDP_SECURITY_DOMAIN);
5249
ULONGDEF(CK_KEY_TYPE);
50+
ULONGDEF(CK_LMS_TYPE);
51+
ULONGDEF(CK_LMOTS_TYPE);
5352
ULONGDEF(CK_MAC_GENERAL_PARAMS);
5453
ULONGDEF(CK_MECHANISM_TYPE);
5554
ULONGDEF(CK_NOTIFICATION);
@@ -240,6 +239,12 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE);
240239
#define CKA_X2RATCHET_NS 0x00000610UL
241240
#define CKA_X2RATCHET_PNS 0x00000611UL
242241
#define CKA_X2RATCHET_RK 0x00000612UL
242+
#define CKA_HSS_LEVELS 0x00000617UL
243+
#define CKA_HSS_LMS_TYPE 0x00000618UL
244+
#define CKA_HSS_LMOTS_TYPE 0x00000619UL
245+
#define CKA_HSS_LMS_TYPES 0x0000061AUL
246+
#define CKA_HSS_LMOTS_TYPES 0x0000061BUL
247+
#define CKA_HSS_KEYS_REMAINING 0x0000061CUL
243248
#define CKA_VENDOR_DEFINED 0x80000000UL
244249
/* Array attributes */
245250
#define CKA_WRAP_TEMPLATE 0x40000211UL
@@ -385,6 +390,7 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE);
385390
#define CKG_GENERATE 0x00000001UL
386391
#define CKG_GENERATE_COUNTER 0x00000002UL
387392
#define CKG_GENERATE_RANDOM 0x00000003UL
393+
#define CKG_GENERATE_COUNTER_XOR 0x00000004UL
388394

389395
/* CKG (MFG) */
390396
#define CKG_MGF1_SHA1 0x00000001UL
@@ -464,6 +470,7 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE);
464470
#define CKK_SHA512_224_HMAC 0x00000043UL
465471
#define CKK_SHA512_256_HMAC 0x00000044UL
466472
#define CKK_SHA512_T_HMAC 0x00000045UL
473+
#define CKK_HSS 0x00000046UL
467474
#define CKK_VENDOR_DEFINED 0x80000000UL
468475
/* Deprecated */
469476
#ifdef PKCS11_DEPRECATED
@@ -844,6 +851,7 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE);
844851
#define CKM_AES_KEY_WRAP 0x00002109UL
845852
#define CKM_AES_KEY_WRAP_PAD 0x0000210AUL
846853
#define CKM_AES_KEY_WRAP_KWP 0x0000210BUL
854+
#define CKM_AES_KEY_WRAP_PKCS7 0x0000210CUL
847855
#define CKM_RSA_PKCS_TPM_1_1 0x00004001UL
848856
#define CKM_RSA_PKCS_OAEP_TPM_1_1 0x00004002UL
849857
#define CKM_SHA_1_KEY_GEN 0x00004003UL
@@ -899,6 +907,12 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE);
899907
#define CKM_SP800_108_COUNTER_KDF 0x000003ACUL
900908
#define CKM_SP800_108_FEEDBACK_KDF 0x000003ADUL
901909
#define CKM_SP800_108_DOUBLE_PIPELINE_KDF 0x000003AEUL
910+
#define CKM_IKE2_PRF_PLUS_DERIVE 0x0000402EUL
911+
#define CKM_IKE_PRF_DERIVE 0x0000402FUL
912+
#define CKM_IKE1_PRF_DERIVE 0x00004030UL
913+
#define CKM_IKE1_EXTENDED_DERIVE 0x00004031UL
914+
#define CKM_HSS_KEY_PAIR_GEN 0x00004032UL
915+
#define CKM_HSS 0x00004033UL
902916
#define CKM_VENDOR_DEFINED 0x80000000UL
903917
/* Deprecated */
904918
#ifdef PKCS11_DEPRECATED
@@ -935,6 +949,8 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE);
935949
#define CKP_EXTENDED_PROVIDER 0x00000002UL
936950
#define CKP_AUTHENTICATION_TOKEN 0x00000003UL
937951
#define CKP_PUBLIC_CERTIFICATES_TOKEN 0x00000004UL
952+
#define CKP_COMPLETE_PROVIDER 0x00000005UL
953+
#define CKP_HKDF_TLS_TOKEN 0x00000006UL
938954
#define CKP_VENDOR_DEFINED 0x80000000UL
939955

940956
/* CKP (PBKD2) */
@@ -1045,6 +1061,7 @@ ULONGDEF(CK_XEDDSA_HASH_TYPE);
10451061
#define CKR_FUNCTION_REJECTED 0x00000200UL
10461062
#define CKR_TOKEN_RESOURCE_EXCEEDED 0x00000201UL
10471063
#define CKR_OPERATION_CANCEL_FAILED 0x00000202UL
1064+
#define CKR_KEY_EXHAUSTED 0x00000203UL
10481065
#define CKR_VENDOR_DEFINED 0x80000000UL
10491066

10501067

@@ -1215,6 +1232,10 @@ STRUCTDEF(CK_GCM_PARAMS);
12151232
STRUCTDEF(CK_GOSTR3410_DERIVE_PARAMS);
12161233
STRUCTDEF(CK_GOSTR3410_KEY_WRAP_PARAMS);
12171234
STRUCTDEF(CK_HKDF_PARAMS);
1235+
STRUCTDEF(CK_IKE_PRF_DERIVE_PARAMS);
1236+
STRUCTDEF(CK_IKE1_EXTENDED_DERIVE_PARAMS);
1237+
STRUCTDEF(CK_IKE1_PRF_DERIVE_PARAMS);
1238+
STRUCTDEF(CK_IKE2_PRF_PLUS_DERIVE_PARAMS);
12181239
STRUCTDEF(CK_KEA_DERIVE_PARAMS);
12191240
STRUCTDEF(CK_KEY_DERIVATION_STRING_DATA);
12201241
STRUCTDEF(CK_KEY_WRAP_SET_OAEP_PARAMS);
@@ -1442,6 +1463,45 @@ struct CK_HKDF_PARAMS {
14421463
CK_ULONG ulInfoLen;
14431464
};
14441465

1466+
struct CK_IKE_PRF_DERIVE_PARAMS {
1467+
CK_MECHANISM_TYPE prfMechanism;
1468+
CK_BBOOL bDataAsKey;
1469+
CK_BBOOL bRekey;
1470+
CK_BYTE * pNi;
1471+
CK_ULONG ulNiLen;
1472+
CK_BYTE * pNr;
1473+
CK_ULONG ulNrLen;
1474+
CK_OBJECT_HANDLE hNewKey;
1475+
};
1476+
1477+
struct CK_IKE1_EXTENDED_DERIVE_PARAMS {
1478+
CK_MECHANISM_TYPE prfMechanism;
1479+
CK_BBOOL bHasKeygxy;
1480+
CK_OBJECT_HANDLE hKeygxy;
1481+
CK_BYTE * pExtraData;
1482+
CK_ULONG ulExtraDataLen;
1483+
};
1484+
1485+
struct CK_IKE1_PRF_DERIVE_PARAMS {
1486+
CK_MECHANISM_TYPE prfMechanism;
1487+
CK_BBOOL bHasPrevKey;
1488+
CK_OBJECT_HANDLE hKeygxy;
1489+
CK_OBJECT_HANDLE hPrevKey;
1490+
CK_BYTE * pCKYi;
1491+
CK_ULONG ulCKYiLen;
1492+
CK_BYTE * pCKYr;
1493+
CK_ULONG ulCKYrLen;
1494+
CK_BYTE keyNumber;
1495+
};
1496+
1497+
struct CK_IKE2_PRF_PLUS_DERIVE_PARAMS {
1498+
CK_MECHANISM_TYPE prfMechanism;
1499+
CK_BBOOL bHasSeedKey;
1500+
CK_OBJECT_HANDLE hSeedKey;
1501+
CK_BYTE * pSeedData;
1502+
CK_ULONG ulSeedDataLen;
1503+
};
1504+
14451505
struct CK_KEA_DERIVE_PARAMS {
14461506
CK_BBOOL isSender;
14471507
CK_ULONG ulRandomLen;
@@ -1738,6 +1798,12 @@ struct CK_XEDDSA_PARAMS {
17381798
CK_XEDDSA_HASH_TYPE hash;
17391799
};
17401800

1801+
struct specifiedParams {
1802+
CK_HSS_LEVELS levels;
1803+
CK_LMS_TYPE lm_type[8];
1804+
CK_LMOTS_TYPE lm_ots_type[8];
1805+
};
1806+
17411807
/* TLS related structure definitions */
17421808
STRUCTDEF(CK_SSL3_KEY_MAT_OUT);
17431809
STRUCTDEF(CK_SSL3_KEY_MAT_PARAMS);
@@ -2342,8 +2408,4 @@ struct CK_FUNCTION_LIST {
23422408
};
23432409

23442410

2345-
#if defined(_WIN32) || defined(CRYPTOKI_FORCE_WIN32)
2346-
#pragma pack(pop, cryptoki)
2347-
#endif
2348-
23492411
#endif

0 commit comments

Comments
 (0)