Skip to content

Commit f93d7da

Browse files
Merge pull request #4 from AnarchistHoneybun/pt_hex_crate
Use hex_literal crate
2 parents 3e8dfa6 + 91ff8d9 commit f93d7da

File tree

5 files changed

+605
-545
lines changed

5 files changed

+605
-545
lines changed

kupyna/src/sub_units/t_xor_plus/tests/test_individual_layers.rs

+121-110
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,37 @@
11
use crate::sub_units::t_xor_plus::*;
22
use crate::KupynaH;
3+
use hex_literal::hex;
34

45
fn setup_hash_params() -> KupynaH {
56
KupynaH::default()
67
}
78

89
#[test]
910
fn test_add_constant_xor() {
10-
let input = [
11-
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
12-
0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D,
13-
0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C,
14-
0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B,
15-
0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A,
16-
0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
17-
0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
18-
0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
19-
0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
20-
];
21-
let expected_output = [
22-
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x18, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
23-
0x0F, 0x30, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x28, 0x19, 0x1A, 0x1B, 0x1C, 0x1D,
24-
0x1E, 0x1F, 0x60, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x78, 0x29, 0x2A, 0x2B, 0x2C,
25-
0x2D, 0x2E, 0x2F, 0x50, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x48, 0x39, 0x3A, 0x3B,
26-
0x3C, 0x3D, 0x3E, 0x3F, 0xC0, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0xD8, 0x49, 0x4A,
27-
0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0xF0, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0xE8, 0x59,
28-
0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0xA0, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0xB8,
29-
0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x90, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
30-
0x88, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
31-
];
11+
let input = hex!(
12+
"
13+
00010203 04050607 08090A0B 0C0D0E0F
14+
10111213 14151617 18191A1B 1C1D1E1F
15+
20212223 24252627 28292A2B 2C2D2E2F
16+
30313233 34353637 38393A3B 3C3D3E3F
17+
40414243 44454647 48494A4B 4C4D4E4F
18+
50515253 54555657 58595A5B 5C5D5E5F
19+
60616263 64656667 68696A6B 6C6D6E6F
20+
70717273 74757677 78797A7B 7C7D7E7F
21+
"
22+
);
23+
let expected_output = hex!(
24+
"
25+
00010203 04050607 18090A0B 0C0D0E0F
26+
30111213 14151617 28191A1B 1C1D1E1F
27+
60212223 24252627 78292A2B 2C2D2E2F
28+
50313233 34353637 48393A3B 3C3D3E3F
29+
C0414243 44454647 D8494A4B 4C4D4E4F
30+
F0515253 54555657 E8595A5B 5C5D5E5F
31+
A0616263 64656667 B8696A6B 6C6D6E6F
32+
90717273 74757677 88797A7B 7C7D7E7F
33+
"
34+
);
3235

3336
let hash_params = setup_hash_params();
3437

@@ -39,28 +42,30 @@ fn test_add_constant_xor() {
3942

4043
#[test]
4144
fn test_add_constant_plus() {
42-
let input = [
43-
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
44-
0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D,
45-
0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C,
46-
0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B,
47-
0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A,
48-
0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
49-
0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
50-
0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
51-
0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
52-
];
53-
let expected_output = [
54-
0xF3, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xFB, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE,
55-
0xEF, 0x03, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0xE8, 0x0B, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
56-
0x0F, 0xE0, 0x13, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0xD8, 0x1B, 0x1A, 0x1B, 0x1C, 0x1D,
57-
0x1E, 0x1F, 0xD0, 0x23, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0xC8, 0x2B, 0x2A, 0x2B, 0x2C,
58-
0x2D, 0x2E, 0x2F, 0xC0, 0x33, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0xB8, 0x3B, 0x3A, 0x3B,
59-
0x3C, 0x3D, 0x3E, 0x3F, 0xB0, 0x43, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0xA8, 0x4B, 0x4A,
60-
0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0xA0, 0x53, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x98, 0x5B,
61-
0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x90, 0x63, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x88,
62-
0x6B, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x80,
63-
];
45+
let input = hex!(
46+
"
47+
00010203 04050607 08090A0B 0C0D0E0F
48+
10111213 14151617 18191A1B 1C1D1E1F
49+
20212223 24252627 28292A2B 2C2D2E2F
50+
30313233 34353637 38393A3B 3C3D3E3F
51+
40414243 44454647 48494A4B 4C4D4E4F
52+
50515253 54555657 58595A5B 5C5D5E5F
53+
60616263 64656667 68696A6B 6C6D6E6F
54+
70717273 74757677 78797A7B 7C7D7E7F
55+
"
56+
);
57+
let expected_output = hex!(
58+
"
59+
F3F1F2F3 F4F5F6F7 FBF9FAFB FCFDFEEF
60+
03020304 050607E8 0B0A0B0C 0D0E0FE0
61+
13121314 151617D8 1B1A1B1C 1D1E1FD0
62+
23222324 252627C8 2B2A2B2C 2D2E2FC0
63+
33323334 353637B8 3B3A3B3C 3D3E3FB0
64+
43424344 454647A8 4B4A4B4C 4D4E4FA0
65+
53525354 55565798 5B5A5B5C 5D5E5F90
66+
63626364 65666788 6B6A6B6C 6D6E6F80
67+
"
68+
);
6469

6570
let hash_params = setup_hash_params();
6671

@@ -71,28 +76,30 @@ fn test_add_constant_plus() {
7176

7277
#[test]
7378
fn test_s_box_layer() {
74-
let input = [
75-
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x18, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
76-
0x0F, 0x30, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x28, 0x19, 0x1A, 0x1B, 0x1C, 0x1D,
77-
0x1E, 0x1F, 0x60, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x78, 0x29, 0x2A, 0x2B, 0x2C,
78-
0x2D, 0x2E, 0x2F, 0x50, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x48, 0x39, 0x3A, 0x3B,
79-
0x3C, 0x3D, 0x3E, 0x3F, 0xC0, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0xD8, 0x49, 0x4A,
80-
0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0xF0, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0xE8, 0x59,
81-
0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0xA0, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0xB8,
82-
0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x90, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
83-
0x88, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
84-
];
85-
let expected_output = [
86-
0xA8, 0xBB, 0x9A, 0x4D, 0x6B, 0xCB, 0x45, 0x2A, 0x79, 0x3A, 0xDF, 0xB3, 0x17, 0x90, 0x51,
87-
0x1F, 0x92, 0x15, 0x2B, 0x3D, 0xC9, 0x1C, 0xBB, 0x83, 0x1F, 0x5C, 0x71, 0xD5, 0x6F, 0x57,
88-
0x16, 0xBD, 0x34, 0xF6, 0xC0, 0x02, 0xB4, 0xF4, 0xAD, 0x11, 0x8E, 0x0F, 0x7A, 0x5E, 0x49,
89-
0x6D, 0xD1, 0x66, 0x2E, 0x26, 0xC4, 0x45, 0xD1, 0x5D, 0xB7, 0x94, 0x9C, 0x14, 0x0E, 0x1A,
90-
0x58, 0x10, 0xB2, 0xDF, 0x2F, 0x6B, 0xD7, 0x0E, 0x42, 0x33, 0xC3, 0x86, 0xC4, 0x9B, 0x4E,
91-
0x85, 0x8F, 0x95, 0xCB, 0x99, 0x81, 0x63, 0x4F, 0xEE, 0x96, 0x3C, 0x55, 0x30, 0x12, 0x49,
92-
0x18, 0xB1, 0xBC, 0x37, 0xE6, 0x71, 0x78, 0x2B, 0x8F, 0xFD, 0x6A, 0x45, 0xB9, 0xAA, 0x1C,
93-
0x0D, 0x2F, 0xAB, 0x38, 0x8C, 0xDA, 0x60, 0xEB, 0xDC, 0x05, 0x0C, 0x36, 0xB5, 0x6C, 0xEC,
94-
0xCD, 0x62, 0xB1, 0x7C, 0x14, 0xA5, 0x5E, 0x5B,
95-
];
79+
let input = hex!(
80+
"
81+
00010203 04050607 18090A0B 0C0D0E0F
82+
30111213 14151617 28191A1B 1C1D1E1F
83+
60212223 24252627 78292A2B 2C2D2E2F
84+
50313233 34353637 48393A3B 3C3D3E3F
85+
C0414243 44454647 D8494A4B 4C4D4E4F
86+
F0515253 54555657 E8595A5B 5C5D5E5F
87+
A0616263 64656667 B8696A6B 6C6D6E6F
88+
90717273 74757677 88797A7B 7C7D7E7F
89+
"
90+
);
91+
let expected_output = hex!(
92+
"
93+
A8BB9A4D 6BCB452A 793ADFB3 1790511F
94+
92152B3D C91CBB83 1F5C71D5 6F5716BD
95+
34F6C002 B4F4AD11 8E0F7A5E 496DD166
96+
2E26C445 D15DB794 9C140E1A 5810B2DF
97+
2F6BD70E 4233C386 C49B4E85 8F95CB99
98+
81634FEE 963C5530 124918B1 BC37E671
99+
782B8FFD 6A45B9AA 1C0D2FAB 388CDA60
100+
EBDC050C 36B56CEC CD62B17C 14A55E5B
101+
"
102+
);
96103

97104
let hash_params = setup_hash_params();
98105

@@ -103,28 +110,30 @@ fn test_s_box_layer() {
103110

104111
#[test]
105112
fn test_rotate_rows() {
106-
let input = [
107-
0xA8, 0xBB, 0x9A, 0x4D, 0x6B, 0xCB, 0x45, 0x2A, 0x79, 0x3A, 0xDF, 0xB3, 0x17, 0x90, 0x51,
108-
0x1F, 0x92, 0x15, 0x2B, 0x3D, 0xC9, 0x1C, 0xBB, 0x83, 0x1F, 0x5C, 0x71, 0xD5, 0x6F, 0x57,
109-
0x16, 0xBD, 0x34, 0xF6, 0xC0, 0x02, 0xB4, 0xF4, 0xAD, 0x11, 0x8E, 0x0F, 0x7A, 0x5E, 0x49,
110-
0x6D, 0xD1, 0x66, 0x2E, 0x26, 0xC4, 0x45, 0xD1, 0x5D, 0xB7, 0x94, 0x9C, 0x14, 0x0E, 0x1A,
111-
0x58, 0x10, 0xB2, 0xDF, 0x2F, 0x6B, 0xD7, 0x0E, 0x42, 0x33, 0xC3, 0x86, 0xC4, 0x9B, 0x4E,
112-
0x85, 0x8F, 0x95, 0xCB, 0x99, 0x81, 0x63, 0x4F, 0xEE, 0x96, 0x3C, 0x55, 0x30, 0x12, 0x49,
113-
0x18, 0xB1, 0xBC, 0x37, 0xE6, 0x71, 0x78, 0x2B, 0x8F, 0xFD, 0x6A, 0x45, 0xB9, 0xAA, 0x1C,
114-
0x0D, 0x2F, 0xAB, 0x38, 0x8C, 0xDA, 0x60, 0xEB, 0xDC, 0x05, 0x0C, 0x36, 0xB5, 0x6C, 0xEC,
115-
0xCD, 0x62, 0xB1, 0x7C, 0x14, 0xA5, 0x5E, 0x5B,
116-
];
117-
let expected_output = [
118-
0xA8, 0x62, 0x05, 0xAB, 0x6A, 0x37, 0x55, 0x66, 0x79, 0xBB, 0xB1, 0x0C, 0x38, 0x45, 0xE6,
119-
0x94, 0x92, 0x3A, 0x9A, 0x7C, 0x36, 0x8C, 0xB9, 0xDF, 0x1F, 0x15, 0xDF, 0x4D, 0x14, 0xB5,
120-
0xDA, 0x86, 0x34, 0x5C, 0x2B, 0xB3, 0x6B, 0xA5, 0x6C, 0x99, 0x8E, 0xF6, 0x71, 0x3D, 0x17,
121-
0xCB, 0x5E, 0x30, 0x2E, 0x0F, 0xC0, 0xD5, 0xC9, 0x90, 0x45, 0x71, 0x9C, 0x26, 0x7A, 0x02,
122-
0x6F, 0x1C, 0x51, 0xAA, 0x2F, 0x14, 0xC4, 0x5E, 0xB4, 0x57, 0xBB, 0x60, 0xC4, 0x6B, 0x0E,
123-
0x45, 0x49, 0xF4, 0x16, 0xEC, 0x81, 0x9B, 0xD7, 0x1A, 0xD1, 0x6D, 0xAD, 0x5B, 0x12, 0x63,
124-
0x4E, 0x0E, 0x58, 0x5D, 0xD1, 0x2A, 0x78, 0x49, 0x4F, 0x85, 0x42, 0x10, 0xB7, 0x1F, 0x1C,
125-
0x2B, 0x18, 0xEE, 0x8F, 0x33, 0xB2, 0x83, 0xEB, 0x0D, 0x8F, 0xB1, 0x96, 0x95, 0xC3, 0xBD,
126-
0xCD, 0xDC, 0x2F, 0xFD, 0xBC, 0x3C, 0xCB, 0x11,
127-
];
113+
let input = hex!(
114+
"
115+
A8BB9A4D 6BCB452A 793ADFB3 1790511F
116+
92152B3D C91CBB83 1F5C71D5 6F5716BD
117+
34F6C002 B4F4AD11 8E0F7A5E 496DD166
118+
2E26C445 D15DB794 9C140E1A 5810B2DF
119+
2F6BD70E 4233C386 C49B4E85 8F95CB99
120+
81634FEE 963C5530 124918B1 BC37E671
121+
782B8FFD 6A45B9AA 1C0D2FAB 388CDA60
122+
EBDC050C 36B56CEC CD62B17C 14A55E5B
123+
"
124+
);
125+
let expected_output = hex!(
126+
"
127+
A86205AB 6A375566 79BBB10C 3845E694
128+
923A9A7C 368CB9DF 1F15DF4D 14B5DA86
129+
345C2BB3 6BA56C99 8EF6713D 17CB5E30
130+
2E0FC0D5 C9904571 9C267A02 6F1C51AA
131+
2F14C45E B457BB60 C46B0E45 49F416EC
132+
819BD71A D16DAD5B 12634E0E 585DD12A
133+
78494F85 4210B71F 1C2B18EE 8F33B283
134+
EB0D8FB1 9695C3BD CDDC2FFD BC3CCB11
135+
"
136+
);
128137

129138
let hash_params = setup_hash_params();
130139

@@ -135,28 +144,30 @@ fn test_rotate_rows() {
135144

136145
#[test]
137146
fn test_mix_columns() {
138-
let input = [
139-
0xA8, 0x62, 0x05, 0xAB, 0x6A, 0x37, 0x55, 0x66, 0x79, 0xBB, 0xB1, 0x0C, 0x38, 0x45, 0xE6,
140-
0x94, 0x92, 0x3A, 0x9A, 0x7C, 0x36, 0x8C, 0xB9, 0xDF, 0x1F, 0x15, 0xDF, 0x4D, 0x14, 0xB5,
141-
0xDA, 0x86, 0x34, 0x5C, 0x2B, 0xB3, 0x6B, 0xA5, 0x6C, 0x99, 0x8E, 0xF6, 0x71, 0x3D, 0x17,
142-
0xCB, 0x5E, 0x30, 0x2E, 0x0F, 0xC0, 0xD5, 0xC9, 0x90, 0x45, 0x71, 0x9C, 0x26, 0x7A, 0x02,
143-
0x6F, 0x1C, 0x51, 0xAA, 0x2F, 0x14, 0xC4, 0x5E, 0xB4, 0x57, 0xBB, 0x60, 0xC4, 0x6B, 0x0E,
144-
0x45, 0x49, 0xF4, 0x16, 0xEC, 0x81, 0x9B, 0xD7, 0x1A, 0xD1, 0x6D, 0xAD, 0x5B, 0x12, 0x63,
145-
0x4E, 0x0E, 0x58, 0x5D, 0xD1, 0x2A, 0x78, 0x49, 0x4F, 0x85, 0x42, 0x10, 0xB7, 0x1F, 0x1C,
146-
0x2B, 0x18, 0xEE, 0x8F, 0x33, 0xB2, 0x83, 0xEB, 0x0D, 0x8F, 0xB1, 0x96, 0x95, 0xC3, 0xBD,
147-
0xCD, 0xDC, 0x2F, 0xFD, 0xBC, 0x3C, 0xCB, 0x11,
148-
];
149-
let expected_output = [
150-
0x86, 0xC3, 0x77, 0x98, 0xD2, 0xC3, 0x41, 0xA0, 0x3D, 0x40, 0xB8, 0xB9, 0xE2, 0xD0, 0x21,
151-
0xB8, 0xED, 0xF7, 0xEC, 0x7C, 0x76, 0x24, 0x85, 0x2B, 0xE4, 0x54, 0xC7, 0xEE, 0x3A, 0x2A,
152-
0xAD, 0x4E, 0x9D, 0x55, 0x30, 0x9E, 0xD9, 0x95, 0x27, 0xD0, 0x92, 0x04, 0xD4, 0x0B, 0x63,
153-
0xDC, 0x5B, 0x6F, 0x4D, 0x25, 0x90, 0xF2, 0x22, 0x83, 0x18, 0x18, 0x18, 0x19, 0xA8, 0x01,
154-
0xE2, 0x6A, 0x90, 0x90, 0x2B, 0xE1, 0xE2, 0xD9, 0xF0, 0x51, 0x81, 0xF4, 0x59, 0x6E, 0xFA,
155-
0xBC, 0x35, 0xF9, 0x84, 0xEB, 0x0C, 0xCB, 0x22, 0xFC, 0xB2, 0x2A, 0xDC, 0x5C, 0x98, 0xD3,
156-
0xED, 0x83, 0x95, 0xCD, 0x50, 0xD4, 0xCE, 0x5A, 0x52, 0x16, 0x8E, 0xD8, 0x8C, 0x03, 0x08,
157-
0x1D, 0x60, 0xB9, 0xB2, 0x8B, 0xAE, 0x4D, 0xFE, 0xA8, 0x3F, 0xFB, 0x07, 0xF1, 0x35, 0xB5,
158-
0x71, 0x78, 0xE6, 0xC8, 0x9B, 0x20, 0x6A, 0xD3,
159-
];
147+
let input = hex!(
148+
"
149+
A86205AB 6A375566 79BBB10C 3845E694
150+
923A9A7C 368CB9DF 1F15DF4D 14B5DA86
151+
345C2BB3 6BA56C99 8EF6713D 17CB5E30
152+
2E0FC0D5 C9904571 9C267A02 6F1C51AA
153+
2F14C45E B457BB60 C46B0E45 49F416EC
154+
819BD71A D16DAD5B 12634E0E 585DD12A
155+
78494F85 4210B71F 1C2B18EE 8F33B283
156+
EB0D8FB1 9695C3BD CDDC2FFD BC3CCB11
157+
"
158+
);
159+
let expected_output = hex!(
160+
"
161+
86C37798 D2C341A0 3D40B8B9 E2D021B8
162+
EDF7EC7C 7624852B E454C7EE 3A2AAD4E
163+
9D55309E D99527D0 9204D40B 63DC5B6F
164+
4D2590F2 22831818 1819A801 E26A9090
165+
2BE1E2D9 F05181F4 596EFABC 35F984EB
166+
0CCB22FC B22ADC5C 98D3ED83 95CD50D4
167+
CE5A5216 8ED88C03 081D60B9 B28BAE4D
168+
FEA83FFB 07F135B5 7178E6C8 9B206AD3
169+
"
170+
);
160171

161172
let hash_params = setup_hash_params();
162173

kupyna/src/sub_units/t_xor_plus/tests/test_xor_plus.rs

+49-44
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,38 @@
11
use crate::sub_units::t_xor_plus::{t_plus_l, t_xor_l};
22
use crate::KupynaH;
3+
use hex_literal::hex;
34

45
fn setup_hash_params() -> KupynaH {
56
KupynaH::default()
67
}
78

89
#[test]
910
fn test_t_xor_l() {
10-
let input = [
11-
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
12-
0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D,
13-
0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C,
14-
0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B,
15-
0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A,
16-
0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
17-
0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
18-
0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
19-
0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
20-
];
11+
let input = hex!(
12+
"
13+
00010203 04050607 08090A0B 0C0D0E0F
14+
10111213 14151617 18191A1B 1C1D1E1F
15+
20212223 24252627 28292A2B 2C2D2E2F
16+
30313233 34353637 38393A3B 3C3D3E3F
17+
40414243 44454647 48494A4B 4C4D4E4F
18+
50515253 54555657 58595A5B 5C5D5E5F
19+
60616263 64656667 68696A6B 6C6D6E6F
20+
70717273 74757677 78797A7B 7C7D7E7F
21+
"
22+
);
2123

22-
let expected_output = [
23-
0x60, 0x4B, 0x9D, 0xCF, 0x7E, 0xAA, 0x57, 0x85, 0x94, 0xD1, 0x83, 0xEE, 0xF2, 0xDD, 0x97,
24-
0xA3, 0x2C, 0x11, 0x1C, 0x81, 0x70, 0xC0, 0xA5, 0x08, 0x6A, 0x08, 0xC9, 0xE4, 0x28, 0x81,
25-
0x11, 0x32, 0x31, 0xBE, 0xC7, 0xB7, 0x1D, 0x0E, 0xE3, 0x1D, 0xE8, 0x36, 0x3B, 0x4A, 0xA6,
26-
0xAF, 0x89, 0x0B, 0xDE, 0xEE, 0x5C, 0x96, 0x66, 0x3A, 0x44, 0x38, 0x3A, 0x40, 0x09, 0x30,
27-
0x60, 0xE7, 0x65, 0x15, 0x2D, 0xEB, 0xEC, 0xD2, 0x5B, 0x83, 0x42, 0xC4, 0xEF, 0x4E, 0x75,
28-
0x0F, 0xC3, 0xF4, 0x81, 0x4F, 0xA9, 0xE1, 0xD1, 0x1F, 0xE7, 0xF6, 0xF8, 0xCF, 0x32, 0x72,
29-
0xE7, 0xE1, 0x61, 0x4F, 0x91, 0xAD, 0x6F, 0x01, 0xF7, 0x28, 0xD8, 0xDB, 0xBE, 0x1F, 0x2A,
30-
0xC1, 0x97, 0x77, 0x1E, 0x37, 0x8F, 0x8D, 0xD7, 0xD1, 0x31, 0x32, 0x7B, 0xF1, 0xA9, 0x43,
31-
0xA9, 0x55, 0xF1, 0xF7, 0xC8, 0x32, 0xAD, 0xF3,
32-
];
24+
let expected_output = hex!(
25+
"
26+
604B9DCF 7EAA5785 94D183EE F2DD97A3
27+
2C111C81 70C0A508 6A08C9E4 28811132
28+
31BEC7B7 1D0EE31D E8363B4A A6AF890B
29+
DEEE5C96 663A4438 3A400930 60E76515
30+
2DEBECD2 5B8342C4 EF4E750F C3F4814F
31+
A9E1D11F E7F6F8CF 3272E7E1 614F91AD
32+
6F01F728 D8DBBE1F 2AC19777 1E378F8D
33+
D7D13132 7BF1A943 A955F1F7 C832ADF3
34+
"
35+
);
3336

3437
let hash_params = setup_hash_params();
3538
let result = t_xor_l(&input, &hash_params);
@@ -38,29 +41,31 @@ fn test_t_xor_l() {
3841

3942
#[test]
4043
fn test_t_plus_l() {
41-
let input = [
42-
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
43-
0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D,
44-
0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C,
45-
0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B,
46-
0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A,
47-
0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
48-
0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
49-
0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
50-
0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
51-
];
44+
let input = hex!(
45+
"
46+
00010203 04050607 08090A0B 0C0D0E0F
47+
10111213 14151617 18191A1B 1C1D1E1F
48+
20212223 24252627 28292A2B 2C2D2E2F
49+
30313233 34353637 38393A3B 3C3D3E3F
50+
40414243 44454647 48494A4B 4C4D4E4F
51+
50515253 54555657 58595A5B 5C5D5E5F
52+
60616263 64656667 68696A6B 6C6D6E6F
53+
70717273 74757677 78797A7B 7C7D7E7F
54+
"
55+
);
5256

53-
let expected_output = [
54-
0x36, 0x57, 0x5D, 0x99, 0x30, 0x36, 0xAF, 0xDE, 0xB2, 0x65, 0x4C, 0x1E, 0x13, 0x66, 0x0A,
55-
0x9D, 0x4F, 0x0E, 0x10, 0x5C, 0xA2, 0x33, 0x6F, 0x2B, 0xB3, 0x69, 0x00, 0x45, 0x25, 0x9A,
56-
0x1A, 0x9D, 0x3F, 0x24, 0x85, 0x07, 0xC3, 0x42, 0xA7, 0x0B, 0x42, 0xF7, 0x49, 0x81, 0xEC,
57-
0xE4, 0x6D, 0xD0, 0x5E, 0x1D, 0x30, 0x9F, 0x77, 0x4E, 0x1E, 0xD2, 0x13, 0x24, 0x7C, 0xC8,
58-
0x21, 0x46, 0x16, 0x73, 0xC7, 0x41, 0x9A, 0xE1, 0x2B, 0x93, 0x61, 0xF3, 0x2C, 0x75, 0x38,
59-
0xC1, 0x59, 0x09, 0xB1, 0x97, 0xE2, 0x0F, 0x9E, 0x09, 0xDD, 0x28, 0xCD, 0xD4, 0xD7, 0xC2,
60-
0x34, 0xDB, 0xDB, 0x47, 0x93, 0x18, 0xA2, 0x58, 0xA7, 0x18, 0x0B, 0x18, 0x33, 0x17, 0x8A,
61-
0x20, 0xFC, 0xFE, 0x05, 0xA6, 0x06, 0x4F, 0xD7, 0xB1, 0xEA, 0x96, 0x07, 0x99, 0x5E, 0x98,
62-
0xD9, 0x0D, 0x2D, 0x55, 0xDC, 0xF7, 0x2F, 0x5F,
63-
];
57+
let expected_output = hex!(
58+
"
59+
36575D99 3036AFDE B2654C1E 13660A9D
60+
4F0E105C A2336F2B B3690045 259A1A9D
61+
3F248507 C342A70B 42F74981 ECE46DD0
62+
5E1D309F 774E1ED2 13247CC8 21461673
63+
C7419AE1 2B9361F3 2C7538C1 5909B197
64+
E20F9E09 DD28CDD4 D7C234DB DB479318
65+
A258A718 0B183317 8A20FCFE 05A6064F
66+
D7B1EA96 07995E98 D90D2D55 DCF72F5F
67+
"
68+
);
6469

6570
let hash_params = setup_hash_params();
6671
let result = t_plus_l(&input, &hash_params);

0 commit comments

Comments
 (0)