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 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() 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);