Hex Artifact Content

Artifact 091164e5bd3033a34fe25d60274584688d185e9eb555e8389402ca18ceee3365:


0000: 23 20 48 4b 44 46 2d 53 48 41 31 0a 23 20 46 72  # HKDF-SHA1.# Fr
0010: 6f 6d 20 68 74 74 70 73 3a 2f 2f 63 73 72 63 2e  om https://csrc.
0020: 6e 69 73 74 2e 67 6f 76 2f 70 72 6f 6a 65 63 74  nist.gov/project
0030: 73 2f 63 72 79 70 74 6f 67 72 61 70 68 69 63 2d  s/cryptographic-
0040: 73 74 61 6e 64 61 72 64 73 2d 61 6e 64 2d 67 75  standards-and-gu
0050: 69 64 65 6c 69 6e 65 73 2f 65 78 61 6d 70 6c 65  idelines/example
0060: 2d 76 61 6c 75 65 73 0a 23 20 61 6e 64 20 52 46  -values.# and RF
0070: 43 20 36 32 33 34 20 53 48 41 20 61 6e 64 20 53  C 6234 SHA and S
0080: 48 41 2d 62 61 73 65 64 20 48 4d 41 43 20 61 6e  HA-based HMAC an
0090: 64 20 48 4b 44 46 0a 23 20 61 6e 64 20 52 46 43  d HKDF.# and RFC
00a0: 20 35 38 36 39 20 48 4b 44 46 0a 0a 23 20 48 61   5869 HKDF..# Ha
00b0: 73 68 4c 65 6e 20 64 65 6e 6f 74 65 73 20 74 68  shLen denotes th
00c0: 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20  e length of the 
00d0: 68 61 73 68 20 66 75 6e 63 74 69 6f 6e 20 6f 75  hash function ou
00e0: 74 70 75 74 20 69 6e 20 6f 63 74 65 74 73 0a 23  tput in octets.#
00f0: 20 53 61 6c 74 20 3d 20 6f 70 74 69 6f 6e 61 6c   Salt = optional
0100: 20 73 61 6c 74 20 76 61 6c 75 65 20 28 61 20 6e   salt value (a n
0110: 6f 6e 2d 73 65 63 72 65 74 20 72 61 6e 64 6f 6d  on-secret random
0120: 20 76 61 6c 75 65 29 3b 20 69 66 20 6e 6f 74 20   value); if not 
0130: 70 72 6f 76 69 64 65 64 2c 20 69 74 20 69 73 20  provided, it is 
0140: 73 65 74 20 74 6f 20 61 20 73 74 72 69 6e 67 20  set to a string 
0150: 6f 66 20 48 61 73 68 4c 65 6e 20 7a 65 72 6f 73  of HashLen zeros
0160: 2e 0a 23 20 49 4b 4d 20 3d 20 6b 65 79 0a 23 20  ..# IKM = key.# 
0170: 50 52 4b 20 3d 20 70 73 65 75 64 6f 72 61 6e 64  PRK = pseudorand
0180: 6f 6d 20 6b 65 79 20 28 65 78 74 72 61 63 74 20  om key (extract 
0190: 6f 75 74 70 75 74 29 0a 23 20 69 6e 66 6f 20 3d  output).# info =
01a0: 20 6f 70 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78   optional contex
01b0: 74 20 61 6e 64 20 61 70 70 6c 69 63 61 74 69 6f  t and applicatio
01c0: 6e 20 73 70 65 63 69 66 69 63 20 69 6e 66 6f 72  n specific infor
01d0: 6d 61 74 69 6f 6e 20 28 63 61 6e 20 62 65 20 30  mation (can be 0
01e0: 20 6c 65 6e 67 74 68 29 0a 23 20 4c 20 3d 20 6c   length).# L = l
01f0: 65 6e 67 74 68 20 6f 66 20 6f 75 74 70 75 74 20  ength of output 
0200: 6b 65 79 69 6e 67 20 6d 61 74 65 72 69 61 6c 20  keying material 
0210: 69 6e 20 6f 63 74 65 74 73 20 28 3c 3d 20 32 35  in octets (<= 25
0220: 35 2a 48 61 73 68 4c 65 6e 29 0a 23 20 4f 4b 4d  5*HashLen).# OKM
0230: 20 3d 20 6f 75 74 70 75 74 20 6b 65 79 69 6e 67   = output keying
0240: 20 6d 61 74 65 72 69 61 6c 20 28 6f 66 20 4c 20   material (of L 
0250: 6f 63 74 65 74 73 29 0a 0a 23 20 52 46 43 20 35  octets)..# RFC 5
0260: 38 36 39 20 2d 20 41 2e 34 2e 20 20 54 65 73 74  869 - A.4.  Test
0270: 20 43 61 73 65 20 34 2c 20 42 61 73 69 63 20 74   Case 4, Basic t
0280: 65 73 74 20 63 61 73 65 20 77 69 74 68 20 53 48  est case with SH
0290: 41 2d 31 0a 48 61 73 68 20 3d 20 53 48 41 31 0a  A-1.Hash = SHA1.
02a0: 4b 6c 65 6e 20 3d 20 31 31 0a 49 4b 4d 20 20 3d  Klen = 11.IKM  =
02b0: 20 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30   0b0b0b0b0b0b0b0
02c0: 62 30 62 30 62 30 62 0a 53 6c 65 6e 20 3d 20 31  b0b0b0b.Slen = 1
02d0: 33 0a 73 61 6c 74 20 3d 20 30 30 30 31 30 32 30  3.salt = 0001020
02e0: 33 30 34 30 35 30 36 30 37 30 38 30 39 30 61 30  30405060708090a0
02f0: 62 30 63 0a 49 6c 65 6e 20 3d 20 31 30 0a 69 6e  b0c.Ilen = 10.in
0300: 66 6f 20 3d 20 66 30 66 31 66 32 66 33 66 34 66  fo = f0f1f2f3f4f
0310: 35 66 36 66 37 66 38 66 39 0a 4c 20 20 20 20 3d  5f6f7f8f9.L    =
0320: 20 34 32 0a 50 52 4b 20 20 3d 20 39 62 36 63 31   42.PRK  = 9b6c1
0330: 38 63 34 33 32 61 37 62 66 38 66 30 65 37 31 63  8c432a7bf8f0e71c
0340: 38 65 62 38 38 66 34 62 33 30 62 61 61 32 62 61  8eb88f4b30baa2ba
0350: 32 34 33 0a 4f 4b 4d 20 3d 20 30 38 35 61 30 31  243.OKM = 085a01
0360: 65 61 31 62 31 30 66 33 36 39 33 33 30 36 38 62  ea1b10f36933068b
0370: 35 36 65 66 61 35 61 64 38 31 61 34 66 31 34 62  56efa5ad81a4f14b
0380: 38 32 32 66 35 62 30 39 31 35 36 38 61 39 63 64  822f5b091568a9cd
0390: 64 34 66 31 35 35 66 64 61 32 63 32 32 65 34 32  d4f155fda2c22e42
03a0: 32 34 37 38 64 33 30 35 66 33 66 38 39 36 0a 0a  2478d305f3f896..
03b0: 23 20 52 46 43 20 35 38 36 39 20 2d 20 41 2e 35  # RFC 5869 - A.5
03c0: 2e 20 20 54 65 73 74 20 43 61 73 65 20 35 2c 20  .  Test Case 5, 
03d0: 54 65 73 74 20 77 69 74 68 20 53 48 41 2d 31 20  Test with SHA-1 
03e0: 61 6e 64 20 6c 6f 6e 67 65 72 20 69 6e 70 75 74  and longer input
03f0: 73 2f 6f 75 74 70 75 74 73 0a 48 61 73 68 20 3d  s/outputs.Hash =
0400: 20 53 48 41 31 0a 4b 6c 65 6e 20 3d 20 38 30 0a   SHA1.Klen = 80.
0410: 49 4b 4d 20 20 3d 20 30 30 30 31 30 32 30 33 30  IKM  = 000102030
0420: 34 30 35 30 36 30 37 30 38 30 39 30 61 30 62 30  405060708090a0b0
0430: 63 30 64 30 65 30 66 31 30 31 31 31 32 31 33 31  c0d0e0f101112131
0440: 34 31 35 31 36 31 37 31 38 31 39 31 61 31 62 31  415161718191a1b1
0450: 63 31 64 31 65 31 66 32 30 32 31 32 32 32 33 32  c1d1e1f202122232
0460: 34 32 35 32 36 32 37 32 38 32 39 32 61 32 62 32  425262728292a2b2
0470: 63 32 64 32 65 32 66 33 30 33 31 33 32 33 33 33  c2d2e2f303132333
0480: 34 33 35 33 36 33 37 33 38 33 39 33 61 33 62 33  435363738393a3b3
0490: 63 33 64 33 65 33 66 34 30 34 31 34 32 34 33 34  c3d3e3f404142434
04a0: 34 34 35 34 36 34 37 34 38 34 39 34 61 34 62 34  445464748494a4b4
04b0: 63 34 64 34 65 34 66 0a 53 6c 65 6e 20 3d 20 38  c4d4e4f.Slen = 8
04c0: 30 0a 73 61 6c 74 20 3d 20 36 30 36 31 36 32 36  0.salt = 6061626
04d0: 33 36 34 36 35 36 36 36 37 36 38 36 39 36 61 36  36465666768696a6
04e0: 62 36 63 36 64 36 65 36 66 37 30 37 31 37 32 37  b6c6d6e6f7071727
04f0: 33 37 34 37 35 37 36 37 37 37 38 37 39 37 61 37  37475767778797a7
0500: 62 37 63 37 64 37 65 37 66 38 30 38 31 38 32 38  b7c7d7e7f8081828
0510: 33 38 34 38 35 38 36 38 37 38 38 38 39 38 61 38  38485868788898a8
0520: 62 38 63 38 64 38 65 38 66 39 30 39 31 39 32 39  b8c8d8e8f9091929
0530: 33 39 34 39 35 39 36 39 37 39 38 39 39 39 61 39  39495969798999a9
0540: 62 39 63 39 64 39 65 39 66 61 30 61 31 61 32 61  b9c9d9e9fa0a1a2a
0550: 33 61 34 61 35 61 36 61 37 61 38 61 39 61 61 61  3a4a5a6a7a8a9aaa
0560: 62 61 63 61 64 61 65 61 66 0a 49 6c 65 6e 20 3d  bacadaeaf.Ilen =
0570: 20 38 30 0a 69 6e 66 6f 20 3d 20 62 30 62 31 62   80.info = b0b1b
0580: 32 62 33 62 34 62 35 62 36 62 37 62 38 62 39 62  2b3b4b5b6b7b8b9b
0590: 61 62 62 62 63 62 64 62 65 62 66 63 30 63 31 63  abbbcbdbebfc0c1c
05a0: 32 63 33 63 34 63 35 63 36 63 37 63 38 63 39 63  2c3c4c5c6c7c8c9c
05b0: 61 63 62 63 63 63 64 63 65 63 66 64 30 64 31 64  acbcccdcecfd0d1d
05c0: 32 64 33 64 34 64 35 64 36 64 37 64 38 64 39 64  2d3d4d5d6d7d8d9d
05d0: 61 64 62 64 63 64 64 64 65 64 66 65 30 65 31 65  adbdcdddedfe0e1e
05e0: 32 65 33 65 34 65 35 65 36 65 37 65 38 65 39 65  2e3e4e5e6e7e8e9e
05f0: 61 65 62 65 63 65 64 65 65 65 66 66 30 66 31 66  aebecedeeeff0f1f
0600: 32 66 33 66 34 66 35 66 36 66 37 66 38 66 39 66  2f3f4f5f6f7f8f9f
0610: 61 66 62 66 63 66 64 66 65 66 66 0a 4c 20 20 20  afbfcfdfeff.L   
0620: 20 3d 20 38 32 0a 50 52 4b 20 20 3d 20 38 61 64   = 82.PRK  = 8ad
0630: 61 65 30 39 61 32 61 33 30 37 30 35 39 34 37 38  ae09a2a307059478
0640: 64 33 30 39 62 32 36 63 34 31 31 35 61 32 32 34  d309b26c4115a224
0650: 63 66 61 66 36 0a 4f 4b 4d 20 3d 20 30 62 64 37  cfaf6.OKM = 0bd7
0660: 37 30 61 37 34 64 31 31 36 30 66 37 63 39 66 31  70a74d1160f7c9f1
0670: 32 63 64 35 39 31 32 61 30 36 65 62 66 66 36 61  2cd5912a06ebff6a
0680: 64 63 61 65 38 39 39 64 39 32 31 39 31 66 65 34  dcae899d92191fe4
0690: 33 30 35 36 37 33 62 61 32 66 66 65 38 66 61 33  305673ba2ffe8fa3
06a0: 66 31 61 34 65 35 61 64 37 39 66 33 66 33 33 34  f1a4e5ad79f3f334
06b0: 62 33 62 32 30 32 62 32 31 37 33 63 34 38 36 65  b3b202b2173c486e
06c0: 61 33 37 63 65 33 64 33 39 37 65 64 30 33 34 63  a37ce3d397ed034c
06d0: 37 66 39 64 66 65 62 31 35 63 35 65 39 32 37 33  7f9dfeb15c5e9273
06e0: 33 36 64 30 34 34 31 66 34 63 34 33 30 30 65 32  36d0441f4c4300e2
06f0: 63 66 66 30 64 30 39 30 30 62 35 32 64 33 62 34  cff0d0900b52d3b4
0700: 0a 0a 23 20 52 46 43 20 35 38 36 39 20 2d 20 41  ..# RFC 5869 - A
0710: 2e 36 2e 20 20 54 65 73 74 20 43 61 73 65 20 36  .6.  Test Case 6
0720: 2c 20 54 65 73 74 20 77 69 74 68 20 53 48 41 2d  , Test with SHA-
0730: 31 20 61 6e 64 20 7a 65 72 6f 2d 6c 65 6e 67 74  1 and zero-lengt
0740: 68 20 73 61 6c 74 2f 69 6e 66 6f 0a 48 61 73 68  h salt/info.Hash
0750: 20 3d 20 53 48 41 31 0a 4b 6c 65 6e 20 3d 20 32   = SHA1.Klen = 2
0760: 32 0a 49 4b 4d 20 20 3d 20 30 62 30 62 30 62 30  2.IKM  = 0b0b0b0
0770: 62 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30  b0b0b0b0b0b0b0b0
0780: 62 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30  b0b0b0b0b0b0b0b0
0790: 62 30 62 30 62 0a 53 6c 65 6e 20 3d 20 30 0a 73  b0b0b.Slen = 0.s
07a0: 61 6c 74 20 3d 0a 49 6c 65 6e 20 3d 20 30 0a 69  alt =.Ilen = 0.i
07b0: 6e 66 6f 20 3d 0a 4c 20 20 20 20 3d 20 34 32 0a  nfo =.L    = 42.
07c0: 50 52 4b 20 20 3d 20 64 61 38 63 38 61 37 33 63  PRK  = da8c8a73c
07d0: 37 66 61 37 37 32 38 38 65 63 36 66 35 65 37 63  7fa77288ec6f5e7c
07e0: 32 39 37 37 38 36 61 61 30 64 33 32 64 30 31 0a  297786aa0d32d01.
07f0: 4f 4b 4d 20 3d 20 30 61 63 31 61 66 37 30 30 32  OKM = 0ac1af7002
0800: 62 33 64 37 36 31 64 31 65 35 35 32 39 38 64 61  b3d761d1e55298da
0810: 39 64 30 35 30 36 62 39 61 65 35 32 30 35 37 32  9d0506b9ae520572
0820: 32 30 61 33 30 36 65 30 37 62 36 62 38 37 65 38  20a306e07b6b87e8
0830: 64 66 32 31 64 30 65 61 30 30 30 33 33 64 65 30  df21d0ea00033de0
0840: 33 39 38 34 64 33 34 39 31 38 0a 0a 23 20 52 46  3984d34918..# RF
0850: 43 20 35 38 36 39 20 2d 20 41 2e 37 2e 20 20 54  C 5869 - A.7.  T
0860: 65 73 74 20 43 61 73 65 20 37 2c 20 54 65 73 74  est Case 7, Test
0870: 20 77 69 74 68 20 53 48 41 2d 31 2c 20 73 61 6c   with SHA-1, sal
0880: 74 20 6e 6f 74 20 70 72 6f 76 69 64 65 64 20 28  t not provided (
0890: 64 65 66 61 75 6c 74 73 20 74 6f 20 48 61 73 68  defaults to Hash
08a0: 4c 65 6e 20 7a 65 72 6f 20 6f 63 74 65 74 73 29  Len zero octets)
08b0: 2c 20 7a 65 72 6f 2d 6c 65 6e 67 74 68 20 69 6e  , zero-length in
08c0: 66 6f 0a 48 61 73 68 20 3d 20 53 48 41 31 0a 4b  fo.Hash = SHA1.K
08d0: 6c 65 6e 20 3d 20 32 32 0a 49 4b 4d 20 20 3d 20  len = 22.IKM  = 
08e0: 30 63 30 63 30 63 30 63 30 63 30 63 30 63 30 63  0c0c0c0c0c0c0c0c
08f0: 30 63 30 63 30 63 30 63 30 63 30 63 30 63 30 63  0c0c0c0c0c0c0c0c
0900: 30 63 30 63 30 63 30 63 30 63 30 63 0a 53 6c 65  0c0c0c0c0c0c.Sle
0910: 6e 20 3d 20 30 0a 73 61 6c 74 20 3d 0a 49 6c 65  n = 0.salt =.Ile
0920: 6e 20 3d 20 30 0a 69 6e 66 6f 20 3d 0a 4c 20 20  n = 0.info =.L  
0930: 20 20 3d 20 34 32 0a 50 52 4b 20 20 3d 20 32 61    = 42.PRK  = 2a
0940: 64 63 63 61 64 61 31 38 37 37 39 65 37 63 32 30  dccada18779e7c20
0950: 37 37 61 64 32 65 62 31 39 64 33 66 33 65 37 33  77ad2eb19d3f3e73
0960: 31 33 38 35 64 64 0a 4f 4b 4d 20 3d 20 32 63 39  1385dd.OKM = 2c9
0970: 31 31 31 37 32 30 34 64 37 34 35 66 33 35 30 30  1117204d745f3500
0980: 64 36 33 36 61 36 32 66 36 34 66 30 61 62 33 62  d636a62f64f0ab3b
0990: 61 65 35 34 38 61 61 35 33 64 34 32 33 62 30 64  ae548aa53d423b0d
09a0: 31 66 32 37 65 62 62 61 36 66 35 65 35 36 37 33  1f27ebba6f5e5673
09b0: 61 30 38 31 64 37 30 63 63 65 37 61 63 66 63 34  a081d70cce7acfc4
09c0: 38 0a 0a 23 23 23 23 23 23 23 23 23 0a 23 20 66  8..#########.# f
09d0: 72 6f 6d 20 68 74 74 70 73 3a 2f 2f 67 69 74 68  rom https://gith
09e0: 75 62 2e 63 6f 6d 2f 62 72 79 63 78 2f 54 65 73  ub.com/brycx/Tes
09f0: 74 2d 56 65 63 74 6f 72 2d 47 65 6e 65 72 61 74  t-Vector-Generat
0a00: 69 6f 6e 2f 62 6c 6f 62 2f 6d 61 73 74 65 72 2f  ion/blob/master/
0a10: 48 4b 44 46 2f 68 6b 64 66 2d 68 6d 61 63 2d 73  HKDF/hkdf-hmac-s
0a20: 68 61 32 2d 74 65 73 74 2d 76 65 63 74 6f 72 73  ha2-test-vectors
0a30: 2e 6d 64 0a 23 23 23 23 23 23 23 23 23 0a 0a 23  .md.#########..#
0a40: 20 52 46 43 20 35 38 36 39 20 2d 20 41 2e 31 2e   RFC 5869 - A.1.
0a50: 20 20 54 65 73 74 20 43 61 73 65 20 31 2c 20 42    Test Case 1, B
0a60: 61 73 69 63 20 74 65 73 74 20 63 61 73 65 20 77  asic test case w
0a70: 69 74 68 20 53 48 41 2d 32 35 36 0a 48 61 73 68  ith SHA-256.Hash
0a80: 20 3d 20 53 48 41 31 0a 4b 6c 65 6e 20 3d 20 32   = SHA1.Klen = 2
0a90: 32 0a 49 4b 4d 20 20 3d 20 30 62 30 62 30 62 30  2.IKM  = 0b0b0b0
0aa0: 62 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30  b0b0b0b0b0b0b0b0
0ab0: 62 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30  b0b0b0b0b0b0b0b0
0ac0: 62 30 62 30 62 0a 53 6c 65 6e 20 3d 20 31 33 0a  b0b0b.Slen = 13.
0ad0: 73 61 6c 74 20 3d 20 30 30 30 31 30 32 30 33 30  salt = 000102030
0ae0: 34 30 35 30 36 30 37 30 38 30 39 30 61 30 62 30  405060708090a0b0
0af0: 63 0a 49 6c 65 6e 20 3d 20 31 30 0a 69 6e 66 6f  c.Ilen = 10.info
0b00: 20 3d 20 66 30 66 31 66 32 66 33 66 34 66 35 66   = f0f1f2f3f4f5f
0b10: 36 66 37 66 38 66 39 0a 4c 20 20 20 20 3d 20 34  6f7f8f9.L    = 4
0b20: 32 0a 4f 4b 4d 20 3d 20 64 36 30 30 30 66 66 62  2.OKM = d6000ffb
0b30: 35 62 35 30 62 64 33 39 37 30 62 32 36 30 30 31  5b50bd3970b26001
0b40: 37 37 39 38 66 62 39 63 38 64 66 39 63 65 32 65  7798fb9c8df9ce2e
0b50: 32 63 31 36 62 36 63 64 37 30 39 63 63 61 30 37  2c16b6cd709cca07
0b60: 64 63 33 63 66 39 63 66 32 36 64 36 63 36 64 37  dc3cf9cf26d6c6d7
0b70: 35 30 64 30 61 61 66 35 61 63 39 34 0a 0a 23 20  50d0aaf5ac94..# 
0b80: 52 46 43 20 35 38 36 39 20 2d 20 41 2e 32 2e 20  RFC 5869 - A.2. 
0b90: 20 54 65 73 74 20 43 61 73 65 20 32 2c 20 54 65   Test Case 2, Te
0ba0: 73 74 20 77 69 74 68 20 53 48 41 2d 32 35 36 20  st with SHA-256 
0bb0: 61 6e 64 20 6c 6f 6e 67 65 72 20 69 6e 70 75 74  and longer input
0bc0: 73 2f 6f 75 74 70 75 74 73 0a 48 61 73 68 20 3d  s/outputs.Hash =
0bd0: 20 53 48 41 31 0a 4b 6c 65 6e 20 3d 20 38 30 0a   SHA1.Klen = 80.
0be0: 49 4b 4d 20 20 3d 20 30 30 30 31 30 32 30 33 30  IKM  = 000102030
0bf0: 34 30 35 30 36 30 37 30 38 30 39 30 61 30 62 30  405060708090a0b0
0c00: 63 30 64 30 65 30 66 31 30 31 31 31 32 31 33 31  c0d0e0f101112131
0c10: 34 31 35 31 36 31 37 31 38 31 39 31 61 31 62 31  415161718191a1b1
0c20: 63 31 64 31 65 31 66 32 30 32 31 32 32 32 33 32  c1d1e1f202122232
0c30: 34 32 35 32 36 32 37 32 38 32 39 32 61 32 62 32  425262728292a2b2
0c40: 63 32 64 32 65 32 66 33 30 33 31 33 32 33 33 33  c2d2e2f303132333
0c50: 34 33 35 33 36 33 37 33 38 33 39 33 61 33 62 33  435363738393a3b3
0c60: 63 33 64 33 65 33 66 34 30 34 31 34 32 34 33 34  c3d3e3f404142434
0c70: 34 34 35 34 36 34 37 34 38 34 39 34 61 34 62 34  445464748494a4b4
0c80: 63 34 64 34 65 34 66 0a 53 6c 65 6e 20 3d 20 38  c4d4e4f.Slen = 8
0c90: 30 0a 73 61 6c 74 20 3d 20 36 30 36 31 36 32 36  0.salt = 6061626
0ca0: 33 36 34 36 35 36 36 36 37 36 38 36 39 36 61 36  36465666768696a6
0cb0: 62 36 63 36 64 36 65 36 66 37 30 37 31 37 32 37  b6c6d6e6f7071727
0cc0: 33 37 34 37 35 37 36 37 37 37 38 37 39 37 61 37  37475767778797a7
0cd0: 62 37 63 37 64 37 65 37 66 38 30 38 31 38 32 38  b7c7d7e7f8081828
0ce0: 33 38 34 38 35 38 36 38 37 38 38 38 39 38 61 38  38485868788898a8
0cf0: 62 38 63 38 64 38 65 38 66 39 30 39 31 39 32 39  b8c8d8e8f9091929
0d00: 33 39 34 39 35 39 36 39 37 39 38 39 39 39 61 39  39495969798999a9
0d10: 62 39 63 39 64 39 65 39 66 61 30 61 31 61 32 61  b9c9d9e9fa0a1a2a
0d20: 33 61 34 61 35 61 36 61 37 61 38 61 39 61 61 61  3a4a5a6a7a8a9aaa
0d30: 62 61 63 61 64 61 65 61 66 0a 49 6c 65 6e 20 3d  bacadaeaf.Ilen =
0d40: 20 38 30 0a 69 6e 66 6f 20 3d 20 62 30 62 31 62   80.info = b0b1b
0d50: 32 62 33 62 34 62 35 62 36 62 37 62 38 62 39 62  2b3b4b5b6b7b8b9b
0d60: 61 62 62 62 63 62 64 62 65 62 66 63 30 63 31 63  abbbcbdbebfc0c1c
0d70: 32 63 33 63 34 63 35 63 36 63 37 63 38 63 39 63  2c3c4c5c6c7c8c9c
0d80: 61 63 62 63 63 63 64 63 65 63 66 64 30 64 31 64  acbcccdcecfd0d1d
0d90: 32 64 33 64 34 64 35 64 36 64 37 64 38 64 39 64  2d3d4d5d6d7d8d9d
0da0: 61 64 62 64 63 64 64 64 65 64 66 65 30 65 31 65  adbdcdddedfe0e1e
0db0: 32 65 33 65 34 65 35 65 36 65 37 65 38 65 39 65  2e3e4e5e6e7e8e9e
0dc0: 61 65 62 65 63 65 64 65 65 65 66 66 30 66 31 66  aebecedeeeff0f1f
0dd0: 32 66 33 66 34 66 35 66 36 66 37 66 38 66 39 66  2f3f4f5f6f7f8f9f
0de0: 61 66 62 66 63 66 64 66 65 66 66 0a 4c 20 20 20  afbfcfdfeff.L   
0df0: 20 3d 20 38 32 0a 4f 4b 4d 20 3d 20 30 62 64 37   = 82.OKM = 0bd7
0e00: 37 30 61 37 34 64 31 31 36 30 66 37 63 39 66 31  70a74d1160f7c9f1
0e10: 32 63 64 35 39 31 32 61 30 36 65 62 66 66 36 61  2cd5912a06ebff6a
0e20: 64 63 61 65 38 39 39 64 39 32 31 39 31 66 65 34  dcae899d92191fe4
0e30: 33 30 35 36 37 33 62 61 32 66 66 65 38 66 61 33  305673ba2ffe8fa3
0e40: 66 31 61 34 65 35 61 64 37 39 66 33 66 33 33 34  f1a4e5ad79f3f334
0e50: 62 33 62 32 30 32 62 32 31 37 33 63 34 38 36 65  b3b202b2173c486e
0e60: 61 33 37 63 65 33 64 33 39 37 65 64 30 33 34 63  a37ce3d397ed034c
0e70: 37 66 39 64 66 65 62 31 35 63 35 65 39 32 37 33  7f9dfeb15c5e9273
0e80: 33 36 64 30 34 34 31 66 34 63 34 33 30 30 65 32  36d0441f4c4300e2
0e90: 63 66 66 30 64 30 39 30 30 62 35 32 64 33 62 34  cff0d0900b52d3b4
0ea0: 0a 0a 23 20 52 46 43 20 35 38 36 39 20 2d 20 41  ..# RFC 5869 - A
0eb0: 2e 33 2e 20 20 54 65 73 74 20 43 61 73 65 20 33  .3.  Test Case 3
0ec0: 2c 20 54 65 73 74 20 77 69 74 68 20 53 48 41 2d  , Test with SHA-
0ed0: 32 35 36 20 61 6e 64 20 7a 65 72 6f 2d 6c 65 6e  256 and zero-len
0ee0: 67 74 68 20 73 61 6c 74 2f 69 6e 66 6f 0a 48 61  gth salt/info.Ha
0ef0: 73 68 20 3d 20 53 48 41 31 0a 4b 6c 65 6e 20 3d  sh = SHA1.Klen =
0f00: 20 32 32 0a 49 4b 4d 20 20 3d 20 30 62 30 62 30   22.IKM  = 0b0b0
0f10: 62 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30  b0b0b0b0b0b0b0b0
0f20: 62 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30  b0b0b0b0b0b0b0b0
0f30: 62 30 62 30 62 30 62 0a 53 6c 65 6e 20 3d 20 30  b0b0b0b.Slen = 0
0f40: 0a 73 61 6c 74 20 3d 0a 49 6c 65 6e 20 3d 20 30  .salt =.Ilen = 0
0f50: 0a 69 6e 66 6f 20 3d 0a 4c 20 20 20 20 3d 20 34  .info =.L    = 4
0f60: 32 0a 4f 4b 4d 20 3d 20 30 61 63 31 61 66 37 30  2.OKM = 0ac1af70
0f70: 30 32 62 33 64 37 36 31 64 31 65 35 35 32 39 38  02b3d761d1e55298
0f80: 64 61 39 64 30 35 30 36 62 39 61 65 35 32 30 35  da9d0506b9ae5205
0f90: 37 32 32 30 61 33 30 36 65 30 37 62 36 62 38 37  7220a306e07b6b87
0fa0: 65 38 64 66 32 31 64 30 65 61 30 30 30 33 33 64  e8df21d0ea00033d
0fb0: 65 30 33 39 38 34 64 33 34 39 31 38 0a 0a 23 20  e03984d34918..# 
0fc0: 52 46 43 20 35 38 36 39 20 2d 20 41 2e 34 2e 20  RFC 5869 - A.4. 
0fd0: 20 54 65 73 74 20 43 61 73 65 20 34 2c 20 42 61   Test Case 4, Ba
0fe0: 73 69 63 20 74 65 73 74 20 63 61 73 65 20 77 69  sic test case wi
0ff0: 74 68 20 53 48 41 2d 31 0a 48 61 73 68 20 3d 20  th SHA-1.Hash = 
1000: 53 48 41 31 0a 4b 6c 65 6e 20 3d 20 31 31 0a 49  SHA1.Klen = 11.I
1010: 4b 4d 20 20 3d 20 30 62 30 62 30 62 30 62 30 62  KM  = 0b0b0b0b0b
1020: 30 62 30 62 30 62 30 62 30 62 30 62 0a 53 6c 65  0b0b0b0b0b0b.Sle
1030: 6e 20 3d 20 31 33 0a 73 61 6c 74 20 3d 20 30 30  n = 13.salt = 00
1040: 30 31 30 32 30 33 30 34 30 35 30 36 30 37 30 38  0102030405060708
1050: 30 39 30 61 30 62 30 63 0a 49 6c 65 6e 20 3d 20  090a0b0c.Ilen = 
1060: 31 30 0a 69 6e 66 6f 20 3d 20 66 30 66 31 66 32  10.info = f0f1f2
1070: 66 33 66 34 66 35 66 36 66 37 66 38 66 39 0a 4c  f3f4f5f6f7f8f9.L
1080: 20 20 20 20 3d 20 34 32 0a 4f 4b 4d 20 3d 20 30      = 42.OKM = 0
1090: 38 35 61 30 31 65 61 31 62 31 30 66 33 36 39 33  85a01ea1b10f3693
10a0: 33 30 36 38 62 35 36 65 66 61 35 61 64 38 31 61  3068b56efa5ad81a
10b0: 34 66 31 34 62 38 32 32 66 35 62 30 39 31 35 36  4f14b822f5b09156
10c0: 38 61 39 63 64 64 34 66 31 35 35 66 64 61 32 63  8a9cdd4f155fda2c
10d0: 32 32 65 34 32 32 34 37 38 64 33 30 35 66 33 66  22e422478d305f3f
10e0: 38 39 36 0a 0a 23 20 52 46 43 20 35 38 36 39 20  896..# RFC 5869 
10f0: 2d 20 41 2e 37 2e 20 20 54 65 73 74 20 43 61 73  - A.7.  Test Cas
1100: 65 20 37 2c 20 54 65 73 74 20 77 69 74 68 20 53  e 7, Test with S
1110: 48 41 2d 31 2c 20 73 61 6c 74 20 6e 6f 74 20 70  HA-1, salt not p
1120: 72 6f 76 69 64 65 64 20 28 64 65 66 61 75 6c 74  rovided (default
1130: 73 20 74 6f 20 48 61 73 68 4c 65 6e 20 7a 65 72  s to HashLen zer
1140: 6f 20 6f 63 74 65 74 73 29 2c 20 7a 65 72 6f 2d  o octets), zero-
1150: 6c 65 6e 67 74 68 20 69 6e 66 6f 0a 48 61 73 68  length info.Hash
1160: 20 3d 20 53 48 41 31 0a 4b 6c 65 6e 20 3d 20 32   = SHA1.Klen = 2
1170: 32 0a 49 4b 4d 20 20 3d 20 30 63 30 63 30 63 30  2.IKM  = 0c0c0c0
1180: 63 30 63 30 63 30 63 30 63 30 63 30 63 30 63 30  c0c0c0c0c0c0c0c0
1190: 63 30 63 30 63 30 63 30 63 30 63 30 63 30 63 30  c0c0c0c0c0c0c0c0
11a0: 63 30 63 30 63 0a 53 6c 65 6e 20 3d 20 30 0a 73  c0c0c.Slen = 0.s
11b0: 61 6c 74 20 3d 0a 49 6c 65 6e 20 3d 20 30 0a 69  alt =.Ilen = 0.i
11c0: 6e 66 6f 20 3d 0a 4c 20 20 20 20 3d 20 34 32 0a  nfo =.L    = 42.
11d0: 4f 4b 4d 20 3d 20 32 63 39 31 31 31 37 32 30 34  OKM = 2c91117204
11e0: 64 37 34 35 66 33 35 30 30 64 36 33 36 61 36 32  d745f3500d636a62
11f0: 66 36 34 66 30 61 62 33 62 61 65 35 34 38 61 61  f64f0ab3bae548aa
1200: 35 33 64 34 32 33 62 30 64 31 66 32 37 65 62 62  53d423b0d1f27ebb
1210: 61 36 66 35 65 35 36 37 33 61 30 38 31 64 37 30  a6f5e5673a081d70
1220: 63 63 65 37 61 63 66 63 34 38 0a                 cce7acfc48.