#include "yaca-test-common.h"
#include <yaca_crypto.h>
+#include <yaca_digest.h>
RUNNER_TEST_GROUP_INIT(T1000_YACA_CRYPTO);
// 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));
}