Convert existing usage of assert() to ossl_assert() in libssl
[openssl.git] / test / evpkdf.txt
1 #
2 # Copyright 2001-2017 The OpenSSL Project Authors. All Rights Reserved.
3 #
4 # Licensed under the OpenSSL license (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 KDF=TLS1-PRF
17 Ctrl.md = md:MD5-SHA1
18 Ctrl.Secret = hexsecret:bded7fa5c1699c010be23dd06ada3a48349f21e5f86263d512c0c5cc379f0e780ec55d9844b2f1db02a96453513568d0
19 Ctrl.label = seed:master secret
20 Ctrl.client_random = hexseed:e5acaf549cd25c22d964c0d930fa4b5261d2507fad84c33715b7b9a864020693
21 Ctrl.server_random = hexseed:135e4d557fdf3aa6406d82975d5c606a9734c9334b42136e96990fbd5358cdb2
22 Output = 2f6962dfbc744c4b2138bb6b3d33054c5ecc14f24851d9896395a44ab3964efc2090c5bf51a0891209f46c1e1e998f62
23
24 KDF=TLS1-PRF
25 Ctrl.md = md:MD5-SHA1
26 Ctrl.Secret = hexsecret:2f6962dfbc744c4b2138bb6b3d33054c5ecc14f24851d9896395a44ab3964efc2090c5bf51a0891209f46c1e1e998f62
27 Ctrl.label = seed:key expansion
28 Ctrl.server_random = hexseed:67267e650eb32444119d222a368c191af3082888dc35afe8368e638c828874be
29 Ctrl.client_random = hexseed:d58a7b1cd4fedaa232159df652ce188f9d997e061b9bf48e83b62990440931f6
30 Output = 3088825988e77fce68d19f756e18e43eb7fe672433504feaf99b3c503d9091b164f166db301d70c9fc0870b4a94563907bee1a61fb786cb717576890bcc51cb9ead97e01d0a2fea99c953377b195205ff07b369589178796edc963fd80fdbe518a2fc1c35c18ae8d
31
32 KDF=TLS1-PRF
33 Ctrl.md = md:SHA256
34 Ctrl.Secret = hexsecret:f8938ecc9edebc5030c0c6a441e213cd24e6f770a50dda07876f8d55da062bcadb386b411fd4fe4313a604fce6c17fbc
35 Ctrl.label = seed:master secret
36 Ctrl.client_random = hexseed:36c129d01a3200894b9179faac589d9835d58775f9b5ea3587cb8fd0364cae8c
37 Ctrl.server_random = hexseed:f6c9575ed7ddd73e1f7d16eca115415812a43c2b747daaaae043abfb50053fce
38 Output = 202c88c00f84a17a20027079604787461176455539e705be730890602c289a5001e34eeb3a043e5d52a65e66125188bf
39
40 KDF=TLS1-PRF
41 Ctrl.md = md:SHA256
42 Ctrl.Secret = hexsecret:202c88c00f84a17a20027079604787461176455539e705be730890602c289a5001e34eeb3a043e5d52a65e66125188bf
43 Ctrl.label = seed:key expansion
44 Ctrl.server_random = hexseed:ae6c806f8ad4d80784549dff28a4b58fd837681a51d928c3e30ee5ff14f39868
45 Ctrl.client_random = hexseed:62e1fd91f23f558a605f28478c58cf72637b89784d959df7e946d3f07bd1b616
46 Output = d06139889fffac1e3a71865f504aa5d0d2a2e89506c6f2279b670c3e1b74f531016a2530c51a3a0f7e1d6590d0f0566b2f387f8d11fd4f731cdd572d2eae927f6f2f81410b25e6960be68985add6c38445ad9f8c64bf8068bf9a6679485d966f1ad6f68b43495b10a683755ea2b858d70ccac7ec8b053c6bd41ca299d4e51928
47
48 # Missing digest.
49 KDF=TLS1-PRF
50 Ctrl.Secret = hexsecret:01
51 Ctrl.Seed = hexseed:02
52 Output = 03
53 Result = KDF_DERIVE_ERROR
54
55 # Missing secret.
56 KDF=TLS1-PRF
57 Ctrl.md = md:MD5-SHA1
58 Ctrl.Seed = hexseed:02
59 Output = 03
60 Result = KDF_DERIVE_ERROR
61
62 # HKDF tests, from RFC5869 test vectors
63
64 KDF = HKDF
65 Ctrl.md = md:SHA256
66 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
67 Ctrl.salt = hexsalt:000102030405060708090a0b0c
68 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
69 Output = 3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865
70
71 KDF = HKDF
72 Ctrl.mode = mode:EXTRACT_ONLY
73 Ctrl.md = md:SHA256
74 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
75 Ctrl.salt = hexsalt:000102030405060708090a0b0c
76 Output = 077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5
77
78 KDF = HKDF
79 Ctrl.mode = mode:EXPAND_ONLY
80 Ctrl.md = md:SHA256
81 Ctrl.IKM = hexkey:077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5
82 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
83 Output = 3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865
84
85 KDF = HKDF
86 Ctrl.md = md:SHA256
87 Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
88 Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
89 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
90 Output = b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87
91
92 KDF = HKDF
93 Ctrl.mode = mode:EXTRACT_ONLY
94 Ctrl.md = md:SHA256
95 Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
96 Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
97 Output = 06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244
98
99 KDF = HKDF
100 Ctrl.mode = mode:EXPAND_ONLY
101 Ctrl.md = md:SHA256
102 Ctrl.IKM = hexkey:06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244
103 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
104 Output = b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87
105
106 KDF = HKDF
107 Ctrl.md = md:SHA256
108 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
109 Ctrl.salt = salt:
110 Ctrl.info = info:
111 Output = 8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8
112
113 KDF = HKDF
114 Ctrl.mode = mode:EXTRACT_ONLY
115 Ctrl.md = md:SHA256
116 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
117 Ctrl.salt = salt:
118 Ctrl.info = info:
119 Output = 19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04
120
121 KDF = HKDF
122 Ctrl.mode = mode:EXPAND_ONLY
123 Ctrl.md = md:SHA256
124 Ctrl.IKM = hexkey:19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04
125 Ctrl.info = info:
126 Output = 8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8
127
128 KDF = HKDF
129 Ctrl.md = md:SHA1
130 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b
131 Ctrl.salt = hexsalt:000102030405060708090a0b0c
132 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
133 Output = 085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896
134
135 KDF = HKDF
136 Ctrl.mode = mode:EXTRACT_ONLY
137 Ctrl.md = md:SHA1
138 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b
139 Ctrl.salt = hexsalt:000102030405060708090a0b0c
140 Output = 9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243
141
142 KDF = HKDF
143 Ctrl.mode = mode:EXPAND_ONLY
144 Ctrl.md = md:SHA1
145 Ctrl.IKM = hexkey:9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243
146 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
147 Output = 085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896
148
149 KDF = HKDF
150 Ctrl.md = md:SHA1
151 Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
152 Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
153 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
154 Output = 0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4
155
156 KDF = HKDF
157 Ctrl.mode = mode:EXTRACT_ONLY
158 Ctrl.md = md:SHA1
159 Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
160 Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
161 Output = 8adae09a2a307059478d309b26c4115a224cfaf6
162
163 KDF = HKDF
164 Ctrl.mode = mode:EXPAND_ONLY
165 Ctrl.md = md:SHA1
166 Ctrl.IKM = hexkey:8adae09a2a307059478d309b26c4115a224cfaf6
167 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
168 Output = 0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4
169
170 KDF = HKDF
171 Ctrl.md = md:SHA1
172 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
173 Ctrl.salt = salt:
174 Ctrl.info = info:
175 Output = 0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918
176
177 KDF = HKDF
178 Ctrl.mode = mode:EXTRACT_ONLY
179 Ctrl.md = md:SHA1
180 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
181 Ctrl.salt = salt:
182 Output = da8c8a73c7fa77288ec6f5e7c297786aa0d32d01
183
184 KDF = HKDF
185 Ctrl.mode = mode:EXPAND_ONLY
186 Ctrl.md = md:SHA1
187 Ctrl.IKM = hexkey:da8c8a73c7fa77288ec6f5e7c297786aa0d32d01
188 Ctrl.info = info:
189 Output = 0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918
190
191 KDF = HKDF
192 Ctrl.md = md:SHA1
193 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
194 Ctrl.salt = salt:
195 Ctrl.info = info:
196 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
197
198 KDF = HKDF
199 Ctrl.mode = mode:EXTRACT_ONLY
200 Ctrl.md = md:SHA1
201 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
202 Ctrl.salt = salt:
203 Output = 2adccada18779e7c2077ad2eb19d3f3e731385dd
204
205 KDF = HKDF
206 Ctrl.mode = mode:EXPAND_ONLY
207 Ctrl.md = md:SHA1
208 Ctrl.IKM = hexkey:2adccada18779e7c2077ad2eb19d3f3e731385dd
209 Ctrl.info = info:
210 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
211
212 KDF = HKDF
213 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
214 Ctrl.salt = salt:
215 Ctrl.info = info:
216 Output = 00
217 Result = KDF_DERIVE_ERROR
218
219 KDF = HKDF
220 Ctrl.md = md:SHA1
221 Ctrl.salt = salt:
222 Ctrl.info = info:
223 Output = 00
224 Result = KDF_DERIVE_ERROR
225
226 KDF = HKDF
227 Ctrl.md = md:SHA1
228 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
229 Ctrl.info = info:
230 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
231
232 KDF = HKDF
233 Ctrl.md = md:SHA1
234 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
235 Ctrl.salt = salt:
236 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
237
238 KDF = HKDF
239 Ctrl.mode = mode:EXTRACT_AND_EXPAND
240 Ctrl.md = md:SHA1
241 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
242 Ctrl.salt = salt:
243 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
244
245