1Title = Argon2 tests (from rfc 9106 and others)
2
3KDF = ARGON2D
4Ctrl.lanes = lanes:4
5Ctrl.iter = iter:3
6Ctrl.memcost = memcost:32
7Ctrl.secret = hexsecret:0303030303030303
8Ctrl.pass = hexpass:0101010101010101010101010101010101010101010101010101010101010101
9Ctrl.salt = hexsalt:02020202020202020202020202020202
10Ctrl.ad = hexad:040404040404040404040404
11Output = 512B391B6F1162975371D30919734294F868E3BE3984F3C1A13A4DB9FABE4ACB
12
13KDF = ARGON2D
14Ctrl.lanes = lanes:4
15Ctrl.iter = iter:3
16Ctrl.memcost = memcost:32
17Ctrl.secret = hexsecret:0303030303030303
18Ctrl.pass = hexpass:0101010101010101010101010101010101010101010101010101010101010101
19Ctrl.salt = hexsalt:02020202020202020202020202020202
20Ctrl.ad = hexad:040404040404040404040404
21Ctrl.early_clean = early_clean:1
22Output = 512B391B6F1162975371D30919734294F868E3BE3984F3C1A13A4DB9FABE4ACB
23
24KDF = ARGON2I
25Ctrl.lanes = lanes:4
26Ctrl.iter = iter:3
27Ctrl.memcost = memcost:32
28Ctrl.secret = hexsecret:0303030303030303
29Ctrl.pass = hexpass:0101010101010101010101010101010101010101010101010101010101010101
30Ctrl.salt = hexsalt:02020202020202020202020202020202
31Ctrl.ad = hexad:040404040404040404040404
32Output = C814D9D1DC7F37AA13F0D77F2494BDA1C8DE6B016DD388D29952A4C4672B6CE8
33
34KDF = ARGON2ID
35Ctrl.lanes = lanes:4
36Ctrl.iter = iter:3
37Ctrl.memcost = memcost:32
38Ctrl.secret = hexsecret:0303030303030303
39Ctrl.pass = hexpass:0101010101010101010101010101010101010101010101010101010101010101
40Ctrl.salt = hexsalt:02020202020202020202020202020202
41Ctrl.ad = hexad:040404040404040404040404
42Output = 0D640DF58D78766C08C037A34A8B53C9D01EF0452D75B65EB52520E96B01E659
43
44KDF = ARGON2D
45Ctrl.pass = hexpass:31323334353637383930
46Ctrl.salt = hexsalt:73616C7473616C74
47Output = D16AD773B1C6400D3193BC3E66271603E9DE72BACE20AF3F89C236F5434CDEC99072DDFC6B9C77EA9F386C0E8D7CB0C37CEC6EC3277A22C92D5BE58EF67C7EAA
48
49KDF = ARGON2ID
50Ctrl.lanes = lanes:4
51Ctrl.iter = iter:3
52Ctrl.memcost = memcost:32
53Ctrl.salt = hexsalt:02020202020202020202020202020202
54Output = 0A34F1ABDE67086C82E785EAF17C68382259A264F4E61B91CD2763CB75AC189A
55
56KDF = ARGON2D
57Ctrl.pass = hexpass:31323334353637383930
58Ctrl.salt = hexsalt:73616C7473616C74
59Output = D16AD773B1C6400D3193BC3E66271603E9DE72BACE20AF3F89C236F5434CDEC99072DDFC6B9C77EA9F386C0E8D7CB0C37CEC6EC3277A22C92D5BE58EF67C7EAA
60
61KDF = ARGON2D
62Ctrl.lanes = lanes:2
63Ctrl.memcost = memcost:65536
64Ctrl.pass = hexpass:31323334353637383930
65Ctrl.salt = hexsalt:73616C7473616C74
66Output = 5CA0AB135DE1241454840172696C301C7B8FD99A788CD11CF9699044CADF7FCA0A6E3762CB3043A71ADF6553DB3FD7925101B0CCF8868B098492A4ADDB2486BC
67
68KDF = ARGON2I
69Ctrl.lanes = lanes:4
70Ctrl.iter = iter:3
71Ctrl.memcost = memcost:32
72Ctrl.pass = hexpass:0101010101010101010101010101010101010101010101010101010101010101
73Ctrl.salt = hexsalt:02020202020202020202020202020202
74Output = A9A7510E6DB4D588BA3414CD0E094D480D683F97B9CCB612A544FE8EF65BA8E0
75
76KDF = ARGON2ID
77Ctrl.lanes = lanes:4
78Ctrl.iter = iter:3
79Ctrl.memcost = memcost:32
80Ctrl.pass = hexpass:0101010101010101010101010101010101010101010101010101010101010101
81Ctrl.salt = hexsalt:02020202020202020202020202020202
82Output = 03AAB965C12001C9D7D0D2DE33192C0494B684BB148196D73C1DF1ACAF6D0C2E
83
84KDF = ARGON2D
85Threads = 2
86Ctrl.threads = threads:2
87Ctrl.lanes = lanes:2
88Ctrl.memcost = memcost:65536
89Ctrl.pass = pass:1234567890
90Ctrl.salt = hexsalt:73616C7473616C74
91Output = A86C83A19F0B234ECBA8C275D16D059153F961E4C39EC9B1BE98B3E73D791789363682443AD594334048634E91C493AFFED0BC29FD329A0E553C00149D6DB19AF4E4A354AEC14DBD575D78BA87D4A4BC4746666E7A4E6EE1572BBFFC2EBA308A2D825CB7B41FDE3A95D5CFF0DFA2D0FDD636B32AEA8B4A3C532742D330BD1B90
92
93KDF = ARGON2ID
94Threads = 2
95Ctrl.threads = threads:2
96Ctrl.lanes = lanes:4
97Ctrl.iter = iter:3
98Ctrl.memcost = memcost:32
99Ctrl.pass = hexpass:0101010101010101010101010101010101010101010101010101010101010101
100Ctrl.salt = hexsalt:02020202020202020202020202020202
101Output = 03AAB965C12001C9D7D0D2DE33192C0494B684BB148196D73C1DF1ACAF6D0C2E
102
103# Expected fail on condition violation: m_cost < 8 * lanes
104
105KDF = ARGON2D
106Ctrl.lanes = lanes:100
107Ctrl.memcost = memcost:799
108Ctrl.salt = hexsalt:02020202020202020202020202020202
109Output = 03AAB965C12001C9D7D0D2DE33192C0494B684BB148196D73C1DF1ACAF6D0C2E
110Result = KDF_DERIVE_ERROR
111
112# Expected fail on condition violation: m_cost < 2 * syncpoints = 8
113
114KDF = ARGON2D
115Ctrl.memcost = memcost:7
116Ctrl.pass = hexpass:31323334353637383930
117Ctrl.salt = hexsalt:73616C7473616C74
118Result = KDF_CTRL_ERROR
119
120# Expected fail on condition violation: threads > avail threads
121
122KDF = ARGON2D
123Ctrl.threads = threads:2
124Ctrl.lanes = lanes:2
125Ctrl.memcost = memcost:65536
126Ctrl.pass = hexpass:31323334353637383930
127Ctrl.salt = hexsalt:73616C7473616C74
128Result = KDF_DERIVE_ERROR
129
130# Expected fail on condition violation: lanes >= 1
131KDF = ARGON2D
132Ctrl.lanes = lanes:0
133Result = KDF_CTRL_ERROR
134
135# Expected fail on condition violation: lanes <= 0xFFFFFF
136KDF = ARGON2D
137Ctrl.lanes = lanes:0x1000000
138Result = KDF_CTRL_ERROR
139
140# Expected fail on condition violation: threads >= 1
141KDF = ARGON2D
142Ctrl.lanes = threads:0
143Result = KDF_CTRL_ERROR
144
145# Expected fail on condition violation: threads <= 0xFFFFFF
146KDF = ARGON2D
147Ctrl.lanes = threads:0x1000000
148Result = KDF_CTRL_ERROR
149
150# Expected fail on condition violation: outlen >= 4
151KDF = ARGON2D
152Ctrl.size = size:3
153Result = KDF_CTRL_ERROR
154
155# Expected fail on condition violation: iter >= 1
156KDF = ARGON2D
157Ctrl.iter = iter:0
158Result = KDF_CTRL_ERROR
159
160# Expected fail on condition violation: saltlen > 8
161KDF = ARGON2D
162Ctrl.salt = hexsalt:0202
163Result = KDF_CTRL_ERROR
164
165# Expected fail on condition violation: invalid version
166KDF = ARGON2D
167Ctrl.version = version:1
168Result = KDF_CTRL_ERROR
169