YACA: Crypto tests 86/75786/3
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Tue, 21 Jun 2016 10:30:18 +0000 (12:30 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Thu, 23 Jun 2016 10:20:13 +0000 (03:20 -0700)
Change-Id: I8974001c316fca85cb3ab4cc485c70d82e5bc859

src/yaca/yaca-test-crypto.cpp

index d80759b..fb0523a 100644 (file)
@@ -25,6 +25,7 @@
 #include "yaca-test-common.h"
 
 #include <yaca_crypto.h>
+#include <yaca_digest.h>
 
 
 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));
 }