From 55ca9cad8eeb30df52a23b08da124166c0eb8f16 Mon Sep 17 00:00:00 2001 From: Krzysztof Jackiewicz Date: Tue, 21 Jun 2016 12:30:18 +0200 Subject: [PATCH] YACA: Crypto tests Change-Id: I8974001c316fca85cb3ab4cc485c70d82e5bc859 --- src/yaca/yaca-test-crypto.cpp | 74 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 65 insertions(+), 9 deletions(-) diff --git a/src/yaca/yaca-test-crypto.cpp b/src/yaca/yaca-test-crypto.cpp index d80759b..fb0523a 100644 --- a/src/yaca/yaca-test-crypto.cpp +++ b/src/yaca/yaca-test-crypto.cpp @@ -25,6 +25,7 @@ #include "yaca-test-common.h" #include +#include RUNNER_TEST_GROUP_INIT(T1000_YACA_CRYPTO); @@ -45,38 +46,93 @@ RUNNER_TEST(T1000_yaca_initialize_cleanup) // TODO what should happen if yaca_initialize() is not called? -RUNNER_TEST(T1003_yaca_malloc) +RUNNER_TEST(T1010_yaca_malloc_invalid_param, YacaTest) { + void* memory; + YACA_INVALID_PARAM(yaca_malloc(0, &memory)); + YACA_INVALID_PARAM(yaca_malloc(42, nullptr)); } -RUNNER_TEST(T1004_yaca_zalloc) +RUNNER_TEST(T1020_yaca_zalloc_invalid_param, YacaTest) { + void* memory; + YACA_INVALID_PARAM(yaca_zalloc(0, &memory)); + YACA_INVALID_PARAM(yaca_zalloc(42, nullptr)); } -RUNNER_TEST(T1005_yaca_realloc) +RUNNER_TEST(T1030_yaca_realloc_invalid_param, YacaTest) { + void* memory; + YACA_INVALID_PARAM(yaca_realloc(0, &memory)); + YACA_INVALID_PARAM(yaca_realloc(42, nullptr)); } -RUNNER_TEST(T1006_yaca_free) +RUNNER_TEST(T1040_yaca_free, YacaTest) { + YACA_SUCCESS(yaca_free(nullptr)); + + void* memory; + YACA_SUCCESS(yaca_malloc(42, &memory)) + YACA_SUCCESS(yaca_free(memory)); } -RUNNER_TEST(T1007_yaca_rand_bytes) +RUNNER_TEST(T1050_yaca_randomize_bytes, YacaTest) { + Buffer data = random_buffer(42); + + YACA_INVALID_PARAM(yaca_randomize_bytes(nullptr, data.size())); + YACA_INVALID_PARAM(yaca_randomize_bytes(data.data(), 0)); + + YACA_SUCCESS(yaca_randomize_bytes(data.data(), data.size())); } -RUNNER_TEST(T1008_yaca_ctx_set_param) +RUNNER_TEST(T1060_yaca_context_set_property_invalid_param, YacaTest) { + size_t tag_len = 4; + YACA_INVALID_PARAM(yaca_context_set_property(YACA_CONTEXT_NULL, + YACA_PROPERTY_GCM_TAG_LEN, + (void*)tag_len, + sizeof(tag_len))); + + auto ctx_ptr = digest_init(YACA_DIGEST_MD5); + YACA_INVALID_PARAM(yaca_context_set_property(ctx_ptr.get(), + YACA_PROPERTY_GCM_TAG_LEN, + (void*)tag_len, + sizeof(tag_len))); } -RUNNER_TEST(T1009_yaca_ctx_get_param) +RUNNER_TEST(T1070_yaca_context_get_property_invalid_param, YacaTest) { + void* tag; + size_t tag_len; + YACA_INVALID_PARAM(yaca_context_get_property(YACA_CONTEXT_NULL, + YACA_PROPERTY_GCM_TAG, + &tag, + &tag_len)); + + auto ctx_ptr = digest_init(YACA_DIGEST_MD5); + YACA_INVALID_PARAM(yaca_context_get_property(ctx_ptr.get(), + YACA_PROPERTY_GCM_TAG_LEN, + &tag, + &tag_len)); } -RUNNER_TEST(T1010_yaca_ctx_free) +RUNNER_TEST(T1080_yaca_context_destroy, YacaTest) { + YACA_SUCCESS(yaca_context_destroy(YACA_CONTEXT_NULL)); + + yaca_context_h ctx; + YACA_SUCCESS(yaca_digest_initialize(&ctx, YACA_DIGEST_MD5)); + YACA_SUCCESS(yaca_context_destroy(ctx)); + } -RUNNER_TEST(T1011_yaca_get_output_length) +RUNNER_TEST(T1090_yaca_get_output_length_invalid_param) { + size_t out_len; + auto ctx_ptr = digest_init(YACA_DIGEST_MD5); + + YACA_INVALID_PARAM(yaca_context_get_output_length(YACA_CONTEXT_NULL, 0, &out_len)); + YACA_INVALID_PARAM(yaca_context_get_output_length(YACA_CONTEXT_NULL, 42, &out_len)); + YACA_INVALID_PARAM(yaca_context_get_output_length(ctx_ptr.get(), 42, nullptr)); } -- 2.7.4