From b3441c109e16980bc0854f3b2cbf402a5119c7fd Mon Sep 17 00:00:00 2001 From: Dimitri Lozeve Date: Fri, 5 Jun 2020 16:54:20 +0200 Subject: [PATCH] Add mbedtls dependency --- .gitmodules | 3 +++ meson.build | 6 ++++++ src/ex07/main.c | 47 +++++++++++++++++++++++++++++++++++++++++++++ subprojects/mbedtls | 1 + 4 files changed, 57 insertions(+) create mode 100644 src/ex07/main.c create mode 160000 subprojects/mbedtls diff --git a/.gitmodules b/.gitmodules index 9a7806c..1fbdba0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "subprojects/munit"] path = subprojects/munit url = https://github.com/nemequ/munit.git +[submodule "subprojects/mbedtls"] + path = subprojects/mbedtls + url = https://github.com/ARMmbed/mbedtls.git diff --git a/meson.build b/meson.build index f1255f3..e1dd7c5 100644 --- a/meson.build +++ b/meson.build @@ -5,12 +5,18 @@ m_dep = cc.find_library('m', required : false) incdir = include_directories('src') +cmake = import('cmake') +mbedtls_proj = cmake.subproject('mbedtls') +mbedtls_dep = mbedtls_proj.dependency('mbedtls') + executable('ex01', ['src/ex01/main.c', 'src/utils.c'], dependencies: m_dep, include_directories: incdir) executable('ex02', ['src/ex02/main.c', 'src/utils.c'], dependencies: m_dep, include_directories: incdir) executable('ex03', ['src/ex03/main.c', 'src/utils.c'], dependencies: m_dep, include_directories: incdir) executable('ex04', ['src/ex04/main.c', 'src/utils.c'], dependencies: m_dep, include_directories: incdir) executable('ex05', ['src/ex05/main.c', 'src/utils.c'], dependencies: m_dep, include_directories: incdir) executable('ex06', ['src/ex06/main.c', 'src/utils.c'], dependencies: m_dep, include_directories: incdir) +executable('ex07', ['src/ex07/main.c', 'src/utils.c'], + dependencies: [m_dep, mbedtls_dep], include_directories: incdir) munit_dep = dependency('munit', fallback: ['munit', 'munit_dep']) diff --git a/src/ex07/main.c b/src/ex07/main.c new file mode 100644 index 0000000..5a2800e --- /dev/null +++ b/src/ex07/main.c @@ -0,0 +1,47 @@ +#include "utils.h" +#include +#include +#include +#include +#include "mbedtls/aes.h" + +#define BUF_SIZE 4096 + +int main(int argc, char *argv[]) { + if (argc < 3) { + printf("Usage: %s \n", argv[0]); + return EXIT_FAILURE; + } + + const char *key = argv[1]; + const char *filename = argv[2]; + + FILE *fp = fopen(filename, "r"); + if (fp == NULL) { + printf("Error opening file %s\n", filename); + return EXIT_FAILURE; + } + + char input[BUF_SIZE] = {'\0'}; + size_t nread = fread(input, 1, BUF_SIZE, fp); + if (nread == 0) { + printf("Cannot read any character from file %s\n", filename); + return EXIT_FAILURE; + } + + unsigned char buf[BUF_SIZE] = {0}; + size_t len = base64_to_bytes(buf, input); + if (len == 0) { + printf("Could not decode base64\n"); + return EXIT_FAILURE; + } + + mbedtls_aes_context aes; + + if (fclose(fp)) { + printf("Error closing file %s\n", filename); + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} diff --git a/subprojects/mbedtls b/subprojects/mbedtls new file mode 160000 index 0000000..2a1d933 --- /dev/null +++ b/subprojects/mbedtls @@ -0,0 +1 @@ +Subproject commit 2a1d9332d55d1270084232e42df08fdb08129f1b