16f439f9e6d224f30db1f1f953e6510416aa8eba
[openssl.git] / test / recipes / 30-test_evp_data / evpkdf.txt
1 #
2 # Copyright 2001-2017 The OpenSSL Project Authors. All Rights Reserved.
3 #
4 # Licensed under the Apache License 2.0 (the "License").  You may not use
5 # this file except in compliance with the License.  You can obtain a copy
6 # in the file LICENSE in the source distribution or at
7 # https://www.openssl.org/source/license.html
8
9 # Tests start with one of these keywords
10 #       Cipher Decrypt Derive Digest Encoding KDF MAC PBE
11 #       PrivPubKeyPair Sign Verify VerifyRecover
12 # and continue until a blank line.  Lines starting with a pound sign,
13 # like this prolog, are ignored.
14
15 Title = TLS1 PRF tests (from NIST test vectors)
16
17 KDF=TLS1-PRF
18 Ctrl.md = md:MD5-SHA1
19 Ctrl.Secret = hexsecret:bded7fa5c1699c010be23dd06ada3a48349f21e5f86263d512c0c5cc379f0e780ec55d9844b2f1db02a96453513568d0
20 Ctrl.label = seed:master secret
21 Ctrl.client_random = hexseed:e5acaf549cd25c22d964c0d930fa4b5261d2507fad84c33715b7b9a864020693
22 Ctrl.server_random = hexseed:135e4d557fdf3aa6406d82975d5c606a9734c9334b42136e96990fbd5358cdb2
23 Output = 2f6962dfbc744c4b2138bb6b3d33054c5ecc14f24851d9896395a44ab3964efc2090c5bf51a0891209f46c1e1e998f62
24
25 KDF=TLS1-PRF
26 Ctrl.md = md:MD5-SHA1
27 Ctrl.Secret = hexsecret:2f6962dfbc744c4b2138bb6b3d33054c5ecc14f24851d9896395a44ab3964efc2090c5bf51a0891209f46c1e1e998f62
28 Ctrl.label = seed:key expansion
29 Ctrl.server_random = hexseed:67267e650eb32444119d222a368c191af3082888dc35afe8368e638c828874be
30 Ctrl.client_random = hexseed:d58a7b1cd4fedaa232159df652ce188f9d997e061b9bf48e83b62990440931f6
31 Output = 3088825988e77fce68d19f756e18e43eb7fe672433504feaf99b3c503d9091b164f166db301d70c9fc0870b4a94563907bee1a61fb786cb717576890bcc51cb9ead97e01d0a2fea99c953377b195205ff07b369589178796edc963fd80fdbe518a2fc1c35c18ae8d
32
33 KDF=TLS1-PRF
34 Ctrl.md = md:SHA256
35 Ctrl.Secret = hexsecret:f8938ecc9edebc5030c0c6a441e213cd24e6f770a50dda07876f8d55da062bcadb386b411fd4fe4313a604fce6c17fbc
36 Ctrl.label = seed:master secret
37 Ctrl.client_random = hexseed:36c129d01a3200894b9179faac589d9835d58775f9b5ea3587cb8fd0364cae8c
38 Ctrl.server_random = hexseed:f6c9575ed7ddd73e1f7d16eca115415812a43c2b747daaaae043abfb50053fce
39 Output = 202c88c00f84a17a20027079604787461176455539e705be730890602c289a5001e34eeb3a043e5d52a65e66125188bf
40
41 KDF=TLS1-PRF
42 Ctrl.md = md:SHA256
43 Ctrl.Secret = hexsecret:202c88c00f84a17a20027079604787461176455539e705be730890602c289a5001e34eeb3a043e5d52a65e66125188bf
44 Ctrl.label = seed:key expansion
45 Ctrl.server_random = hexseed:ae6c806f8ad4d80784549dff28a4b58fd837681a51d928c3e30ee5ff14f39868
46 Ctrl.client_random = hexseed:62e1fd91f23f558a605f28478c58cf72637b89784d959df7e946d3f07bd1b616
47 Output = d06139889fffac1e3a71865f504aa5d0d2a2e89506c6f2279b670c3e1b74f531016a2530c51a3a0f7e1d6590d0f0566b2f387f8d11fd4f731cdd572d2eae927f6f2f81410b25e6960be68985add6c38445ad9f8c64bf8068bf9a6679485d966f1ad6f68b43495b10a683755ea2b858d70ccac7ec8b053c6bd41ca299d4e51928
48
49 # As above but use long name for KDF
50 KDF=tls1-prf
51 Ctrl.md = md:SHA256
52 Ctrl.Secret = hexsecret:202c88c00f84a17a20027079604787461176455539e705be730890602c289a5001e34eeb3a043e5d52a65e66125188bf
53 Ctrl.label = seed:key expansion
54 Ctrl.server_random = hexseed:ae6c806f8ad4d80784549dff28a4b58fd837681a51d928c3e30ee5ff14f39868
55 Ctrl.client_random = hexseed:62e1fd91f23f558a605f28478c58cf72637b89784d959df7e946d3f07bd1b616
56 Output = d06139889fffac1e3a71865f504aa5d0d2a2e89506c6f2279b670c3e1b74f531016a2530c51a3a0f7e1d6590d0f0566b2f387f8d11fd4f731cdd572d2eae927f6f2f81410b25e6960be68985add6c38445ad9f8c64bf8068bf9a6679485d966f1ad6f68b43495b10a683755ea2b858d70ccac7ec8b053c6bd41ca299d4e51928
57
58 # Missing digest.
59 KDF=TLS1-PRF
60 Ctrl.Secret = hexsecret:01
61 Ctrl.Seed = hexseed:02
62 Output = 03
63 Result = KDF_DERIVE_ERROR
64
65 # Missing secret.
66 KDF=TLS1-PRF
67 Ctrl.md = md:MD5-SHA1
68 Ctrl.Seed = hexseed:02
69 Output = 03
70 Result = KDF_DERIVE_ERROR
71
72 Title = HKDF tests (from RFC5869 test vectors)
73
74 KDF = HKDF
75 Ctrl.md = md:SHA256
76 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
77 Ctrl.salt = hexsalt:000102030405060708090a0b0c
78 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
79 Output = 3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865
80
81 KDF = HKDF
82 Ctrl.mode = mode:EXTRACT_ONLY
83 Ctrl.md = md:SHA256
84 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
85 Ctrl.salt = hexsalt:000102030405060708090a0b0c
86 Output = 077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5
87
88 KDF = HKDF
89 Ctrl.mode = mode:EXPAND_ONLY
90 Ctrl.md = md:SHA256
91 Ctrl.IKM = hexkey:077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5
92 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
93 Output = 3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865
94
95 KDF = HKDF
96 Ctrl.md = md:SHA256
97 Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
98 Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
99 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
100 Output = b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87
101
102 KDF = HKDF
103 Ctrl.mode = mode:EXTRACT_ONLY
104 Ctrl.md = md:SHA256
105 Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
106 Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
107 Output = 06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244
108
109 KDF = HKDF
110 Ctrl.mode = mode:EXPAND_ONLY
111 Ctrl.md = md:SHA256
112 Ctrl.IKM = hexkey:06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244
113 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
114 Output = b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87
115
116 KDF = HKDF
117 Ctrl.md = md:SHA256
118 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
119 Ctrl.salt = salt:
120 Ctrl.info = info:
121 Output = 8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8
122
123 KDF = HKDF
124 Ctrl.mode = mode:EXTRACT_ONLY
125 Ctrl.md = md:SHA256
126 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
127 Ctrl.salt = salt:
128 Ctrl.info = info:
129 Output = 19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04
130
131 KDF = HKDF
132 Ctrl.mode = mode:EXPAND_ONLY
133 Ctrl.md = md:SHA256
134 Ctrl.IKM = hexkey:19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04
135 Ctrl.info = info:
136 Output = 8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8
137
138 KDF = HKDF
139 Ctrl.md = md:SHA1
140 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b
141 Ctrl.salt = hexsalt:000102030405060708090a0b0c
142 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
143 Output = 085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896
144
145 KDF = HKDF
146 Ctrl.mode = mode:EXTRACT_ONLY
147 Ctrl.md = md:SHA1
148 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b
149 Ctrl.salt = hexsalt:000102030405060708090a0b0c
150 Output = 9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243
151
152 KDF = HKDF
153 Ctrl.mode = mode:EXPAND_ONLY
154 Ctrl.md = md:SHA1
155 Ctrl.IKM = hexkey:9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243
156 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
157 Output = 085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896
158
159 KDF = HKDF
160 Ctrl.md = md:SHA1
161 Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
162 Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
163 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
164 Output = 0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4
165
166 KDF = HKDF
167 Ctrl.mode = mode:EXTRACT_ONLY
168 Ctrl.md = md:SHA1
169 Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
170 Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
171 Output = 8adae09a2a307059478d309b26c4115a224cfaf6
172
173 KDF = HKDF
174 Ctrl.mode = mode:EXPAND_ONLY
175 Ctrl.md = md:SHA1
176 Ctrl.IKM = hexkey:8adae09a2a307059478d309b26c4115a224cfaf6
177 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
178 Output = 0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4
179
180 KDF = HKDF
181 Ctrl.md = md:SHA1
182 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
183 Ctrl.salt = salt:
184 Ctrl.info = info:
185 Output = 0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918
186
187 KDF = HKDF
188 Ctrl.mode = mode:EXTRACT_ONLY
189 Ctrl.md = md:SHA1
190 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
191 Ctrl.salt = salt:
192 Output = da8c8a73c7fa77288ec6f5e7c297786aa0d32d01
193
194 KDF = HKDF
195 Ctrl.mode = mode:EXPAND_ONLY
196 Ctrl.md = md:SHA1
197 Ctrl.IKM = hexkey:da8c8a73c7fa77288ec6f5e7c297786aa0d32d01
198 Ctrl.info = info:
199 Output = 0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918
200
201 KDF = HKDF
202 Ctrl.md = md:SHA1
203 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
204 Ctrl.salt = salt:
205 Ctrl.info = info:
206 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
207
208 KDF = HKDF
209 Ctrl.mode = mode:EXTRACT_ONLY
210 Ctrl.md = md:SHA1
211 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
212 Ctrl.salt = salt:
213 Output = 2adccada18779e7c2077ad2eb19d3f3e731385dd
214
215 KDF = HKDF
216 Ctrl.mode = mode:EXPAND_ONLY
217 Ctrl.md = md:SHA1
218 Ctrl.IKM = hexkey:2adccada18779e7c2077ad2eb19d3f3e731385dd
219 Ctrl.info = info:
220 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
221
222 KDF = HKDF
223 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
224 Ctrl.salt = salt:
225 Ctrl.info = info:
226 Output = 00
227 Result = KDF_DERIVE_ERROR
228
229 KDF = HKDF
230 Ctrl.md = md:SHA1
231 Ctrl.salt = salt:
232 Ctrl.info = info:
233 Output = 00
234 Result = KDF_DERIVE_ERROR
235
236 KDF = HKDF
237 Ctrl.md = md:SHA1
238 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
239 Ctrl.info = info:
240 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
241
242 KDF = HKDF
243 Ctrl.md = md:SHA1
244 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
245 Ctrl.salt = salt:
246 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
247
248 KDF = HKDF
249 Ctrl.mode = mode:EXTRACT_AND_EXPAND
250 Ctrl.md = md:SHA1
251 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
252 Ctrl.salt = salt:
253 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
254
255 Title = id-scrypt tests (from draft-josefsson-id-scrypt-kdf-03 and others)
256
257 KDF = scrypt
258 Ctrl.pass = pass:
259 Ctrl.salt = salt:
260 Ctrl.N = N:16
261 Ctrl.r = r:1
262 Ctrl.p = p:1
263 Output = 77d6576238657b203b19ca42c18a0497f16b4844e3074ae8dfdffa3fede21442fcd0069ded0948f8326a753a0fc81f17e8d3e0fb2e0d3628cf35e20c38d18906
264
265 KDF = scrypt
266 Ctrl.pass = pass:password
267 Ctrl.salt = salt:NaCl
268 Ctrl.N = N:1024
269 Ctrl.r = r:8
270 Ctrl.p = p:16
271 Output = fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640
272
273 KDF = scrypt
274 Ctrl.hexpass = hexpass:70617373776f7264
275 Ctrl.salt = salt:NaCl
276 Ctrl.N = N:1024
277 Ctrl.r = r:8
278 Ctrl.p = p:16
279 Output = fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640
280
281 KDF = scrypt
282 Ctrl.pass = pass:password
283 Ctrl.hexsalt = hexsalt:4e61436c
284 Ctrl.N = N:1024
285 Ctrl.r = r:8
286 Ctrl.p = p:16
287 Output = fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640
288
289 KDF = scrypt
290 Ctrl.pass = pass:pleaseletmein
291 Ctrl.salt = salt:SodiumChloride
292 Ctrl.N = N:16384
293 Ctrl.r = r:8
294 Ctrl.p = p:1
295 Output = 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887
296
297 # Out of memory
298 KDF = scrypt
299 Ctrl.pass = pass:pleaseletmein
300 Ctrl.salt = salt:SodiumChloride
301 Ctrl.N = N:1048576
302 Ctrl.r = r:8
303 Ctrl.p = p:1
304 Result = INTERNAL_ERROR
305