ci: add more jobs to ci (#92)
* build: simplify depenencies
* chore: fetch content for mbedtls
* chore: do not run cbor tests
* fix: typos
* build: use source dir from mbedtls
* chore: only export targets on demand
* ci: add more jobs to ci
* build: only add fatal warnings to lib, not dependencies
* chore: install cmake and openssl
* chore: install openssl on windows
* ci: only use ubuntu
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index b19263a..1254917 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -1,12 +1,68 @@
name: CMake
-on: [push]
+on: [push, pull_request]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
+ # os: [ubuntu-18.04, windows-2019, macos-10.15]
+ os: [ubuntu-18.04]
+ USE_MBEDTLS: ["ON", "OFF"]
+ USE_CONTEXT: ["ON", "OFF"]
+ CMAKE_OPTIONS:
+ [
+ "-DCOSE_C_INCLUDE_ENCRYPT=ON -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF",
+ "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=ON -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF",
+ "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=ON -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF",
+ "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=ON -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF",
+ "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=ON -DCOSE_C_INCLUDE_SIGN1=OFF",
+ "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=ON",
+ ]
+
+ steps:
+ - uses: actions/checkout@v1
+ - name: setup (linux)
+ if: startsWith(matrix.os, 'ubuntu')
+ run: |
+ sudo apt install cmake-data
+
+ # - name: setup (mac)
+ # if: startsWith(matrix.os, 'macos')
+ # run: |
+ # brew update
+ # brew upgrade
+ # brew install cmake openssl
+
+ # - name: setup (windows)
+ # if: startsWith(matrix.os, 'windows')
+ # run: |
+ # choco install openssl cmake
+
+ - name: Create Build directory
+ run: cmake -E make_directory ${{runner.workspace}}/build
+
+ - name: Configure CMake
+ shell: bash
+ working-directory: ${{runner.workspace}}/build
+ run: |
+ cmake $GITHUB_WORKSPACE \
+ -DCOSE_C_USE_CONTEXT=${{matrix.USE_CONTEXT}} \
+ -DCOSE_C_BUILD_DOCS=OFF \
+ -DCOSE_C_BUILD_TESTS=ON \
+ ${{matrix.CMAKE_OPTIONS}} \
+ -DCOSE_C_USE_MBEDTLS=${{matrix.USE_MBEDTLS}}
+
+ - name: Build
+ working-directory: ${{runner.workspace}}/build
+ shell: bash
+ run: cmake --build .
+
+ clang-tidy:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
os: [ubuntu-latest]
USE_MBEDTLS: ["ON", "OFF"]
USE_CONTEXT: ["ON", "OFF"]
diff --git a/src/SignerInfo.c b/src/SignerInfo.c
index 45090e9..8898916 100644
--- a/src/SignerInfo.c
+++ b/src/SignerInfo.c
@@ -286,19 +286,16 @@
bool _COSE_Signer_validate(COSE_SignMessage * pSign, COSE_SignerInfo * pSigner, const cn_cbor * pcborBody, const cn_cbor * pcborProtected, cose_errback * perr)
{
byte * pbToBeSigned = NULL;
- int alg;
- const cn_cbor * cn = NULL;
+ int alg = 0;
#ifdef USE_CBOR_CONTEXT
- cn_cbor_context * context = NULL;
+ cn_cbor_context * context = &pSign->m_message.m_allocContext;
+#else
+ UNUSED(pSign);
#endif
size_t cbToBeSigned;
bool fRet = false;
-#ifdef USE_CBOR_CONTEXT
- context = &pSign->m_message.m_allocContext;
-#endif
-
- cn = _COSE_map_get_int(&pSigner->m_message, COSE_Header_Algorithm, COSE_BOTH, perr);
+ const cn_cbor * cn = _COSE_map_get_int(&pSigner->m_message, COSE_Header_Algorithm, COSE_BOTH, perr);
if (cn == NULL) goto errorReturn;
if (cn->type == CN_CBOR_TEXT) {