From 6d98347570aee370f1b0876df7ff702147d34c68 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Mon, 3 Aug 2026 16:23:43 -0400 Subject: [PATCH 1/3] Install options.h from cmake install --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index bf4ada64..2d6a09a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1003,4 +1003,6 @@ if(WOLFPKCS11_INSTALL) DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/wolfpkcs11 FILES_MATCHING PATTERN "*.h" REGEX ${EXCLUDED_HEADERS_REGEX} EXCLUDE) + install(FILES ${OPTION_FILE} + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/wolfpkcs11) endif() From 5d6a7b36e6e2c7c0889ea9eb6e7afece6a65381b Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Mon, 3 Aug 2026 16:42:35 -0400 Subject: [PATCH 2/3] Fix CK struct packing for Windows builds --- wolfpkcs11/pkcs11.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/wolfpkcs11/pkcs11.h b/wolfpkcs11/pkcs11.h index 87668905..9d088181 100644 --- a/wolfpkcs11/pkcs11.h +++ b/wolfpkcs11/pkcs11.h @@ -523,6 +523,12 @@ typedef CK_ULONG CK_CERTIFICATE_TYPE; typedef CK_ULONG CK_RV; +/* PKCS#11 on Windows uses 1-byte struct packing; see issue 208. */ +#if defined(_WIN32) && !defined(WOLFPKCS11_NO_PACKED_STRUCTS) + #pragma pack(push, 1) +#endif + + typedef struct CK_VERSION { CK_BYTE major; CK_BYTE minor; @@ -1941,6 +1947,10 @@ struct CK_FUNCTION_LIST_3_2 { CK_ULONG ulID, CK_BYTE_PTR pData, CK_ULONG ulData); }; +#if defined(_WIN32) && !defined(WOLFPKCS11_NO_PACKED_STRUCTS) + #pragma pack(pop) +#endif + /* Debug control functions */ #ifdef DEBUG_WOLFPKCS11 WP11_API void wolfPKCS11_Debugging_On(void); From 70dea43f14e98ef3d5a0ab9752360ca8d34654c1 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Tue, 4 Aug 2026 10:23:16 -0400 Subject: [PATCH 3/3] Fix github workflow step names --- .github/workflows/build-workflow.yml | 4 ++-- .github/workflows/wolfssl-v5.6.6-build-workflow.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-workflow.yml b/.github/workflows/build-workflow.yml index 9741730b..124e063c 100644 --- a/.github/workflows/build-workflow.yml +++ b/.github/workflows/build-workflow.yml @@ -37,7 +37,7 @@ jobs: run: | ./configure --enable-cryptocb --enable-aescfb --enable-rsapss --enable-keygen --enable-pwdbased --enable-scrypt --enable-md5 \ --enable-mldsa --enable-lms=verify-only --enable-xmss=verify-only C_EXTRA_FLAGS="-DWOLFSSL_PUBLIC_MP -DWC_RSA_DIRECT -DHAVE_AES_ECB -DHAVE_AES_KEYWRAP" - - name: wolfssl make install + - name: wolfssl make working-directory: ./wolfssl run: make - name: wolfssl make install @@ -69,7 +69,7 @@ jobs: working-directory: ./wolftpm run: | ./configure --enable-swtpm - - name: wolftpm make install + - name: wolftpm make working-directory: ./wolftpm run: make - name: wolftpm make install diff --git a/.github/workflows/wolfssl-v5.6.6-build-workflow.yml b/.github/workflows/wolfssl-v5.6.6-build-workflow.yml index d3a9ebed..27c72342 100644 --- a/.github/workflows/wolfssl-v5.6.6-build-workflow.yml +++ b/.github/workflows/wolfssl-v5.6.6-build-workflow.yml @@ -58,7 +58,7 @@ jobs: run: | ./configure --enable-aescfb --enable-rsapss --enable-keygen --enable-pwdbased --enable-scrypt \ C_EXTRA_FLAGS="-DWOLFSSL_PUBLIC_MP -DWC_RSA_DIRECT -DHAVE_AES_ECB -DHAVE_AES_KEYWRAP" - - name: wolfssl make install + - name: wolfssl make if: steps.cache-wolfssl.outputs.cache-hit != 'true' working-directory: ./wolfssl run: make