From ea02fea3efe0b51e101f0564c1260b0b1cd61301 Mon Sep 17 00:00:00 2001 From: Juliusz Sosinowicz Date: Wed, 5 Jun 2024 13:23:45 +0200 Subject: [PATCH 1/3] opensslv: include version.h for libwolfssl hex symbol --- wolfssl/openssl/opensslv.h | 1 + 1 file changed, 1 insertion(+) diff --git a/wolfssl/openssl/opensslv.h b/wolfssl/openssl/opensslv.h index 57404c928..f68b6cafb 100644 --- a/wolfssl/openssl/opensslv.h +++ b/wolfssl/openssl/opensslv.h @@ -25,6 +25,7 @@ #define WOLFSSL_OPENSSLV_H_ #include +#include #if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) From 72243300bf6206d7a13d7c93d36d1cda3d58a180 Mon Sep 17 00:00:00 2001 From: Juliusz Sosinowicz Date: Wed, 5 Jun 2024 13:31:07 +0200 Subject: [PATCH 2/3] HMAC: fix signature --- src/ssl_crypto.c | 2 +- wolfssl/openssl/hmac.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ssl_crypto.c b/src/ssl_crypto.c index d202e9b1e..5a05324c3 100644 --- a/src/ssl_crypto.c +++ b/src/ssl_crypto.c @@ -1966,7 +1966,7 @@ int wolfSSL_HMAC_cleanup(WOLFSSL_HMAC_CTX* ctx) * @return NULL on failure. */ unsigned char* wolfSSL_HMAC(const WOLFSSL_EVP_MD* evp_md, const void* key, - int key_len, const unsigned char* data, int len, unsigned char* md, + int key_len, const unsigned char* data, size_t len, unsigned char* md, unsigned int* md_len) { unsigned char* ret = NULL; diff --git a/wolfssl/openssl/hmac.h b/wolfssl/openssl/hmac.h index 427a3d652..818c8609c 100644 --- a/wolfssl/openssl/hmac.h +++ b/wolfssl/openssl/hmac.h @@ -45,7 +45,7 @@ WOLFSSL_API unsigned char* wolfSSL_HMAC(const WOLFSSL_EVP_MD* evp_md, const void* key, int key_len, - const unsigned char* d, int n, unsigned char* md, + const unsigned char* d, size_t n, unsigned char* md, unsigned int* md_len); WOLFSSL_API WOLFSSL_HMAC_CTX* wolfSSL_HMAC_CTX_new(void); @@ -69,7 +69,7 @@ WOLFSSL_API const WOLFSSL_EVP_MD *wolfSSL_HMAC_CTX_get_md(const WOLFSSL_HMAC_CTX typedef struct WOLFSSL_HMAC_CTX HMAC_CTX; -#define HMAC(a,b,c,d,e,f,g) wolfSSL_HMAC((a),(b),(c),(d),(e),(f),(g)) +#define HMAC wolfSSL_HMAC #define HMAC_CTX_new wolfSSL_HMAC_CTX_new #define HMAC_CTX_init wolfSSL_HMAC_CTX_Init From b3e795c4a532c68cab2277954be2e5683c2426a3 Mon Sep 17 00:00:00 2001 From: Juliusz Sosinowicz Date: Wed, 5 Jun 2024 14:52:15 +0200 Subject: [PATCH 3/3] Add jwt-cpp action --- .github/workflows/jwt-cpp.yml | 85 +++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 .github/workflows/jwt-cpp.yml diff --git a/.github/workflows/jwt-cpp.yml b/.github/workflows/jwt-cpp.yml new file mode 100644 index 000000000..a76d8a105 --- /dev/null +++ b/.github/workflows/jwt-cpp.yml @@ -0,0 +1,85 @@ +name: jwt-cpp Tests + +# START OF COMMON SECTION +on: + push: + branches: [ 'master', 'main', 'release/**' ] + pull_request: + branches: [ '*' ] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true +# END OF COMMON SECTION + +jobs: + build_wolfssl: + name: Build wolfSSL + # Just to keep it the same as the testing target + runs-on: ubuntu-latest + # This should be a safe limit for the tests to run. + timeout-minutes: 4 + steps: + - name: Build wolfSSL + uses: wolfSSL/actions-build-autotools-project@v1 + with: + path: wolfssl + configure: --enable-all + install: true + # Don't run tests as this config is tested in many other places + check: false + + - name: Upload built lib + uses: actions/upload-artifact@v4 + with: + name: wolf-install-jwt-cpp + path: build-dir + retention-days: 5 + + build_pam-ipmi: + strategy: + fail-fast: false + matrix: + ref: [ 0.6.0 ] + name: ${{ matrix.ref }} + runs-on: ubuntu-latest + needs: build_wolfssl + steps: + - name: Install dependencies + run: | + # Don't prompt for anything + export DEBIAN_FRONTEND=noninteractive + sudo apt-get update + sudo apt-get install libgtest-dev + + - name: Download lib + uses: actions/download-artifact@v4 + with: + name: wolf-install-jwt-cpp + path: build-dir + + - name: Checkout OSP + uses: actions/checkout@v4 + with: + repository: wolfssl/osp + path: osp + + - name: Checkout jwt-cpp + uses: actions/checkout@v4 + with: + repository: Thalhammer/jwt-cpp + path: jwt-cpp + ref: v${{ matrix.ref }} + + - name: Build pam-ipmi + working-directory: jwt-cpp + run: | + patch -p1 < ../osp/jwt-cpp/${{ matrix.ref }}.patch + PKG_CONFIG_PATH=$GITHUB_WORKSPACE/build-dir/lib/pkgconfig \ + cmake -B build -DJWT_SSL_LIBRARY:STRING=wolfSSL -DJWT_BUILD_TESTS=ON . + make -j -C build + ldd ./build/tests/jwt-cpp-test | grep wolfssl + + - name: Run jwt-cpp tests + working-directory: jwt-cpp + run: ./build/tests/jwt-cpp-test