From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
To: tarantool-patches@freelists.org
Cc: kostja@tarantool.org
Subject: [tarantool-patches] Re: [PATCH 3/3] crypto: implement crypto codec API and AES 128 encryption
Date: Sun, 28 Apr 2019 19:52:52 +0300 [thread overview]
Message-ID: <aa743e76-d682-f92d-3590-8eb161b75d08@tarantool.org> (raw)
In-Reply-To: <0e95f1eff6e2caaab4a2ed344bfdf9e67a9f23b5.1556226152.git.v.shpilevoy@tarantool.org>
Found a typo. The fix is below and force pushed
on the branch:
====================================================================================
diff --git a/src/lib/crypto/crypto.c b/src/lib/crypto/crypto.c
index 35e53e238..557c92916 100644
--- a/src/lib/crypto/crypto.c
+++ b/src/lib/crypto/crypto.c
@@ -79,7 +79,7 @@ crypto_codec_new(enum crypto_algo algo, const char *key)
diag_set(OutOfMemory, sizeof(*c), "malloc", "c");
return NULL;
}
- memcmp(c->key, key, sizeof(c->key));
+ memcpy(c->key, key, sizeof(c->key));
memset(c->iv, 0, sizeof(c->iv));
c->type = EVP_aes_128_cbc();
return c;
diff --git a/test/unit/crypto.c b/test/unit/crypto.c
index 4d51e21a2..1ea843664 100644
--- a/test/unit/crypto.c
+++ b/test/unit/crypto.c
@@ -39,7 +39,7 @@ static void
test_aes128_codec(void)
{
header();
- plan(20);
+ plan(22);
char key[CRYPTO_AES128_KEY_SIZE];
random_bytes(key, sizeof(key));
@@ -99,6 +99,15 @@ test_aes128_codec(void)
is(rc, plain_size, "decode works with correct but another IV");
is(memcmp(buffer1, plain, plain_size), 0, "data is the same");
+ struct crypto_codec *c2 = crypto_codec_new(CRYPTO_AES128, key);
+ rc = crypto_codec_encode(c, plain, plain_size, buffer1, buffer_size);
+ memset(buffer2, 0, rc);
+ rc = crypto_codec_decode(c2, iv2, buffer1, rc, buffer2, buffer_size);
+ is(rc, plain_size, "encode with one codec, but decode with another "\
+ "codec and the same key");
+ is(memcmp(plain, buffer2, plain_size), 0, "data is the same");
+
+ crypto_codec_delete(c2);
crypto_codec_delete(c);
check_plan();
diff --git a/test/unit/crypto.result b/test/unit/crypto.result
index a3f479be8..735105914 100644
--- a/test/unit/crypto.result
+++ b/test/unit/crypto.result
@@ -1,7 +1,7 @@
*** main ***
1..2
*** test_aes128_codec ***
- 1..20
+ 1..22
ok 1 - crypto does not support non-128 AES
ok 2 - 128 is supported
ok 3 - encode returns needed number of bytes
@@ -22,6 +22,8 @@
ok 18 - the encoded data looks different
ok 19 - decode works with correct but another IV
ok 20 - data is the same
+ ok 21 - encode with one codec, but decode with another codec and the same key
+ ok 22 - data is the same
ok 1 - subtests
*** test_aes128_codec: done ***
*** test_aes128_stress ***
====================================================================================
next prev parent reply other threads:[~2019-04-28 16:52 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-25 21:05 [tarantool-patches] [PATCH 0/3] swim encryption preparation Vladislav Shpilevoy
2019-04-25 21:05 ` [tarantool-patches] [PATCH 1/3] crypto: move crypto business into a separate library Vladislav Shpilevoy
2019-04-25 21:05 ` [tarantool-patches] [PATCH 2/3] crypto: make exported methods conform code style Vladislav Shpilevoy
2019-04-25 21:05 ` [tarantool-patches] [PATCH 3/3] crypto: implement crypto codec API and AES 128 encryption Vladislav Shpilevoy
2019-04-28 16:52 ` Vladislav Shpilevoy [this message]
2019-04-29 11:07 ` [tarantool-patches] " Vladislav Shpilevoy
2019-04-29 12:25 ` Konstantin Osipov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aa743e76-d682-f92d-3590-8eb161b75d08@tarantool.org \
--to=v.shpilevoy@tarantool.org \
--cc=kostja@tarantool.org \
--cc=tarantool-patches@freelists.org \
--subject='[tarantool-patches] Re: [PATCH 3/3] crypto: implement crypto codec API and AES 128 encryption' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox