aboutsummaryrefslogtreecommitdiff
path: root/test_grasshopper.c
diff options
context:
space:
mode:
authorVitaly Chikunov <vt@altlinux.org>2018-07-26 12:07:11 +0300
committerVitaly Chikunov <vt@altlinux.org>2018-07-26 18:52:32 +0300
commit07c957df13588802781cb36d1539e22fba7e071e (patch)
tree675b2e0543da797a0e07c8dd22eb51f694653cc2 /test_grasshopper.c
parent488f3da97f0833c1608bffb6ea510be4314cef7f (diff)
downloadgost-engine-07c957df13588802781cb36d1539e22fba7e071e.zip
gost-engine-07c957df13588802781cb36d1539e22fba7e071e.tar.gz
gost-engine-07c957df13588802781cb36d1539e22fba7e071e.tar.bz2
Set default value for CTR ACPKM limit
Default limit for Kuznyechik is 4KiB, from TLS 1.2 recommendations. As a consequence it does not need to be configured via EVP_CTRL_KEY_MESH. Also, explicitly set ACPKM limit in tests.
Diffstat (limited to 'test_grasshopper.c')
-rw-r--r--test_grasshopper.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/test_grasshopper.c b/test_grasshopper.c
index 1b0f913..db2c3e1 100644
--- a/test_grasshopper.c
+++ b/test_grasshopper.c
@@ -130,8 +130,8 @@ struct testcase {
static struct testcase testcases[] = {
{ "ecb", cipher_gost_grasshopper_ecb, 0, P, E_ecb, sizeof(P), NULL, 0, 0 },
{ "ctr", cipher_gost_grasshopper_ctr, 1, P, E_ctr, sizeof(P), iv_ctr, sizeof(iv_ctr), 0 },
- { "ctr-no-acpkm", cipher_gost_grasshopper_ctracpkm, 1, P, E_ctr, sizeof(P), iv_ctr, sizeof(iv_ctr), 0 },
- { "ctracpkm", cipher_gost_grasshopper_ctracpkm, 1, P_acpkm, E_acpkm, sizeof(P_acpkm), iv_ctr, sizeof(iv_ctr), 1 },
+ { "ctr-no-acpkm", cipher_gost_grasshopper_ctracpkm, 1, P, E_ctr, sizeof(P), iv_ctr, sizeof(iv_ctr), 0 },
+ { "ctracpkm", cipher_gost_grasshopper_ctracpkm, 1, P_acpkm, E_acpkm, sizeof(P_acpkm), iv_ctr, sizeof(iv_ctr), 256 / 8 },
{ "ofb", cipher_gost_grasshopper_ofb, 1, P, E_ofb, sizeof(P), iv_128bit, sizeof(iv_128bit), 0 },
{ "cbc", cipher_gost_grasshopper_cbc, 0, P, E_cbc, sizeof(P), iv_128bit, sizeof(iv_128bit), 0 },
{ "cfb", cipher_gost_grasshopper_cfb, 0, P, E_cfb, sizeof(P), iv_128bit, sizeof(iv_128bit), 0 },
@@ -167,7 +167,7 @@ static int test_block(const EVP_CIPHER *type, const char *name,
T(EVP_CIPHER_CTX_set_padding(ctx, 0));
memset(c, 0, sizeof(c));
if (acpkm)
- T(EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_KEY_MESH, 256 / 8, NULL));
+ T(EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_KEY_MESH, acpkm, NULL));
T(EVP_CipherUpdate(ctx, c, &outlen, pt, size));
T(EVP_CipherFinal_ex(ctx, c + outlen, &tmplen));
EVP_CIPHER_CTX_cleanup(ctx);
@@ -186,7 +186,7 @@ static int test_block(const EVP_CIPHER *type, const char *name,
T(EVP_CIPHER_CTX_set_padding(ctx, 0));
memset(c, 0, sizeof(c));
if (acpkm)
- T(EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_KEY_MESH, 256 / 8, NULL));
+ T(EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_KEY_MESH, acpkm, NULL));
for (z = 0; z < blocks; z++) {
int offset = z * GRASSHOPPER_BLOCK_SIZE;
int sz = GRASSHOPPER_BLOCK_SIZE;
@@ -209,7 +209,7 @@ static int test_block(const EVP_CIPHER *type, const char *name,
T(EVP_CIPHER_CTX_set_padding(ctx, 0));
memset(c, 0, sizeof(c));
if (acpkm)
- T(EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_KEY_MESH, 256 / 8, NULL));
+ T(EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_KEY_MESH, acpkm, NULL));
T(EVP_CipherUpdate(ctx, c, &outlen, exp, size));
T(EVP_CipherFinal_ex(ctx, c + outlen, &tmplen));
EVP_CIPHER_CTX_cleanup(ctx);
@@ -245,7 +245,7 @@ static int test_stream(const EVP_CIPHER *type, const char *name,
EVP_CIPHER_CTX_set_padding(ctx, 0);
memset(c, 0xff, sizeof(c));
if (acpkm)
- T(EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_KEY_MESH, 256 / 8, NULL));
+ T(EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_KEY_MESH, acpkm, NULL));
for (i = 0; i < size; i += z) {
if (i + z > size)
sz = size - i;