Home | History | Annotate | Line # | Download | only in 30-test_evp_data
      1 #
      2 # Copyright 2001-2024 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 are ignored.
     13 
     14 Title = HKDF tests (from RFC5869 test vectors)
     15 
     16 KDF = HKDF
     17 Ctrl.digest = digest:SHA256
     18 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
     19 Ctrl.salt = hexsalt:000102030405060708090a0b0c
     20 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
     21 Output = 3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865
     22 
     23 KDF = HKDF
     24 Ctrl.mode = mode:EXTRACT_ONLY
     25 Ctrl.digest = digest:SHA256
     26 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
     27 Ctrl.salt = hexsalt:000102030405060708090a0b0c
     28 Output = 077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5
     29 
     30 KDF = HKDF
     31 Ctrl.mode = mode:EXPAND_ONLY
     32 Ctrl.digest = digest:SHA256
     33 Ctrl.IKM = hexkey:077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5
     34 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
     35 Output = 3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865
     36 
     37 KDF = HKDF
     38 Ctrl.digest = digest:SHA256
     39 Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
     40 Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
     41 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
     42 Output = b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87
     43 
     44 KDF = HKDF
     45 Ctrl.mode = mode:EXTRACT_ONLY
     46 Ctrl.digest = digest:SHA256
     47 Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
     48 Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
     49 Output = 06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244
     50 
     51 KDF = HKDF
     52 Ctrl.mode = mode:EXPAND_ONLY
     53 Ctrl.digest = digest:SHA256
     54 Ctrl.IKM = hexkey:06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244
     55 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
     56 Output = b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87
     57 
     58 KDF = HKDF
     59 Ctrl.digest = digest:SHA256
     60 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
     61 Ctrl.salt = salt:
     62 Ctrl.info = info:
     63 Output = 8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8
     64 
     65 KDF = HKDF
     66 Ctrl.mode = mode:EXTRACT_ONLY
     67 Ctrl.digest = digest:SHA256
     68 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
     69 Ctrl.salt = salt:
     70 Ctrl.info = info:
     71 Output = 19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04
     72 
     73 KDF = HKDF
     74 Ctrl.mode = mode:EXPAND_ONLY
     75 Ctrl.digest = digest:SHA256
     76 Ctrl.IKM = hexkey:19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04
     77 Ctrl.info = info:
     78 Output = 8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8
     79 
     80 Availablein = default
     81 KDF = HKDF
     82 Ctrl.digest = digest:SHA1
     83 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b
     84 Ctrl.salt = hexsalt:000102030405060708090a0b0c
     85 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
     86 Output = 085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896
     87 
     88 Availablein = default
     89 KDF = HKDF
     90 Ctrl.mode = mode:EXTRACT_ONLY
     91 Ctrl.digest = digest:SHA1
     92 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b
     93 Ctrl.salt = hexsalt:000102030405060708090a0b0c
     94 Output = 9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243
     95 
     96 KDF = HKDF
     97 Ctrl.mode = mode:EXPAND_ONLY
     98 Ctrl.digest = digest:SHA1
     99 Ctrl.IKM = hexkey:9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243
    100 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
    101 Output = 085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896
    102 
    103 KDF = HKDF
    104 Ctrl.digest = digest:SHA1
    105 Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
    106 Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
    107 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
    108 Output = 0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4
    109 
    110 KDF = HKDF
    111 Ctrl.mode = mode:EXTRACT_ONLY
    112 Ctrl.digest = digest:SHA1
    113 Ctrl.IKM = hexkey:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
    114 Ctrl.salt = hexsalt:606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
    115 Output = 8adae09a2a307059478d309b26c4115a224cfaf6
    116 
    117 KDF = HKDF
    118 Ctrl.mode = mode:EXPAND_ONLY
    119 Ctrl.digest = digest:SHA1
    120 Ctrl.IKM = hexkey:8adae09a2a307059478d309b26c4115a224cfaf6
    121 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
    122 Output = 0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4
    123 
    124 KDF = HKDF
    125 Ctrl.digest = digest:SHA1
    126 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
    127 Ctrl.salt = salt:
    128 Ctrl.info = info:
    129 Output = 0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918
    130 
    131 KDF = HKDF
    132 Ctrl.mode = mode:EXTRACT_ONLY
    133 Ctrl.digest = digest:SHA1
    134 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
    135 Ctrl.salt = salt:
    136 Output = da8c8a73c7fa77288ec6f5e7c297786aa0d32d01
    137 
    138 KDF = HKDF
    139 Ctrl.mode = mode:EXPAND_ONLY
    140 Ctrl.digest = digest:SHA1
    141 Ctrl.IKM = hexkey:da8c8a73c7fa77288ec6f5e7c297786aa0d32d01
    142 Ctrl.info = info:
    143 Output = 0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918
    144 
    145 KDF = HKDF
    146 Ctrl.digest = digest:SHA1
    147 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
    148 Ctrl.salt = salt:
    149 Ctrl.info = info:
    150 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
    151 
    152 KDF = HKDF
    153 Ctrl.mode = mode:EXTRACT_ONLY
    154 Ctrl.digest = digest:SHA1
    155 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
    156 Ctrl.salt = salt:
    157 Output = 2adccada18779e7c2077ad2eb19d3f3e731385dd
    158 
    159 KDF = HKDF
    160 Ctrl.mode = mode:EXPAND_ONLY
    161 Ctrl.digest = digest:SHA1
    162 Ctrl.IKM = hexkey:2adccada18779e7c2077ad2eb19d3f3e731385dd
    163 Ctrl.info = info:
    164 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
    165 
    166 KDF = HKDF
    167 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
    168 Ctrl.salt = salt:
    169 Ctrl.info = info:
    170 Output = 00
    171 Result = KDF_DERIVE_ERROR
    172 
    173 KDF = HKDF
    174 Ctrl.digest = digest:SHA1
    175 Ctrl.salt = salt:
    176 Ctrl.info = info:
    177 Output = 00
    178 Result = KDF_DERIVE_ERROR
    179 
    180 KDF = HKDF
    181 Ctrl.digest = digest:SHA1
    182 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
    183 Ctrl.info = info:
    184 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
    185 
    186 KDF = HKDF
    187 Ctrl.digest = digest:SHA1
    188 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
    189 Ctrl.salt = salt:
    190 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
    191 
    192 KDF = HKDF
    193 Ctrl.mode = mode:EXTRACT_AND_EXPAND
    194 Ctrl.digest = digest:SHA1
    195 Ctrl.IKM = hexkey:0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
    196 Ctrl.salt = salt:
    197 Output = 2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48
    198 
    199 # The output key size should match the digest size for EXTRACT_ONLY mode
    200 KDF = HKDF
    201 Ctrl.mode = mode:EXTRACT_ONLY
    202 Ctrl.digest = digest:SHA1
    203 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
    204 Ctrl.salt = salt:
    205 Output = da8c8a73
    206 Result = KDF_DERIVE_ERROR
    207 
    208 # Test concat of multiple info (Uses existing test data, and just splits the info into separate fields)
    209 KDF = HKDF
    210 Ctrl.mode = mode:EXPAND_ONLY
    211 Ctrl.digest = digest:SHA1
    212 Ctrl.IKM = hexkey:8adae09a2a307059478d309b26c4115a224cfaf6
    213 Ctrl.info = hexinfo:b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0
    214 Ctrl.info = hexinfo:c1c2c3
    215 Ctrl.info = hexinfo:c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9
    216 Ctrl.info = hexinfo:dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
    217 Output = 0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4
    218 
    219 Availablein = default
    220 KDF = HKDF
    221 Ctrl.digest = digest:BLAKE2S-256
    222 Ctrl.IKM = hexkey:1a2d
    223 Ctrl.salt = hexsalt:000000000000000000000000000000000000000000000000000000000000000000
    224 Ctrl.info = info:
    225 Output = 62f99231760bedd72319cc6cad
    226 
    227 # Test that the operation with XOF digest function is rejected
    228 FIPSversion = >=3.4.0
    229 KDF = HKDF
    230 Ctrl.digest = digest:SHAKE-256
    231 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
    232 Ctrl.salt = hexsalt:000102030405060708090a0b0c
    233 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
    234 Result = KDF_CTRL_ERROR
    235 Reason = xof digests not allowed
    236 
    237 Title = FIPS indicator tests
    238 
    239 # Test that the key whose length is shorter than 112 bits is rejected
    240 Availablein = fips
    241 FIPSversion = >=3.4.0
    242 KDF = HKDF
    243 Ctrl.digest = digest:SHA1
    244 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b
    245 Ctrl.salt = hexsalt:000102030405060708090a0b0c
    246 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
    247 Result = KDF_CTRL_ERROR
    248 Reason = invalid key length
    249 
    250 # Test that the key whose length is shorter than 112 bits is reported as
    251 # unapproved
    252 Availablein = fips
    253 FIPSversion = >=3.4.0
    254 KDF = HKDF
    255 Unapproved = 1
    256 Ctrl.key-check = key-check:0
    257 Ctrl.digest = digest:SHA1
    258 Ctrl.IKM = hexkey:0b0b0b0b0b0b0b0b0b0b0b
    259 Ctrl.salt = hexsalt:000102030405060708090a0b0c
    260 Ctrl.info = hexinfo:f0f1f2f3f4f5f6f7f8f9
    261 Output = 085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896
    262