evpkdf.txt 13 KB

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