chiark / gitweb /
symm/t/sha...: Add official NIST HMAC test vectors.
authorMark Wooding <mdw@distorted.org.uk>
Wed, 10 May 2017 19:53:27 +0000 (20:53 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sun, 14 May 2017 13:58:41 +0000 (14:58 +0100)
I found some at last, annoyingly provided as PDF documents.
Unsurprisingly, the code passed first time.

Strange: the tests include two tests for the message `Sample message for
keylen=blocklen', exactly one of which has the key length equal to the
block length.  Whatevs.

symm/t/sha224
symm/t/sha256
symm/t/sha384
symm/t/sha512

index 8534f4f39a435e5b037fefab0f10118fad6c9713..983e9c4e27442c54fbd51ec6682b7a9d7208120f 100644 (file)
@@ -1,10 +1,24 @@
 # Test vectors for SHA-224
 
 # --- HMAC mode ---
-#
-# Autogenerated, unofficial.
 
 sha224-hmac {
+  # NIST examples.
+
+  "Sample message for keylen<blocklen"
+       000102030405060708090a0b0c0d0e0f101112131415161718191a1b
+       e3d249a8cfb67ef8b7a169e9a0a599714a2cecba65999a51beb8fbbe;
+
+  "Sample message for keylen=blocklen"
+       000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+       c7405e3ae058e8cd30b08b4140248581ed174cb34e1224bcc1efc81b;
+
+  "Sample message for keylen=blocklen" # not entirely true
+       000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60616263
+       91c52509e5af8531601ae6230099d90bef88aaefb961f4080abc014d;
+
+  # Autogenerated, unofficial.
+
   "Hi There"
        0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
        1abbc7c42cf4ca9f9d7b624564cb72d7b0945ea0a615095904a0fd34;
index 9a6d16eebae5ebe45aefc7c1e1a8d33bfea1e8d2..7fe7074c61d3dbb632badbb97db724cdeb7bd827 100644 (file)
@@ -72,10 +72,25 @@ sha224-rep {
 }
 
 # --- HMAC mode ---
-#
-# Autogenerated, unofficial.
 
 sha256-hmac {
+
+  # NIST examples.
+
+  "Sample message for keylen=blocklen"
+       000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+       8bb9a1db9806f20df7f77b82138c7914d174d59e13dc4d0169c9057b133e1d62;
+
+  "Sample message for keylen<blocklen"
+       000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
+       a28cf43130ee696a98f14a37678b56bcfcbdd9e5cf69717fecf5480f0ebdf790;
+
+  "Sample message for keylen=blocklen" # truer things have been said
+       000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60616263
+       bdccb6c72ddeadb500ae768386cb38cc41c63dbb0878ddb9c7a38a431b78378d;
+
+  # Autogenerated, unofficial.
+
   "Hi There"
        0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
        198a607eb44bfbc69903a0f1cf2bbdc5ba0aa3f3d9ae3c1c7a3b1696a0b68cf7;
index 21818329943c2bf17507e9b948b82adf2c8ebb53..b1d8f03a6c482c587edcf53d12806c5b8882ea37 100644 (file)
@@ -1,10 +1,25 @@
 # Test vectors for SHA-384
 
 # --- HMAC mode ---
-#
-# Autogenerated, unofficial.
 
 sha384-hmac {
+
+  # NIST examples.
+
+  "Sample message for keylen=blocklen"
+       000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f
+       63c5daa5e651847ca897c95814ab830bededc7d25e83eef9195cd45857a37f448947858f5af50cc2b1b730ddf29671a9;
+
+  "Sample message for keylen<blocklen"
+       000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f
+       6eb242bdbb582ca17bebfa481b1e23211464d2b7f8c20b9ff2201637b93646af5ae9ac316e98db45d9cae773675eeed0;
+
+  "Sample message for keylen=blocklen"
+       000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7
+       5b664436df69b0ca22551231a3f0a3d5b4f97991713cfa84bff4d0792eff96c27dccbbb6f79b65d548b40e8564cef594;
+
+ # Autogenerated, unofficial.
+
   "Hi There"
        0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
        b6a8d5636f5c6a7224f9977dcf7ee6c7fb6d0c48cbdee9737a959796489bddbc4c5df61d5b3297b4fb68dab9f1b582c2;
index 52e7ec691d8b7802268ed6cbc12383727a8cadfd..857241f398dc1b3fc12b2bc7f0123ff8970f8b0a 100644 (file)
@@ -74,10 +74,26 @@ sha384-rep {
 }
 
 # --- HMAC mode ---
-#
-# Autogenerated, unofficial.
+
 
 sha512-hmac {
+
+  # NIST examples.
+
+  "Sample message for keylen=blocklen"
+       000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f
+       fc25e240658ca785b7a811a8d3f7b4ca48cfa26a8a366bf2cd1f836b05fcb024bd36853081811d6cea4216ebad79da1cfcb95ea4586b8a0ce356596a55fb1347;
+
+  "Sample message for keylen<blocklen"
+       000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f
+       fd44c18bda0bb0a6ce0e82b031bf2818f6539bd56ec00bdc10a8a2d730b3634de2545d639b0f2cf710d0692c72a1896f1f211c2b922d1a96c392e07e7ea9fedc;
+
+  "Sample message for keylen=blocklen" # your pants are on fire
+       000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7
+       d93ec8d2de1ad2a9957cb9b83f14e76ad6b5e0cce285079a127d3b14bccb7aa7286d4ac0d4ce64215f2bc9e6870b33d97438be4aaa20cda5c5a912b48b8e27f3;
+
+  # Autogenerated, unofficial.
+
   "Hi There"
        0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0bb0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
        bb969b8e6b99529a2e09757ef582257aed4f66cb62f1b32150b969eaa7dd683d46a776726cbf0f614f784cfa0759e84ba1d0baf07a1391ed998da6ea2fd7ff53;