YACA: Helper functions for CMAC tests
authorLukasz Pawelczyk <l.pawelczyk@samsung.com>
Tue, 28 Jun 2016 16:20:03 +0000 (18:20 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Wed, 29 Jun 2016 10:37:12 +0000 (12:37 +0200)
Change-Id: I2f149eb032fe118c6acc5e3be8463aec593843cc

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

index e5ba8e3..3cabf58 100644 (file)
@@ -179,6 +179,15 @@ CtxPtr hmac_init(yaca_digest_algorithm_e algo, const KeyPtr& key)
     return wrap_ptr(ctx);
 }
 
+CtxPtr cmac_init(yaca_encrypt_algorithm_e algo, const KeyPtr& key)
+{
+    yaca_context_h ctx = YACA_CONTEXT_NULL;
+
+    YACA_SUCCESS(yaca_sign_initialize_cmac(&ctx, algo, key.get()));
+
+    return wrap_ptr(ctx);
+}
+
 CtxPtr digest_init(yaca_digest_algorithm_e algo)
 {
     yaca_context_h ctx = YACA_CONTEXT_NULL;
@@ -232,6 +241,20 @@ const char* digest2str(yaca_digest_algorithm_e algo)
     default: return "Unknown digest algorithm";
     }
 }
+
+const char* encrypt2str(yaca_encrypt_algorithm_e algo)
+{
+    switch (algo) {
+    ENUM_DESCRIBE(YACA_ENCRYPT_AES);
+    ENUM_DESCRIBE(YACA_ENCRYPT_UNSAFE_DES);
+    ENUM_DESCRIBE(YACA_ENCRYPT_UNSAFE_3DES_2TDEA);
+    ENUM_DESCRIBE(YACA_ENCRYPT_3DES_3TDEA);
+    ENUM_DESCRIBE(YACA_ENCRYPT_UNSAFE_RC2);
+    ENUM_DESCRIBE(YACA_ENCRYPT_UNSAFE_RC4);
+    ENUM_DESCRIBE(YACA_ENCRYPT_CAST5);
+    default: return "Unknown encrypt algorithm";
+    }
+}
 #undef ENUM_DESCRIBE
 
 std::string truncate_str(const std::string& input, size_t len)
index c4327ad..a028760 100644 (file)
@@ -152,6 +152,8 @@ CtxPtr verify_init(yaca_digest_algorithm_e algo, const KeyPtr &key_prv);
 
 CtxPtr hmac_init(yaca_digest_algorithm_e algo, const KeyPtr& key);
 
+CtxPtr cmac_init(yaca_encrypt_algorithm_e algo, const KeyPtr& key);
+
 CtxPtr digest_init(yaca_digest_algorithm_e algo);
 
 Buffer random_buffer(size_t length);
@@ -160,6 +162,8 @@ const char* keytype2str(yaca_key_type_e algo);
 
 const char* digest2str(yaca_digest_algorithm_e algo);
 
+const char* encrypt2str(yaca_encrypt_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);