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) {