summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorDmitry Baryshkov <dbaryshkov@gmail.com>2020-06-02 13:45:40 +0300
committerNiels Möller <nisse@lysator.liu.se>2020-06-20 10:26:22 +0200
commitf0055d490d48804471a532c4d066082d740d5f6b (patch)
treef3ca65f065dc8062500db1ed6c45ced72ee153ba /testsuite
parent7c0ad2356ea2e0143495a41e8a0bdbd3e0aeadc9 (diff)
downloadnettle-f0055d490d48804471a532c4d066082d740d5f6b.tar.gz
test/gostdsa-vko: add hashed test vectors from RFC 7836
It was not possible to check gostdsa_vko test vectors with the outputs from RFC 7836 because Nettle lacked Streebog hash function. Now as the function is supported, add full test vectors. Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/gostdsa-vko-test.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/testsuite/gostdsa-vko-test.c b/testsuite/gostdsa-vko-test.c
index c8a762b1..5d65cd4d 100644
--- a/testsuite/gostdsa-vko-test.c
+++ b/testsuite/gostdsa-vko-test.c
@@ -1,5 +1,6 @@
#include "testutils.h"
#include "gostdsa.h"
+#include "streebog.h"
static void
test_vko (const struct ecc_curve *ecc,
@@ -57,6 +58,9 @@ test_vko (const struct ecc_curve *ecc,
void
test_main (void)
{
+ struct streebog256_ctx ctx_256;
+ struct streebog256_ctx ctx_512;
+
/* RFC 7836, App B, provides test vectors, values there are little endian.
*
* However those test vectors depend on the availability of Streebog hash
@@ -88,4 +92,45 @@ test_main (void)
"3b8e53a1ea920eb1 d7f3d08aa9e47595 4a53ac018c210b48 15451b7accc4a797"
"a2b8faf3d89ee717 d07a857794b9b053 f8e0fd5456ccfcc2 2fd081c873416a3f"));
+ /* RFC 7836, App B, 7), values there are little endian, calculation for size A */
+ test_vko(nettle_get_gost_gc512a(),
+ "67b63ca4ac8d2bb32618d89296c7476dbeb9f9048496f202b1902cf2ce41dbc2f847712d960483458d4b380867f426c7ca0ff5782702dbc44ee8fc72d9ec90c9",
+ "51a6d54ee932d176e87591121cce5f395cb2f2f147114d95f463c8a7ed74a9fc5ecd2325a35fb6387831ea66bc3d2aa42ede35872cc75372073a71b983e12f19",
+ "793bde5bf72840ad22b02a363ae4772d4a52fc08ba1a20f7458a222a13bf98b53be002d1973f1e398ce46c17da6d00d9b6d0076f8284dcc42e599b4c413b8804",
+ SHEX("1d 80 60 3c 85 44 c7 27"),
+ &nettle_streebog256,
+ &ctx_256,
+ SHEX("c9 a9 a7 73 20 e2 cc 55 9e d7 2d ce 6f 47 e2 19 2c ce a9 5f a6 48 67 05 82 c0 54 c0 ef 36 c2 21"));
+
+ /* RFC 7836, App B, 7), values there are little endian, calculation for size B */
+ test_vko(nettle_get_gost_gc512a(),
+ "dbd09213a592da5bbfd8ed068cccccbbfbeda4feac96b9b4908591440b0714803b9eb763ef932266d4c0181a9b73eacf9013efc65ec07c888515f1b6f759c848",
+ "a7c0adb12743c10c3c1beb97c8f631242f7937a1deb6bce5e664e49261baccd3f5dc56ec53b2abb90ca1eb703078ba546655a8b99f79188d2021ffaba4edb0aa",
+ "5adb1c63a4e4465e0bbefd897fb9016475934cfa0f8c95f992ea402d47921f46382d00481b720314b19d8c878e75d81b9763358dd304b2ed3a364e07a3134691",
+ SHEX("1d 80 60 3c 85 44 c7 27"),
+ &nettle_streebog256,
+ &ctx_256,
+ SHEX("c9 a9 a7 73 20 e2 cc 55 9e d7 2d ce 6f 47 e2 19 2c ce a9 5f a6 48 67 05 82 c0 54 c0 ef 36 c2 21"));
+
+ /* RFC 7836, App B, 8), values there are little endian, calculation for size A */
+ test_vko(nettle_get_gost_gc512a(),
+ "67b63ca4ac8d2bb32618d89296c7476dbeb9f9048496f202b1902cf2ce41dbc2f847712d960483458d4b380867f426c7ca0ff5782702dbc44ee8fc72d9ec90c9",
+ "51a6d54ee932d176e87591121cce5f395cb2f2f147114d95f463c8a7ed74a9fc5ecd2325a35fb6387831ea66bc3d2aa42ede35872cc75372073a71b983e12f19",
+ "793bde5bf72840ad22b02a363ae4772d4a52fc08ba1a20f7458a222a13bf98b53be002d1973f1e398ce46c17da6d00d9b6d0076f8284dcc42e599b4c413b8804",
+ SHEX("1d 80 60 3c 85 44 c7 27"),
+ &nettle_streebog512,
+ &ctx_512,
+ SHEX("79 f0 02 a9 69 40 ce 7b de 32 59 a5 2e 01 52 97 ad aa d8 45 97 a0 d2 05 b5 0e 3e 17 19 f9 7b fa"
+ "7e e1 d2 66 1f a9 97 9a 5a a2 35 b5 58 a7 e6 d9 f8 8f 98 2d d6 3f c3 5a 8e c0 dd 5e 24 2d 3b df"));
+
+ /* RFC 7836, App B, 8), values there are little endian, calculation for size B */
+ test_vko(nettle_get_gost_gc512a(),
+ "dbd09213a592da5bbfd8ed068cccccbbfbeda4feac96b9b4908591440b0714803b9eb763ef932266d4c0181a9b73eacf9013efc65ec07c888515f1b6f759c848",
+ "a7c0adb12743c10c3c1beb97c8f631242f7937a1deb6bce5e664e49261baccd3f5dc56ec53b2abb90ca1eb703078ba546655a8b99f79188d2021ffaba4edb0aa",
+ "5adb1c63a4e4465e0bbefd897fb9016475934cfa0f8c95f992ea402d47921f46382d00481b720314b19d8c878e75d81b9763358dd304b2ed3a364e07a3134691",
+ SHEX("1d 80 60 3c 85 44 c7 27"),
+ &nettle_streebog512,
+ &ctx_512,
+ SHEX("79 f0 02 a9 69 40 ce 7b de 32 59 a5 2e 01 52 97 ad aa d8 45 97 a0 d2 05 b5 0e 3e 17 19 f9 7b fa"
+ "7e e1 d2 66 1f a9 97 9a 5a a2 35 b5 58 a7 e6 d9 f8 8f 98 2d d6 3f c3 5a 8e c0 dd 5e 24 2d 3b df"));
}