YACA: Test common functions for signature tests 92/75092/4
authorLukasz Pawelczyk <l.pawelczyk@samsung.com>
Thu, 16 Jun 2016 12:29:53 +0000 (14:29 +0200)
committerLukasz Pawelczyk <l.pawelczyk@samsung.com>
Fri, 17 Jun 2016 10:03:53 +0000 (12:03 +0200)
Change-Id: I9bbae297e19eeb5852c8a7502a95082b244f2505

src/yaca/yaca-test-common.cpp
src/yaca/yaca-test-common.h

index e1b96f5..b5bb7d5 100644 (file)
@@ -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;
index e8008d1..a78b4b8 100644 (file)
@@ -111,15 +111,21 @@ KeyPtr null_key();
 
 KeyPtr generate_key(yaca_key_type_e type, size_t bit_len);
 
-KeyPtr extract_public_key(const KeyPtrkey_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);
+