57 lines
2.3 KiB
Diff
57 lines
2.3 KiB
Diff
From a431e3742a1bdac515d0b491e77caeeb44720354 Mon Sep 17 00:00:00 2001
|
|
From: Ingo Franzki <ifranzki@linux.ibm.com>
|
|
Date: Tue, 1 Feb 2022 13:50:18 +0100
|
|
Subject: [PATCH 1/2] EP11: Dilithium: Specify OID of key strength at key
|
|
generation
|
|
|
|
Newer EP11 firmware versions require that the OID of the desired
|
|
Dilithium key strength is specified with attribute CKA_IBM_PQC_PARAMS
|
|
at key generation. Older firmware versions ignore this attribute.
|
|
|
|
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
|
|
---
|
|
usr/lib/ep11_stdll/ep11_specific.c | 20 ++++++++++++++++++++
|
|
1 file changed, 20 insertions(+)
|
|
|
|
diff --git a/usr/lib/ep11_stdll/ep11_specific.c b/usr/lib/ep11_stdll/ep11_specific.c
|
|
index 75fd46a5..4ca9678a 100644
|
|
--- a/usr/lib/ep11_stdll/ep11_specific.c
|
|
+++ b/usr/lib/ep11_stdll/ep11_specific.c
|
|
@@ -6347,6 +6347,8 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t * tokdata,
|
|
CK_ULONG new_publ_attrs_len = 0, new_priv_attrs_len = 0;
|
|
CK_ATTRIBUTE *new_publ_attrs2 = NULL, *new_priv_attrs2 = NULL;
|
|
CK_ULONG new_publ_attrs2_len = 0, new_priv_attrs2_len = 0;
|
|
+ const CK_BYTE dilithium_oid[] = { 0x06, 0x0b, 0x2b, 0x06, 0x01, 0x04, 0x01,
|
|
+ 0x02, 0x82, 0x0b, 0x01, 0x06, 0x05 };
|
|
|
|
UNUSED(h);
|
|
|
|
@@ -6371,6 +6373,24 @@ static CK_RV ibm_dilithium_generate_keypair(STDLL_TokData_t * tokdata,
|
|
goto error;
|
|
}
|
|
|
|
+ rc = add_to_attribute_array(&new_publ_attrs, &new_publ_attrs_len,
|
|
+ CKA_IBM_PQC_PARAMS, (CK_BYTE *)dilithium_oid,
|
|
+ sizeof(dilithium_oid));
|
|
+ if (rc != CKR_OK) {
|
|
+ TRACE_ERROR("%s add_to_attribute_array failed with rc=0x%lx\n",
|
|
+ __func__, rc);
|
|
+ goto error;
|
|
+ }
|
|
+
|
|
+ rc = add_to_attribute_array(&new_priv_attrs, &new_priv_attrs_len,
|
|
+ CKA_IBM_PQC_PARAMS,(CK_BYTE *)dilithium_oid,
|
|
+ sizeof(dilithium_oid));
|
|
+ if (rc != CKR_OK) {
|
|
+ TRACE_ERROR("%s add_to_attribute_array failed with rc=0x%lx\n",
|
|
+ __func__, rc);
|
|
+ goto error;
|
|
+ }
|
|
+
|
|
rc = check_key_attributes(tokdata, ktype, CKO_PUBLIC_KEY,
|
|
new_publ_attrs, new_publ_attrs_len,
|
|
&new_publ_attrs2, &new_publ_attrs2_len, -1);
|
|
--
|
|
2.16.2.windows.1
|
|
|