From 1b102158f89b26b6d19df3bf122b9adb509a401a Mon Sep 17 00:00:00 2001 From: Lukasz Pawelczyk Date: Thu, 16 Jun 2016 14:29:53 +0200 Subject: [PATCH] YACA: Test common functions for signature tests Change-Id: I9bbae297e19eeb5852c8a7502a95082b244f2505 --- src/yaca/yaca-test-common.cpp | 29 ++++++++++++++++++++++++++++- src/yaca/yaca-test-common.h | 11 +++++++++-- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/src/yaca/yaca-test-common.cpp b/src/yaca/yaca-test-common.cpp index e1b96f5..b5bb7d5 100644 --- a/src/yaca/yaca-test-common.cpp +++ b/src/yaca/yaca-test-common.cpp @@ -99,7 +99,16 @@ KeyPtr extract_public_key(const KeyPtr& key_priv) return wrap_ptr(key_pub); } -CtxPtr seal_init(const KeyPtr& key_pub, +size_t get_output_length(const CtxPtr &ctx, size_t input_len) +{ + size_t output_len; + + YACA_SUCCESS(yaca_context_get_output_length(ctx.get(), input_len, &output_len)); + + return output_len; +} + +CtxPtr seal_init(const KeyPtr &key_pub, yaca_encrypt_algorithm_e algo, yaca_block_cipher_mode_e bcm, size_t sym_key_bit_len, @@ -117,6 +126,24 @@ CtxPtr seal_init(const KeyPtr& key_pub, return wrap_ptr(ctx); } +CtxPtr sign_init(yaca_digest_algorithm_e algo, const KeyPtr &key_prv) +{ + yaca_context_h ctx = YACA_CONTEXT_NULL; + + YACA_SUCCESS(yaca_sign_initialize(&ctx, algo, key_prv.get())); + + return wrap_ptr(ctx); +} + +CtxPtr verify_init(yaca_digest_algorithm_e algo, const KeyPtr &key_prv) +{ + yaca_context_h ctx = YACA_CONTEXT_NULL; + + YACA_SUCCESS(yaca_verify_initialize(&ctx, algo, key_prv.get())); + + return wrap_ptr(ctx); +} + CtxPtr hmac_init(yaca_digest_algorithm_e algo, const KeyPtr& key) { yaca_context_h ctx = YACA_CONTEXT_NULL; diff --git a/src/yaca/yaca-test-common.h b/src/yaca/yaca-test-common.h index e8008d1..a78b4b8 100644 --- a/src/yaca/yaca-test-common.h +++ b/src/yaca/yaca-test-common.h @@ -111,15 +111,21 @@ KeyPtr null_key(); KeyPtr generate_key(yaca_key_type_e type, size_t bit_len); -KeyPtr extract_public_key(const KeyPtr& key_priv); +KeyPtr extract_public_key(const KeyPtr &key_priv); -CtxPtr seal_init(const KeyPtr& key_pub, +size_t get_output_length(const CtxPtr &ctx, size_t input_len = 0); + +CtxPtr seal_init(const KeyPtr &key_pub, yaca_encrypt_algorithm_e algo, yaca_block_cipher_mode_e bcm, size_t sym_key_bit_len, KeyPtr& sym_key_ptr, KeyPtr& iv_ptr); +CtxPtr sign_init(yaca_digest_algorithm_e algo, const KeyPtr &key_prv); + +CtxPtr verify_init(yaca_digest_algorithm_e algo, const KeyPtr &key_prv); + CtxPtr hmac_init(yaca_digest_algorithm_e algo, const KeyPtr& key); CtxPtr digest_init(yaca_digest_algorithm_e algo); @@ -134,3 +140,4 @@ const char* digest2str(yaca_digest_algorithm_e algo); /* If input is longer than len it is truncated and an ellipsis is appended. * Otherwise the original string is returned. */ std::string truncate_str(const std::string& input, size_t len); + -- 2.7.4