Skip to content

Commit 55946d5

Browse files
committed
Add support for PKCS#11 version 3.2
1 parent ee16b95 commit 55946d5

3 files changed

Lines changed: 312 additions & 1 deletion

File tree

wolfcrypt/src/wc_pkcs11.c

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,9 +483,14 @@ int wc_Pkcs11_Initialize_v3(Pkcs11Dev* dev, const char* library,
483483
CK_C_INITIALIZE_ARGS args;
484484
CK_VERSION_PTR version_ptr = NULL;
485485

486-
if (dev == NULL || library == NULL)
486+
if (dev == NULL)
487487
ret = BAD_FUNC_ARG;
488488

489+
#if !defined(HAVE_PKCS11_STATIC) && !defined(HAVE_PKCS11_V3_STATIC)
490+
if (library == NULL)
491+
ret = BAD_FUNC_ARG;
492+
#endif
493+
489494
if (ret == 0) {
490495
dev->heap = heap;
491496
#if defined(HAVE_PKCS11_V3_STATIC)
@@ -509,6 +514,10 @@ int wc_Pkcs11_Initialize_v3(Pkcs11Dev* dev, const char* library,
509514
pkcs11_version.major = 3;
510515
pkcs11_version.minor = 1;
511516
}
517+
else if (*version == WC_PCKS11VERSION_3_2) {
518+
pkcs11_version.major = 3;
519+
pkcs11_version.minor = 2;
520+
}
512521
version_ptr = &pkcs11_version;
513522
}
514523
else {
@@ -536,6 +545,10 @@ int wc_Pkcs11_Initialize_v3(Pkcs11Dev* dev, const char* library,
536545
version_ptr->minor == 1) {
537546
dev->version = WC_PCKS11VERSION_3_1;
538547
}
548+
else if (version_ptr->major == 3 &&
549+
version_ptr->minor == 2) {
550+
dev->version = WC_PCKS11VERSION_3_2;
551+
}
539552
else {
540553
WOLFSSL_MSG_EX("Unsupported PKCS#11 version: %d.%d",
541554
version_ptr->major, version_ptr->minor);
@@ -603,6 +616,10 @@ int wc_Pkcs11_Initialize_v3(Pkcs11Dev* dev, const char* library,
603616
pkcs11_version.major = 3;
604617
pkcs11_version.minor = 1;
605618
}
619+
else if (*version == WC_PCKS11VERSION_3_2) {
620+
pkcs11_version.major = 3;
621+
pkcs11_version.minor = 2;
622+
}
606623
version_ptr = &pkcs11_version;
607624
}
608625
else {
@@ -629,6 +646,10 @@ int wc_Pkcs11_Initialize_v3(Pkcs11Dev* dev, const char* library,
629646
version_ptr->minor == 1) {
630647
dev->version = WC_PCKS11VERSION_3_1;
631648
}
649+
else if (version_ptr->major == 3 &&
650+
version_ptr->minor == 2) {
651+
dev->version = WC_PCKS11VERSION_3_2;
652+
}
632653
else {
633654
WOLFSSL_MSG_EX("Unsupported PKCS#11 version: %d.%d",
634655
version_ptr->major, version_ptr->minor);

0 commit comments

Comments
 (0)