From 95f64e0c9f30ea8e0712e554418230659dabe1ec Mon Sep 17 00:00:00 2001 From: Ingo Franzki Date: Wed, 16 Feb 2022 13:44:10 +0100 Subject: [PATCH 16/34] COMMON: Add defines for Dilithium round 2 and 3 variants Signed-off-by: Ingo Franzki --- usr/include/pkcs11types.h | 12 ++++++++++-- usr/lib/common/p11util.c | 6 ++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/usr/include/pkcs11types.h b/usr/include/pkcs11types.h index bc53e672..6bf9c1fa 100644 --- a/usr/include/pkcs11types.h +++ b/usr/include/pkcs11types.h @@ -437,6 +437,7 @@ typedef CK_ULONG CK_KEY_TYPE; #ifndef OCK_NO_EP11_DEFINES #define CKK_IBM_PQC_DILITHIUM CKK_VENDOR_DEFINED + 0x10023 #endif +#define CKK_IBM_DILITHIUM CKK_IBM_PQC_DILITHIUM /* CK_CERTIFICATE_TYPE is a value that identifies a certificate * type */ @@ -594,8 +595,15 @@ typedef CK_ULONG CK_ATTRIBUTE_TYPE; #define CKA_IBM_PROTKEY_NEVER_EXTRACTABLE (CKA_VENDOR_DEFINED +0x1000d) #define CKA_IBM_OPAQUE_PKEY (CKA_VENDOR_DEFINED + 0xd0100) -/* For Dilithium, oid = 1.3.6.1.4.1.2.267.1.6.5 */ -#define IBM_DILITHIUM_KEYFORM_ROUND2 1 +#define CK_IBM_DILITHIUM_KEYFORM_ROUND2_65 1 +#define CK_IBM_DILITHIUM_KEYFORM_ROUND2_87 2 +#define CK_IBM_DILITHIUM_KEYFORM_ROUND3_44 3 +#define CK_IBM_DILITHIUM_KEYFORM_ROUND3_65 4 +#define CK_IBM_DILITHIUM_KEYFORM_ROUND3_87 5 + +#define IBM_DILITHIUM_KEYFORM_ROUND2 CK_IBM_DILITHIUM_KEYFORM_ROUND2_65 + +#define CKA_IBM_DILITHIUM_MODE (CKA_VENDOR_DEFINED + 0x00010) #define CKA_IBM_DILITHIUM_KEYFORM (CKA_VENDOR_DEFINED + 0xd0001) #define CKA_IBM_DILITHIUM_RHO (CKA_VENDOR_DEFINED + 0xd0002) diff --git a/usr/lib/common/p11util.c b/usr/lib/common/p11util.c index 4ef33306..f3a031e3 100644 --- a/usr/lib/common/p11util.c +++ b/usr/lib/common/p11util.c @@ -123,6 +123,10 @@ const char *p11_get_ckr(CK_RV rc) } } +#ifndef CKA_IBM_PQC_PARAMS +#define CKA_IBM_PQC_PARAMS (CKA_VENDOR_DEFINED +0x1000e) +#endif + // // p11_get_cka - return textual interpretation of an attribute type // only simple types - no arrays. For unknown a ptr to a static @@ -221,6 +225,7 @@ const char *p11_get_cka(CK_ATTRIBUTE_TYPE atype) _sym2str(CKA_IBM_PROTKEY_NEVER_EXTRACTABLE); _sym2str(CKA_IBM_OPAQUE_PKEY); _sym2str(CKA_IBM_DILITHIUM_KEYFORM); + _sym2str(CKA_IBM_DILITHIUM_MODE); _sym2str(CKA_IBM_DILITHIUM_RHO); _sym2str(CKA_IBM_DILITHIUM_SEED); _sym2str(CKA_IBM_DILITHIUM_TR); @@ -228,6 +233,7 @@ const char *p11_get_cka(CK_ATTRIBUTE_TYPE atype) _sym2str(CKA_IBM_DILITHIUM_S2); _sym2str(CKA_IBM_DILITHIUM_T0); _sym2str(CKA_IBM_DILITHIUM_T1); + _sym2str(CKA_IBM_PQC_PARAMS); default: sprintf(buf, "unknown attribute type 0x%08lx", atype); return buf; -- 2.16.2.windows.1