From e58fcb17958908819954fccb351231aa4b1d5cd9 Mon Sep 17 00:00:00 2001 From: Aveen Ismail Date: Tue, 27 Aug 2024 12:39:49 +0200 Subject: [PATCH] Remove unnecessary length check --- ykcs11/objects.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/ykcs11/objects.c b/ykcs11/objects.c index da653c3a..dcd854fc 100644 --- a/ykcs11/objects.c +++ b/ykcs11/objects.c @@ -2420,6 +2420,19 @@ CK_RV check_create_rsa_key(CK_ATTRIBUTE_PTR templ, CK_ULONG n, CK_BYTE_PTR id, } break; + case CKA_MODULUS_BITS: + switch(*(CK_ULONG_PTR)templ[i].pValue) { + case 1024: + case 2048: + case 3072: + case 4096: + break; + default: + DBG("Unsupported MODULUS_BITS (key length)"); + return CKR_ATTRIBUTE_VALUE_INVALID; + } + break; + case CKA_PRIME_1: has_p = CK_TRUE; *p = (CK_BYTE_PTR)templ[i].pValue; @@ -2616,17 +2629,6 @@ CK_RV check_create_rsa_key(CK_ATTRIBUTE_PTR templ, CK_ULONG n, CK_BYTE_PTR id, return CKR_TEMPLATE_INCOMPLETE; } - if (*p_len != 64 && *p_len != 128 && *p_len != 192 && *p_len != 256) { - DBG("Invalid RSA component lengths"); - return CKR_ATTRIBUTE_VALUE_INVALID; - } - - if (*q_len != *p_len || *dp_len > *p_len || - *dq_len > *p_len || *qinv_len > *p_len) { - DBG("Invalid RSA component lengths"); - return CKR_ATTRIBUTE_VALUE_INVALID; - } - return CKR_OK; }