1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
#include "testutils.h"
#include "streebog.h"
void
test_main(void)
{
/* Using test vectors from the standard itself */
/* RFC 6986 provides all data in "Integer" big-endian format, while all
* constructs expects the data in little-endian format. Thus these examples
* (as the rest of the code) has data buffers reversed compared to the RFC
* 6986. */
/* 10.1.1 */
test_hash(&nettle_streebog512,
SDATA("012345678901234567890123456789012345678901234567890123456789012"),
SHEX("1b54d01a4af5b9d5 cc3d86d68d285462"
"b19abc2475222f35 c085122be4ba1ffa"
"00ad30f8767b3a82 384c6574f024c311"
"e2a481332b08ef7f 41797891c1646f48"));
/* 10.1.2 */
test_hash(&nettle_streebog256,
SDATA("012345678901234567890123456789012345678901234567890123456789012"),
SHEX("9d151eefd8590b89 daa6ba6cb74af927"
"5dd051026bb149a4 52fd84e5e57b5500"));
/* 10.2.1 */
test_hash(&nettle_streebog512,
SHEX("d1e520e2e5f2f0e82c20d1f2f0e8e1ee"
"e6e820e2edf3f6e82c20e2e5fef2fa20"
"f120eceef0ff20f1f2f0e5ebe0ece820"
"ede020f5f0e0e1f0fbff20efebfaeafb"
"20c8e3eef0e5e2fb"),
SHEX("1e88e62226bfca6f 9994f1f2d51569e0"
"daf8475a3b0fe61a 5300eee46d961376"
"035fe83549ada2b8 620fcd7c496ce5b3"
"3f0cb9dddc2b6460 143b03dabac9fb28"));
/* 10.2.2 */
test_hash(&nettle_streebog256,
SHEX("d1e520e2e5f2f0e82c20d1f2f0e8e1ee"
"e6e820e2edf3f6e82c20e2e5fef2fa20"
"f120eceef0ff20f1f2f0e5ebe0ece820"
"ede020f5f0e0e1f0fbff20efebfaeafb"
"20c8e3eef0e5e2fb"),
SHEX("9dd2fe4e90409e5d a87f53976d7405b0"
"c0cac628fc669a74 1d50063c557e8f50"));
/* Additional tests to verify long integer addition with carry */
test_hash(&nettle_streebog512,
SHEX("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
"16111111111111111111111111111111"
"11111111111111111111111111111111"
"11111111111111111111111111111111"
"11111111111111111111111111111116"),
SHEX("8b06f41e59907d9636e892caf5942fcd"
"fb71fa31169a5e70f0edb873664df41c"
"2cce6e06dc6755d15a61cdeb92bd607c"
"c4aaca6732bf3568a23a210dd520fd41"));
test_hash(&nettle_streebog256,
SHEX("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
"16111111111111111111111111111111"
"11111111111111111111111111111111"
"11111111111111111111111111111111"
"11111111111111111111111111111116"),
SHEX("81bb632fa31fcc38b4c379a662dbc58b"
"9bed83f50d3a1b2ce7271ab02d25babb"));
test_hash(&nettle_streebog512,
SHEX("ffffffffffffffffffffffffffffffff"
"ffffffffffffffffffffffffffffffff"
"ffffffffffffffffffffffffffffffff"
"ffffffffffffffffffffffffffffffff"
"ffffffffffffffffffffffffffffffff"
"ffffffffffffffffffffffffffffffff"
"ffffffffffffffffffffffffffffffff"
"ffffffffffffffffffffffffffffffff"),
SHEX("90a161d12ad309498d3fe5d48202d8a4"
"e9c406d6a264aeab258ac5ecc37a7962"
"aaf9587a5abb09b6bb81ec4b3752a3ff"
"5a838ef175be5772056bc5fe54fcfc7e"));
}
|