]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - crypto/testmgr.h
crypto: af_alg - properly label AF_ALG socket
[karo-tx-linux.git] / crypto / testmgr.h
index 3db83dbba1d939d19800cb2d7439417ddfece4ff..69d0dd8ef27e92450b88eb624436d25c52561aec 100644 (file)
@@ -487,10 +487,15 @@ static struct hash_testvec crct10dif_tv_template[] = {
  * SHA1 test vectors  from from FIPS PUB 180-1
  * Long vector from CAVS 5.0
  */
-#define SHA1_TEST_VECTORS      3
+#define SHA1_TEST_VECTORS      6
 
 static struct hash_testvec sha1_tv_template[] = {
        {
+               .plaintext = "",
+               .psize  = 0,
+               .digest = "\xda\x39\xa3\xee\x5e\x6b\x4b\x0d\x32\x55"
+                         "\xbf\xef\x95\x60\x18\x90\xaf\xd8\x07\x09",
+       }, {
                .plaintext = "abc",
                .psize  = 3,
                .digest = "\xa9\x99\x3e\x36\x47\x06\x81\x6a\xba\x3e"
@@ -529,6 +534,144 @@ static struct hash_testvec sha1_tv_template[] = {
                          "\x45\x9c\x02\xb6\x9b\x4a\xa8\xf5\x82\x17",
                .np     = 4,
                .tap    = { 63, 64, 31, 5 }
+       }, {
+               .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-",
+               .psize  = 64,
+               .digest = "\xc8\x71\xf6\x9a\x63\xcc\xa9\x84\x84\x82"
+                         "\x64\xe7\x79\x95\x5d\xd7\x19\x41\x7c\x91",
+       }, {
+               .plaintext = "\x08\x9f\x13\xaa\x41\xd8\x4c\xe3"
+                            "\x7a\x11\x85\x1c\xb3\x27\xbe\x55"
+                            "\xec\x60\xf7\x8e\x02\x99\x30\xc7"
+                            "\x3b\xd2\x69\x00\x74\x0b\xa2\x16"
+                            "\xad\x44\xdb\x4f\xe6\x7d\x14\x88"
+                            "\x1f\xb6\x2a\xc1\x58\xef\x63\xfa"
+                            "\x91\x05\x9c\x33\xca\x3e\xd5\x6c"
+                            "\x03\x77\x0e\xa5\x19\xb0\x47\xde"
+                            "\x52\xe9\x80\x17\x8b\x22\xb9\x2d"
+                            "\xc4\x5b\xf2\x66\xfd\x94\x08\x9f"
+                            "\x36\xcd\x41\xd8\x6f\x06\x7a\x11"
+                            "\xa8\x1c\xb3\x4a\xe1\x55\xec\x83"
+                            "\x1a\x8e\x25\xbc\x30\xc7\x5e\xf5"
+                            "\x69\x00\x97\x0b\xa2\x39\xd0\x44"
+                            "\xdb\x72\x09\x7d\x14\xab\x1f\xb6"
+                            "\x4d\xe4\x58\xef\x86\x1d\x91\x28"
+                            "\xbf\x33\xca\x61\xf8\x6c\x03\x9a"
+                            "\x0e\xa5\x3c\xd3\x47\xde\x75\x0c"
+                            "\x80\x17\xae\x22\xb9\x50\xe7\x5b"
+                            "\xf2\x89\x20\x94\x2b\xc2\x36\xcd"
+                            "\x64\xfb\x6f\x06\x9d\x11\xa8\x3f"
+                            "\xd6\x4a\xe1\x78\x0f\x83\x1a\xb1"
+                            "\x25\xbc\x53\xea\x5e\xf5\x8c\x00"
+                            "\x97\x2e\xc5\x39\xd0\x67\xfe\x72"
+                            "\x09\xa0\x14\xab\x42\xd9\x4d\xe4"
+                            "\x7b\x12\x86\x1d\xb4\x28\xbf\x56"
+                            "\xed\x61\xf8\x8f\x03\x9a\x31\xc8"
+                            "\x3c\xd3\x6a\x01\x75\x0c\xa3\x17"
+                            "\xae\x45\xdc\x50\xe7\x7e\x15\x89"
+                            "\x20\xb7\x2b\xc2\x59\xf0\x64\xfb"
+                            "\x92\x06\x9d\x34\xcb\x3f\xd6\x6d"
+                            "\x04\x78\x0f\xa6\x1a\xb1\x48\xdf"
+                            "\x53\xea\x81\x18\x8c\x23\xba\x2e"
+                            "\xc5\x5c\xf3\x67\xfe\x95\x09\xa0"
+                            "\x37\xce\x42\xd9\x70\x07\x7b\x12"
+                            "\xa9\x1d\xb4\x4b\xe2\x56\xed\x84"
+                            "\x1b\x8f\x26\xbd\x31\xc8\x5f\xf6"
+                            "\x6a\x01\x98\x0c\xa3\x3a\xd1\x45"
+                            "\xdc\x73\x0a\x7e\x15\xac\x20\xb7"
+                            "\x4e\xe5\x59\xf0\x87\x1e\x92\x29"
+                            "\xc0\x34\xcb\x62\xf9\x6d\x04\x9b"
+                            "\x0f\xa6\x3d\xd4\x48\xdf\x76\x0d"
+                            "\x81\x18\xaf\x23\xba\x51\xe8\x5c"
+                            "\xf3\x8a\x21\x95\x2c\xc3\x37\xce"
+                            "\x65\xfc\x70\x07\x9e\x12\xa9\x40"
+                            "\xd7\x4b\xe2\x79\x10\x84\x1b\xb2"
+                            "\x26\xbd\x54\xeb\x5f\xf6\x8d\x01"
+                            "\x98\x2f\xc6\x3a\xd1\x68\xff\x73"
+                            "\x0a\xa1\x15\xac\x43\xda\x4e\xe5"
+                            "\x7c\x13\x87\x1e\xb5\x29\xc0\x57"
+                            "\xee\x62\xf9\x90\x04\x9b\x32\xc9"
+                            "\x3d\xd4\x6b\x02\x76\x0d\xa4\x18"
+                            "\xaf\x46\xdd\x51\xe8\x7f\x16\x8a"
+                            "\x21\xb8\x2c\xc3\x5a\xf1\x65\xfc"
+                            "\x93\x07\x9e\x35\xcc\x40\xd7\x6e"
+                            "\x05\x79\x10\xa7\x1b\xb2\x49\xe0"
+                            "\x54\xeb\x82\x19\x8d\x24\xbb\x2f"
+                            "\xc6\x5d\xf4\x68\xff\x96\x0a\xa1"
+                            "\x38\xcf\x43\xda\x71\x08\x7c\x13"
+                            "\xaa\x1e\xb5\x4c\xe3\x57\xee\x85"
+                            "\x1c\x90\x27\xbe\x32\xc9\x60\xf7"
+                            "\x6b\x02\x99\x0d\xa4\x3b\xd2\x46"
+                            "\xdd\x74\x0b\x7f\x16\xad\x21\xb8"
+                            "\x4f\xe6\x5a\xf1\x88\x1f\x93\x2a"
+                            "\xc1\x35\xcc\x63\xfa\x6e\x05\x9c"
+                            "\x10\xa7\x3e\xd5\x49\xe0\x77\x0e"
+                            "\x82\x19\xb0\x24\xbb\x52\xe9\x5d"
+                            "\xf4\x8b\x22\x96\x2d\xc4\x38\xcf"
+                            "\x66\xfd\x71\x08\x9f\x13\xaa\x41"
+                            "\xd8\x4c\xe3\x7a\x11\x85\x1c\xb3"
+                            "\x27\xbe\x55\xec\x60\xf7\x8e\x02"
+                            "\x99\x30\xc7\x3b\xd2\x69\x00\x74"
+                            "\x0b\xa2\x16\xad\x44\xdb\x4f\xe6"
+                            "\x7d\x14\x88\x1f\xb6\x2a\xc1\x58"
+                            "\xef\x63\xfa\x91\x05\x9c\x33\xca"
+                            "\x3e\xd5\x6c\x03\x77\x0e\xa5\x19"
+                            "\xb0\x47\xde\x52\xe9\x80\x17\x8b"
+                            "\x22\xb9\x2d\xc4\x5b\xf2\x66\xfd"
+                            "\x94\x08\x9f\x36\xcd\x41\xd8\x6f"
+                            "\x06\x7a\x11\xa8\x1c\xb3\x4a\xe1"
+                            "\x55\xec\x83\x1a\x8e\x25\xbc\x30"
+                            "\xc7\x5e\xf5\x69\x00\x97\x0b\xa2"
+                            "\x39\xd0\x44\xdb\x72\x09\x7d\x14"
+                            "\xab\x1f\xb6\x4d\xe4\x58\xef\x86"
+                            "\x1d\x91\x28\xbf\x33\xca\x61\xf8"
+                            "\x6c\x03\x9a\x0e\xa5\x3c\xd3\x47"
+                            "\xde\x75\x0c\x80\x17\xae\x22\xb9"
+                            "\x50\xe7\x5b\xf2\x89\x20\x94\x2b"
+                            "\xc2\x36\xcd\x64\xfb\x6f\x06\x9d"
+                            "\x11\xa8\x3f\xd6\x4a\xe1\x78\x0f"
+                            "\x83\x1a\xb1\x25\xbc\x53\xea\x5e"
+                            "\xf5\x8c\x00\x97\x2e\xc5\x39\xd0"
+                            "\x67\xfe\x72\x09\xa0\x14\xab\x42"
+                            "\xd9\x4d\xe4\x7b\x12\x86\x1d\xb4"
+                            "\x28\xbf\x56\xed\x61\xf8\x8f\x03"
+                            "\x9a\x31\xc8\x3c\xd3\x6a\x01\x75"
+                            "\x0c\xa3\x17\xae\x45\xdc\x50\xe7"
+                            "\x7e\x15\x89\x20\xb7\x2b\xc2\x59"
+                            "\xf0\x64\xfb\x92\x06\x9d\x34\xcb"
+                            "\x3f\xd6\x6d\x04\x78\x0f\xa6\x1a"
+                            "\xb1\x48\xdf\x53\xea\x81\x18\x8c"
+                            "\x23\xba\x2e\xc5\x5c\xf3\x67\xfe"
+                            "\x95\x09\xa0\x37\xce\x42\xd9\x70"
+                            "\x07\x7b\x12\xa9\x1d\xb4\x4b\xe2"
+                            "\x56\xed\x84\x1b\x8f\x26\xbd\x31"
+                            "\xc8\x5f\xf6\x6a\x01\x98\x0c\xa3"
+                            "\x3a\xd1\x45\xdc\x73\x0a\x7e\x15"
+                            "\xac\x20\xb7\x4e\xe5\x59\xf0\x87"
+                            "\x1e\x92\x29\xc0\x34\xcb\x62\xf9"
+                            "\x6d\x04\x9b\x0f\xa6\x3d\xd4\x48"
+                            "\xdf\x76\x0d\x81\x18\xaf\x23\xba"
+                            "\x51\xe8\x5c\xf3\x8a\x21\x95\x2c"
+                            "\xc3\x37\xce\x65\xfc\x70\x07\x9e"
+                            "\x12\xa9\x40\xd7\x4b\xe2\x79\x10"
+                            "\x84\x1b\xb2\x26\xbd\x54\xeb\x5f"
+                            "\xf6\x8d\x01\x98\x2f\xc6\x3a\xd1"
+                            "\x68\xff\x73\x0a\xa1\x15\xac\x43"
+                            "\xda\x4e\xe5\x7c\x13\x87\x1e\xb5"
+                            "\x29\xc0\x57\xee\x62\xf9\x90\x04"
+                            "\x9b\x32\xc9\x3d\xd4\x6b\x02\x76"
+                            "\x0d\xa4\x18\xaf\x46\xdd\x51\xe8"
+                            "\x7f\x16\x8a\x21\xb8\x2c\xc3\x5a"
+                            "\xf1\x65\xfc\x93\x07\x9e\x35\xcc"
+                            "\x40\xd7\x6e\x05\x79\x10\xa7\x1b"
+                            "\xb2\x49\xe0\x54\xeb\x82\x19\x8d"
+                            "\x24\xbb\x2f\xc6\x5d\xf4\x68\xff"
+                            "\x96\x0a\xa1\x38\xcf\x43\xda\x71"
+                            "\x08\x7c\x13\xaa\x1e\xb5\x4c",
+               .psize     = 1023,
+               .digest    = "\xb8\xe3\x54\xed\xc5\xfc\xef\xa4"
+                            "\x55\x73\x4a\x81\x99\xe4\x47\x2a"
+                            "\x30\xd6\xc9\x85",
        }
 };
 
@@ -536,10 +679,17 @@ static struct hash_testvec sha1_tv_template[] = {
 /*
  * SHA224 test vectors from from FIPS PUB 180-2
  */
-#define SHA224_TEST_VECTORS     2
+#define SHA224_TEST_VECTORS     5
 
 static struct hash_testvec sha224_tv_template[] = {
        {
+               .plaintext = "",
+               .psize  = 0,
+               .digest = "\xd1\x4a\x02\x8c\x2a\x3a\x2b\xc9"
+                         "\x47\x61\x02\xbb\x28\x82\x34\xc4"
+                         "\x15\xa2\xb0\x1f\x82\x8e\xa6\x2a"
+                         "\xc5\xb3\xe4\x2f",
+       }, {
                .plaintext = "abc",
                .psize  = 3,
                .digest = "\x23\x09\x7D\x22\x34\x05\xD8\x22"
@@ -556,16 +706,164 @@ static struct hash_testvec sha224_tv_template[] = {
                          "\x52\x52\x25\x25",
                .np     = 2,
                .tap    = { 28, 28 }
+       }, {
+               .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-",
+               .psize  = 64,
+               .digest = "\xc4\xdb\x2b\x3a\x58\xc3\x99\x01"
+                         "\x42\xfd\x10\x92\xaa\x4e\x04\x08"
+                         "\x58\xbb\xbb\xe8\xf8\x14\xa7\x0c"
+                         "\xef\x3b\xcb\x0e",
+       }, {
+               .plaintext = "\x08\x9f\x13\xaa\x41\xd8\x4c\xe3"
+                            "\x7a\x11\x85\x1c\xb3\x27\xbe\x55"
+                            "\xec\x60\xf7\x8e\x02\x99\x30\xc7"
+                            "\x3b\xd2\x69\x00\x74\x0b\xa2\x16"
+                            "\xad\x44\xdb\x4f\xe6\x7d\x14\x88"
+                            "\x1f\xb6\x2a\xc1\x58\xef\x63\xfa"
+                            "\x91\x05\x9c\x33\xca\x3e\xd5\x6c"
+                            "\x03\x77\x0e\xa5\x19\xb0\x47\xde"
+                            "\x52\xe9\x80\x17\x8b\x22\xb9\x2d"
+                            "\xc4\x5b\xf2\x66\xfd\x94\x08\x9f"
+                            "\x36\xcd\x41\xd8\x6f\x06\x7a\x11"
+                            "\xa8\x1c\xb3\x4a\xe1\x55\xec\x83"
+                            "\x1a\x8e\x25\xbc\x30\xc7\x5e\xf5"
+                            "\x69\x00\x97\x0b\xa2\x39\xd0\x44"
+                            "\xdb\x72\x09\x7d\x14\xab\x1f\xb6"
+                            "\x4d\xe4\x58\xef\x86\x1d\x91\x28"
+                            "\xbf\x33\xca\x61\xf8\x6c\x03\x9a"
+                            "\x0e\xa5\x3c\xd3\x47\xde\x75\x0c"
+                            "\x80\x17\xae\x22\xb9\x50\xe7\x5b"
+                            "\xf2\x89\x20\x94\x2b\xc2\x36\xcd"
+                            "\x64\xfb\x6f\x06\x9d\x11\xa8\x3f"
+                            "\xd6\x4a\xe1\x78\x0f\x83\x1a\xb1"
+                            "\x25\xbc\x53\xea\x5e\xf5\x8c\x00"
+                            "\x97\x2e\xc5\x39\xd0\x67\xfe\x72"
+                            "\x09\xa0\x14\xab\x42\xd9\x4d\xe4"
+                            "\x7b\x12\x86\x1d\xb4\x28\xbf\x56"
+                            "\xed\x61\xf8\x8f\x03\x9a\x31\xc8"
+                            "\x3c\xd3\x6a\x01\x75\x0c\xa3\x17"
+                            "\xae\x45\xdc\x50\xe7\x7e\x15\x89"
+                            "\x20\xb7\x2b\xc2\x59\xf0\x64\xfb"
+                            "\x92\x06\x9d\x34\xcb\x3f\xd6\x6d"
+                            "\x04\x78\x0f\xa6\x1a\xb1\x48\xdf"
+                            "\x53\xea\x81\x18\x8c\x23\xba\x2e"
+                            "\xc5\x5c\xf3\x67\xfe\x95\x09\xa0"
+                            "\x37\xce\x42\xd9\x70\x07\x7b\x12"
+                            "\xa9\x1d\xb4\x4b\xe2\x56\xed\x84"
+                            "\x1b\x8f\x26\xbd\x31\xc8\x5f\xf6"
+                            "\x6a\x01\x98\x0c\xa3\x3a\xd1\x45"
+                            "\xdc\x73\x0a\x7e\x15\xac\x20\xb7"
+                            "\x4e\xe5\x59\xf0\x87\x1e\x92\x29"
+                            "\xc0\x34\xcb\x62\xf9\x6d\x04\x9b"
+                            "\x0f\xa6\x3d\xd4\x48\xdf\x76\x0d"
+                            "\x81\x18\xaf\x23\xba\x51\xe8\x5c"
+                            "\xf3\x8a\x21\x95\x2c\xc3\x37\xce"
+                            "\x65\xfc\x70\x07\x9e\x12\xa9\x40"
+                            "\xd7\x4b\xe2\x79\x10\x84\x1b\xb2"
+                            "\x26\xbd\x54\xeb\x5f\xf6\x8d\x01"
+                            "\x98\x2f\xc6\x3a\xd1\x68\xff\x73"
+                            "\x0a\xa1\x15\xac\x43\xda\x4e\xe5"
+                            "\x7c\x13\x87\x1e\xb5\x29\xc0\x57"
+                            "\xee\x62\xf9\x90\x04\x9b\x32\xc9"
+                            "\x3d\xd4\x6b\x02\x76\x0d\xa4\x18"
+                            "\xaf\x46\xdd\x51\xe8\x7f\x16\x8a"
+                            "\x21\xb8\x2c\xc3\x5a\xf1\x65\xfc"
+                            "\x93\x07\x9e\x35\xcc\x40\xd7\x6e"
+                            "\x05\x79\x10\xa7\x1b\xb2\x49\xe0"
+                            "\x54\xeb\x82\x19\x8d\x24\xbb\x2f"
+                            "\xc6\x5d\xf4\x68\xff\x96\x0a\xa1"
+                            "\x38\xcf\x43\xda\x71\x08\x7c\x13"
+                            "\xaa\x1e\xb5\x4c\xe3\x57\xee\x85"
+                            "\x1c\x90\x27\xbe\x32\xc9\x60\xf7"
+                            "\x6b\x02\x99\x0d\xa4\x3b\xd2\x46"
+                            "\xdd\x74\x0b\x7f\x16\xad\x21\xb8"
+                            "\x4f\xe6\x5a\xf1\x88\x1f\x93\x2a"
+                            "\xc1\x35\xcc\x63\xfa\x6e\x05\x9c"
+                            "\x10\xa7\x3e\xd5\x49\xe0\x77\x0e"
+                            "\x82\x19\xb0\x24\xbb\x52\xe9\x5d"
+                            "\xf4\x8b\x22\x96\x2d\xc4\x38\xcf"
+                            "\x66\xfd\x71\x08\x9f\x13\xaa\x41"
+                            "\xd8\x4c\xe3\x7a\x11\x85\x1c\xb3"
+                            "\x27\xbe\x55\xec\x60\xf7\x8e\x02"
+                            "\x99\x30\xc7\x3b\xd2\x69\x00\x74"
+                            "\x0b\xa2\x16\xad\x44\xdb\x4f\xe6"
+                            "\x7d\x14\x88\x1f\xb6\x2a\xc1\x58"
+                            "\xef\x63\xfa\x91\x05\x9c\x33\xca"
+                            "\x3e\xd5\x6c\x03\x77\x0e\xa5\x19"
+                            "\xb0\x47\xde\x52\xe9\x80\x17\x8b"
+                            "\x22\xb9\x2d\xc4\x5b\xf2\x66\xfd"
+                            "\x94\x08\x9f\x36\xcd\x41\xd8\x6f"
+                            "\x06\x7a\x11\xa8\x1c\xb3\x4a\xe1"
+                            "\x55\xec\x83\x1a\x8e\x25\xbc\x30"
+                            "\xc7\x5e\xf5\x69\x00\x97\x0b\xa2"
+                            "\x39\xd0\x44\xdb\x72\x09\x7d\x14"
+                            "\xab\x1f\xb6\x4d\xe4\x58\xef\x86"
+                            "\x1d\x91\x28\xbf\x33\xca\x61\xf8"
+                            "\x6c\x03\x9a\x0e\xa5\x3c\xd3\x47"
+                            "\xde\x75\x0c\x80\x17\xae\x22\xb9"
+                            "\x50\xe7\x5b\xf2\x89\x20\x94\x2b"
+                            "\xc2\x36\xcd\x64\xfb\x6f\x06\x9d"
+                            "\x11\xa8\x3f\xd6\x4a\xe1\x78\x0f"
+                            "\x83\x1a\xb1\x25\xbc\x53\xea\x5e"
+                            "\xf5\x8c\x00\x97\x2e\xc5\x39\xd0"
+                            "\x67\xfe\x72\x09\xa0\x14\xab\x42"
+                            "\xd9\x4d\xe4\x7b\x12\x86\x1d\xb4"
+                            "\x28\xbf\x56\xed\x61\xf8\x8f\x03"
+                            "\x9a\x31\xc8\x3c\xd3\x6a\x01\x75"
+                            "\x0c\xa3\x17\xae\x45\xdc\x50\xe7"
+                            "\x7e\x15\x89\x20\xb7\x2b\xc2\x59"
+                            "\xf0\x64\xfb\x92\x06\x9d\x34\xcb"
+                            "\x3f\xd6\x6d\x04\x78\x0f\xa6\x1a"
+                            "\xb1\x48\xdf\x53\xea\x81\x18\x8c"
+                            "\x23\xba\x2e\xc5\x5c\xf3\x67\xfe"
+                            "\x95\x09\xa0\x37\xce\x42\xd9\x70"
+                            "\x07\x7b\x12\xa9\x1d\xb4\x4b\xe2"
+                            "\x56\xed\x84\x1b\x8f\x26\xbd\x31"
+                            "\xc8\x5f\xf6\x6a\x01\x98\x0c\xa3"
+                            "\x3a\xd1\x45\xdc\x73\x0a\x7e\x15"
+                            "\xac\x20\xb7\x4e\xe5\x59\xf0\x87"
+                            "\x1e\x92\x29\xc0\x34\xcb\x62\xf9"
+                            "\x6d\x04\x9b\x0f\xa6\x3d\xd4\x48"
+                            "\xdf\x76\x0d\x81\x18\xaf\x23\xba"
+                            "\x51\xe8\x5c\xf3\x8a\x21\x95\x2c"
+                            "\xc3\x37\xce\x65\xfc\x70\x07\x9e"
+                            "\x12\xa9\x40\xd7\x4b\xe2\x79\x10"
+                            "\x84\x1b\xb2\x26\xbd\x54\xeb\x5f"
+                            "\xf6\x8d\x01\x98\x2f\xc6\x3a\xd1"
+                            "\x68\xff\x73\x0a\xa1\x15\xac\x43"
+                            "\xda\x4e\xe5\x7c\x13\x87\x1e\xb5"
+                            "\x29\xc0\x57\xee\x62\xf9\x90\x04"
+                            "\x9b\x32\xc9\x3d\xd4\x6b\x02\x76"
+                            "\x0d\xa4\x18\xaf\x46\xdd\x51\xe8"
+                            "\x7f\x16\x8a\x21\xb8\x2c\xc3\x5a"
+                            "\xf1\x65\xfc\x93\x07\x9e\x35\xcc"
+                            "\x40\xd7\x6e\x05\x79\x10\xa7\x1b"
+                            "\xb2\x49\xe0\x54\xeb\x82\x19\x8d"
+                            "\x24\xbb\x2f\xc6\x5d\xf4\x68\xff"
+                            "\x96\x0a\xa1\x38\xcf\x43\xda\x71"
+                            "\x08\x7c\x13\xaa\x1e\xb5\x4c",
+               .psize     = 1023,
+               .digest    = "\x98\x43\x07\x63\x75\xe0\xa7\x1c"
+                            "\x78\xb1\x8b\xfd\x04\xf5\x2d\x91"
+                            "\x20\x48\xa4\x28\xff\x55\xb1\xd3"
+                            "\xe6\xf9\x4f\xcc",
        }
 };
 
 /*
  * SHA256 test vectors from from NIST
  */
-#define SHA256_TEST_VECTORS    2
+#define SHA256_TEST_VECTORS    5
 
 static struct hash_testvec sha256_tv_template[] = {
        {
+               .plaintext = "",
+               .psize  = 0,
+               .digest = "\xe3\xb0\xc4\x42\x98\xfc\x1c\x14"
+                         "\x9a\xfb\xf4\xc8\x99\x6f\xb9\x24"
+                         "\x27\xae\x41\xe4\x64\x9b\x93\x4c"
+                         "\xa4\x95\x99\x1b\x78\x52\xb8\x55",
+       }, {
                .plaintext = "abc",
                .psize  = 3,
                .digest = "\xba\x78\x16\xbf\x8f\x01\xcf\xea"
@@ -581,16 +879,166 @@ static struct hash_testvec sha256_tv_template[] = {
                          "\xf6\xec\xed\xd4\x19\xdb\x06\xc1",
                .np     = 2,
                .tap    = { 28, 28 }
-       },
+       }, {
+               .plaintext = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-",
+               .psize  = 64,
+               .digest = "\xb5\xfe\xad\x56\x7d\xff\xcb\xa4"
+                         "\x2c\x32\x29\x32\x19\xbb\xfb\xfa"
+                         "\xd6\xff\x94\xa3\x72\x91\x85\x66"
+                         "\x3b\xa7\x87\x77\x58\xa3\x40\x3a",
+       }, {
+               .plaintext = "\x08\x9f\x13\xaa\x41\xd8\x4c\xe3"
+                            "\x7a\x11\x85\x1c\xb3\x27\xbe\x55"
+                            "\xec\x60\xf7\x8e\x02\x99\x30\xc7"
+                            "\x3b\xd2\x69\x00\x74\x0b\xa2\x16"
+                            "\xad\x44\xdb\x4f\xe6\x7d\x14\x88"
+                            "\x1f\xb6\x2a\xc1\x58\xef\x63\xfa"
+                            "\x91\x05\x9c\x33\xca\x3e\xd5\x6c"
+                            "\x03\x77\x0e\xa5\x19\xb0\x47\xde"
+                            "\x52\xe9\x80\x17\x8b\x22\xb9\x2d"
+                            "\xc4\x5b\xf2\x66\xfd\x94\x08\x9f"
+                            "\x36\xcd\x41\xd8\x6f\x06\x7a\x11"
+                            "\xa8\x1c\xb3\x4a\xe1\x55\xec\x83"
+                            "\x1a\x8e\x25\xbc\x30\xc7\x5e\xf5"
+                            "\x69\x00\x97\x0b\xa2\x39\xd0\x44"
+                            "\xdb\x72\x09\x7d\x14\xab\x1f\xb6"
+                            "\x4d\xe4\x58\xef\x86\x1d\x91\x28"
+                            "\xbf\x33\xca\x61\xf8\x6c\x03\x9a"
+                            "\x0e\xa5\x3c\xd3\x47\xde\x75\x0c"
+                            "\x80\x17\xae\x22\xb9\x50\xe7\x5b"
+                            "\xf2\x89\x20\x94\x2b\xc2\x36\xcd"
+                            "\x64\xfb\x6f\x06\x9d\x11\xa8\x3f"
+                            "\xd6\x4a\xe1\x78\x0f\x83\x1a\xb1"
+                            "\x25\xbc\x53\xea\x5e\xf5\x8c\x00"
+                            "\x97\x2e\xc5\x39\xd0\x67\xfe\x72"
+                            "\x09\xa0\x14\xab\x42\xd9\x4d\xe4"
+                            "\x7b\x12\x86\x1d\xb4\x28\xbf\x56"
+                            "\xed\x61\xf8\x8f\x03\x9a\x31\xc8"
+                            "\x3c\xd3\x6a\x01\x75\x0c\xa3\x17"
+                            "\xae\x45\xdc\x50\xe7\x7e\x15\x89"
+                            "\x20\xb7\x2b\xc2\x59\xf0\x64\xfb"
+                            "\x92\x06\x9d\x34\xcb\x3f\xd6\x6d"
+                            "\x04\x78\x0f\xa6\x1a\xb1\x48\xdf"
+                            "\x53\xea\x81\x18\x8c\x23\xba\x2e"
+                            "\xc5\x5c\xf3\x67\xfe\x95\x09\xa0"
+                            "\x37\xce\x42\xd9\x70\x07\x7b\x12"
+                            "\xa9\x1d\xb4\x4b\xe2\x56\xed\x84"
+                            "\x1b\x8f\x26\xbd\x31\xc8\x5f\xf6"
+                            "\x6a\x01\x98\x0c\xa3\x3a\xd1\x45"
+                            "\xdc\x73\x0a\x7e\x15\xac\x20\xb7"
+                            "\x4e\xe5\x59\xf0\x87\x1e\x92\x29"
+                            "\xc0\x34\xcb\x62\xf9\x6d\x04\x9b"
+                            "\x0f\xa6\x3d\xd4\x48\xdf\x76\x0d"
+                            "\x81\x18\xaf\x23\xba\x51\xe8\x5c"
+                            "\xf3\x8a\x21\x95\x2c\xc3\x37\xce"
+                            "\x65\xfc\x70\x07\x9e\x12\xa9\x40"
+                            "\xd7\x4b\xe2\x79\x10\x84\x1b\xb2"
+                            "\x26\xbd\x54\xeb\x5f\xf6\x8d\x01"
+                            "\x98\x2f\xc6\x3a\xd1\x68\xff\x73"
+                            "\x0a\xa1\x15\xac\x43\xda\x4e\xe5"
+                            "\x7c\x13\x87\x1e\xb5\x29\xc0\x57"
+                            "\xee\x62\xf9\x90\x04\x9b\x32\xc9"
+                            "\x3d\xd4\x6b\x02\x76\x0d\xa4\x18"
+                            "\xaf\x46\xdd\x51\xe8\x7f\x16\x8a"
+                            "\x21\xb8\x2c\xc3\x5a\xf1\x65\xfc"
+                            "\x93\x07\x9e\x35\xcc\x40\xd7\x6e"
+                            "\x05\x79\x10\xa7\x1b\xb2\x49\xe0"
+                            "\x54\xeb\x82\x19\x8d\x24\xbb\x2f"
+                            "\xc6\x5d\xf4\x68\xff\x96\x0a\xa1"
+                            "\x38\xcf\x43\xda\x71\x08\x7c\x13"
+                            "\xaa\x1e\xb5\x4c\xe3\x57\xee\x85"
+                            "\x1c\x90\x27\xbe\x32\xc9\x60\xf7"
+                            "\x6b\x02\x99\x0d\xa4\x3b\xd2\x46"
+                            "\xdd\x74\x0b\x7f\x16\xad\x21\xb8"
+                            "\x4f\xe6\x5a\xf1\x88\x1f\x93\x2a"
+                            "\xc1\x35\xcc\x63\xfa\x6e\x05\x9c"
+                            "\x10\xa7\x3e\xd5\x49\xe0\x77\x0e"
+                            "\x82\x19\xb0\x24\xbb\x52\xe9\x5d"
+                            "\xf4\x8b\x22\x96\x2d\xc4\x38\xcf"
+                            "\x66\xfd\x71\x08\x9f\x13\xaa\x41"
+                            "\xd8\x4c\xe3\x7a\x11\x85\x1c\xb3"
+                            "\x27\xbe\x55\xec\x60\xf7\x8e\x02"
+                            "\x99\x30\xc7\x3b\xd2\x69\x00\x74"
+                            "\x0b\xa2\x16\xad\x44\xdb\x4f\xe6"
+                            "\x7d\x14\x88\x1f\xb6\x2a\xc1\x58"
+                            "\xef\x63\xfa\x91\x05\x9c\x33\xca"
+                            "\x3e\xd5\x6c\x03\x77\x0e\xa5\x19"
+                            "\xb0\x47\xde\x52\xe9\x80\x17\x8b"
+                            "\x22\xb9\x2d\xc4\x5b\xf2\x66\xfd"
+                            "\x94\x08\x9f\x36\xcd\x41\xd8\x6f"
+                            "\x06\x7a\x11\xa8\x1c\xb3\x4a\xe1"
+                            "\x55\xec\x83\x1a\x8e\x25\xbc\x30"
+                            "\xc7\x5e\xf5\x69\x00\x97\x0b\xa2"
+                            "\x39\xd0\x44\xdb\x72\x09\x7d\x14"
+                            "\xab\x1f\xb6\x4d\xe4\x58\xef\x86"
+                            "\x1d\x91\x28\xbf\x33\xca\x61\xf8"
+                            "\x6c\x03\x9a\x0e\xa5\x3c\xd3\x47"
+                            "\xde\x75\x0c\x80\x17\xae\x22\xb9"
+                            "\x50\xe7\x5b\xf2\x89\x20\x94\x2b"
+                            "\xc2\x36\xcd\x64\xfb\x6f\x06\x9d"
+                            "\x11\xa8\x3f\xd6\x4a\xe1\x78\x0f"
+                            "\x83\x1a\xb1\x25\xbc\x53\xea\x5e"
+                            "\xf5\x8c\x00\x97\x2e\xc5\x39\xd0"
+                            "\x67\xfe\x72\x09\xa0\x14\xab\x42"
+                            "\xd9\x4d\xe4\x7b\x12\x86\x1d\xb4"
+                            "\x28\xbf\x56\xed\x61\xf8\x8f\x03"
+                            "\x9a\x31\xc8\x3c\xd3\x6a\x01\x75"
+                            "\x0c\xa3\x17\xae\x45\xdc\x50\xe7"
+                            "\x7e\x15\x89\x20\xb7\x2b\xc2\x59"
+                            "\xf0\x64\xfb\x92\x06\x9d\x34\xcb"
+                            "\x3f\xd6\x6d\x04\x78\x0f\xa6\x1a"
+                            "\xb1\x48\xdf\x53\xea\x81\x18\x8c"
+                            "\x23\xba\x2e\xc5\x5c\xf3\x67\xfe"
+                            "\x95\x09\xa0\x37\xce\x42\xd9\x70"
+                            "\x07\x7b\x12\xa9\x1d\xb4\x4b\xe2"
+                            "\x56\xed\x84\x1b\x8f\x26\xbd\x31"
+                            "\xc8\x5f\xf6\x6a\x01\x98\x0c\xa3"
+                            "\x3a\xd1\x45\xdc\x73\x0a\x7e\x15"
+                            "\xac\x20\xb7\x4e\xe5\x59\xf0\x87"
+                            "\x1e\x92\x29\xc0\x34\xcb\x62\xf9"
+                            "\x6d\x04\x9b\x0f\xa6\x3d\xd4\x48"
+                            "\xdf\x76\x0d\x81\x18\xaf\x23\xba"
+                            "\x51\xe8\x5c\xf3\x8a\x21\x95\x2c"
+                            "\xc3\x37\xce\x65\xfc\x70\x07\x9e"
+                            "\x12\xa9\x40\xd7\x4b\xe2\x79\x10"
+                            "\x84\x1b\xb2\x26\xbd\x54\xeb\x5f"
+                            "\xf6\x8d\x01\x98\x2f\xc6\x3a\xd1"
+                            "\x68\xff\x73\x0a\xa1\x15\xac\x43"
+                            "\xda\x4e\xe5\x7c\x13\x87\x1e\xb5"
+                            "\x29\xc0\x57\xee\x62\xf9\x90\x04"
+                            "\x9b\x32\xc9\x3d\xd4\x6b\x02\x76"
+                            "\x0d\xa4\x18\xaf\x46\xdd\x51\xe8"
+                            "\x7f\x16\x8a\x21\xb8\x2c\xc3\x5a"
+                            "\xf1\x65\xfc\x93\x07\x9e\x35\xcc"
+                            "\x40\xd7\x6e\x05\x79\x10\xa7\x1b"
+                            "\xb2\x49\xe0\x54\xeb\x82\x19\x8d"
+                            "\x24\xbb\x2f\xc6\x5d\xf4\x68\xff"
+                            "\x96\x0a\xa1\x38\xcf\x43\xda\x71"
+                            "\x08\x7c\x13\xaa\x1e\xb5\x4c",
+               .psize     = 1023,
+               .digest    = "\xc5\xce\x0c\xca\x01\x4f\x53\x3a"
+                            "\x32\x32\x17\xcc\xd4\x6a\x71\xa9"
+                            "\xf3\xed\x50\x10\x64\x8e\x06\xbe"
+                            "\x9b\x4a\xa6\xbb\x05\x89\x59\x51",
+       }
 };
 
 /*
  * SHA384 test vectors from from NIST and kerneli
  */
-#define SHA384_TEST_VECTORS    4
+#define SHA384_TEST_VECTORS    6
 
 static struct hash_testvec sha384_tv_template[] = {
        {
+               .plaintext = "",
+               .psize  = 0,
+               .digest = "\x38\xb0\x60\xa7\x51\xac\x96\x38"
+                         "\x4c\xd9\x32\x7e\xb1\xb1\xe3\x6a"
+                         "\x21\xfd\xb7\x11\x14\xbe\x07\x43"
+                         "\x4c\x0c\xc7\xbf\x63\xf6\xe1\xda"
+                         "\x27\x4e\xde\xbf\xe7\x6f\x65\xfb"
+                         "\xd5\x1a\xd2\xf1\x48\x98\xb9\x5b",
+       }, {
                .plaintext= "abc",
                .psize  = 3,
                .digest = "\xcb\x00\x75\x3f\x45\xa3\x5e\x8b"
@@ -630,16 +1078,163 @@ static struct hash_testvec sha384_tv_template[] = {
                          "\xc9\x38\xe2\xd1\x99\xe8\xbe\xa4",
                .np     = 4,
                .tap    = { 26, 26, 26, 26 }
-       },
+       }, {
+               .plaintext = "\x08\x9f\x13\xaa\x41\xd8\x4c\xe3"
+                            "\x7a\x11\x85\x1c\xb3\x27\xbe\x55"
+                            "\xec\x60\xf7\x8e\x02\x99\x30\xc7"
+                            "\x3b\xd2\x69\x00\x74\x0b\xa2\x16"
+                            "\xad\x44\xdb\x4f\xe6\x7d\x14\x88"
+                            "\x1f\xb6\x2a\xc1\x58\xef\x63\xfa"
+                            "\x91\x05\x9c\x33\xca\x3e\xd5\x6c"
+                            "\x03\x77\x0e\xa5\x19\xb0\x47\xde"
+                            "\x52\xe9\x80\x17\x8b\x22\xb9\x2d"
+                            "\xc4\x5b\xf2\x66\xfd\x94\x08\x9f"
+                            "\x36\xcd\x41\xd8\x6f\x06\x7a\x11"
+                            "\xa8\x1c\xb3\x4a\xe1\x55\xec\x83"
+                            "\x1a\x8e\x25\xbc\x30\xc7\x5e\xf5"
+                            "\x69\x00\x97\x0b\xa2\x39\xd0\x44"
+                            "\xdb\x72\x09\x7d\x14\xab\x1f\xb6"
+                            "\x4d\xe4\x58\xef\x86\x1d\x91\x28"
+                            "\xbf\x33\xca\x61\xf8\x6c\x03\x9a"
+                            "\x0e\xa5\x3c\xd3\x47\xde\x75\x0c"
+                            "\x80\x17\xae\x22\xb9\x50\xe7\x5b"
+                            "\xf2\x89\x20\x94\x2b\xc2\x36\xcd"
+                            "\x64\xfb\x6f\x06\x9d\x11\xa8\x3f"
+                            "\xd6\x4a\xe1\x78\x0f\x83\x1a\xb1"
+                            "\x25\xbc\x53\xea\x5e\xf5\x8c\x00"
+                            "\x97\x2e\xc5\x39\xd0\x67\xfe\x72"
+                            "\x09\xa0\x14\xab\x42\xd9\x4d\xe4"
+                            "\x7b\x12\x86\x1d\xb4\x28\xbf\x56"
+                            "\xed\x61\xf8\x8f\x03\x9a\x31\xc8"
+                            "\x3c\xd3\x6a\x01\x75\x0c\xa3\x17"
+                            "\xae\x45\xdc\x50\xe7\x7e\x15\x89"
+                            "\x20\xb7\x2b\xc2\x59\xf0\x64\xfb"
+                            "\x92\x06\x9d\x34\xcb\x3f\xd6\x6d"
+                            "\x04\x78\x0f\xa6\x1a\xb1\x48\xdf"
+                            "\x53\xea\x81\x18\x8c\x23\xba\x2e"
+                            "\xc5\x5c\xf3\x67\xfe\x95\x09\xa0"
+                            "\x37\xce\x42\xd9\x70\x07\x7b\x12"
+                            "\xa9\x1d\xb4\x4b\xe2\x56\xed\x84"
+                            "\x1b\x8f\x26\xbd\x31\xc8\x5f\xf6"
+                            "\x6a\x01\x98\x0c\xa3\x3a\xd1\x45"
+                            "\xdc\x73\x0a\x7e\x15\xac\x20\xb7"
+                            "\x4e\xe5\x59\xf0\x87\x1e\x92\x29"
+                            "\xc0\x34\xcb\x62\xf9\x6d\x04\x9b"
+                            "\x0f\xa6\x3d\xd4\x48\xdf\x76\x0d"
+                            "\x81\x18\xaf\x23\xba\x51\xe8\x5c"
+                            "\xf3\x8a\x21\x95\x2c\xc3\x37\xce"
+                            "\x65\xfc\x70\x07\x9e\x12\xa9\x40"
+                            "\xd7\x4b\xe2\x79\x10\x84\x1b\xb2"
+                            "\x26\xbd\x54\xeb\x5f\xf6\x8d\x01"
+                            "\x98\x2f\xc6\x3a\xd1\x68\xff\x73"
+                            "\x0a\xa1\x15\xac\x43\xda\x4e\xe5"
+                            "\x7c\x13\x87\x1e\xb5\x29\xc0\x57"
+                            "\xee\x62\xf9\x90\x04\x9b\x32\xc9"
+                            "\x3d\xd4\x6b\x02\x76\x0d\xa4\x18"
+                            "\xaf\x46\xdd\x51\xe8\x7f\x16\x8a"
+                            "\x21\xb8\x2c\xc3\x5a\xf1\x65\xfc"
+                            "\x93\x07\x9e\x35\xcc\x40\xd7\x6e"
+                            "\x05\x79\x10\xa7\x1b\xb2\x49\xe0"
+                            "\x54\xeb\x82\x19\x8d\x24\xbb\x2f"
+                            "\xc6\x5d\xf4\x68\xff\x96\x0a\xa1"
+                            "\x38\xcf\x43\xda\x71\x08\x7c\x13"
+                            "\xaa\x1e\xb5\x4c\xe3\x57\xee\x85"
+                            "\x1c\x90\x27\xbe\x32\xc9\x60\xf7"
+                            "\x6b\x02\x99\x0d\xa4\x3b\xd2\x46"
+                            "\xdd\x74\x0b\x7f\x16\xad\x21\xb8"
+                            "\x4f\xe6\x5a\xf1\x88\x1f\x93\x2a"
+                            "\xc1\x35\xcc\x63\xfa\x6e\x05\x9c"
+                            "\x10\xa7\x3e\xd5\x49\xe0\x77\x0e"
+                            "\x82\x19\xb0\x24\xbb\x52\xe9\x5d"
+                            "\xf4\x8b\x22\x96\x2d\xc4\x38\xcf"
+                            "\x66\xfd\x71\x08\x9f\x13\xaa\x41"
+                            "\xd8\x4c\xe3\x7a\x11\x85\x1c\xb3"
+                            "\x27\xbe\x55\xec\x60\xf7\x8e\x02"
+                            "\x99\x30\xc7\x3b\xd2\x69\x00\x74"
+                            "\x0b\xa2\x16\xad\x44\xdb\x4f\xe6"
+                            "\x7d\x14\x88\x1f\xb6\x2a\xc1\x58"
+                            "\xef\x63\xfa\x91\x05\x9c\x33\xca"
+                            "\x3e\xd5\x6c\x03\x77\x0e\xa5\x19"
+                            "\xb0\x47\xde\x52\xe9\x80\x17\x8b"
+                            "\x22\xb9\x2d\xc4\x5b\xf2\x66\xfd"
+                            "\x94\x08\x9f\x36\xcd\x41\xd8\x6f"
+                            "\x06\x7a\x11\xa8\x1c\xb3\x4a\xe1"
+                            "\x55\xec\x83\x1a\x8e\x25\xbc\x30"
+                            "\xc7\x5e\xf5\x69\x00\x97\x0b\xa2"
+                            "\x39\xd0\x44\xdb\x72\x09\x7d\x14"
+                            "\xab\x1f\xb6\x4d\xe4\x58\xef\x86"
+                            "\x1d\x91\x28\xbf\x33\xca\x61\xf8"
+                            "\x6c\x03\x9a\x0e\xa5\x3c\xd3\x47"
+                            "\xde\x75\x0c\x80\x17\xae\x22\xb9"
+                            "\x50\xe7\x5b\xf2\x89\x20\x94\x2b"
+                            "\xc2\x36\xcd\x64\xfb\x6f\x06\x9d"
+                            "\x11\xa8\x3f\xd6\x4a\xe1\x78\x0f"
+                            "\x83\x1a\xb1\x25\xbc\x53\xea\x5e"
+                            "\xf5\x8c\x00\x97\x2e\xc5\x39\xd0"
+                            "\x67\xfe\x72\x09\xa0\x14\xab\x42"
+                            "\xd9\x4d\xe4\x7b\x12\x86\x1d\xb4"
+                            "\x28\xbf\x56\xed\x61\xf8\x8f\x03"
+                            "\x9a\x31\xc8\x3c\xd3\x6a\x01\x75"
+                            "\x0c\xa3\x17\xae\x45\xdc\x50\xe7"
+                            "\x7e\x15\x89\x20\xb7\x2b\xc2\x59"
+                            "\xf0\x64\xfb\x92\x06\x9d\x34\xcb"
+                            "\x3f\xd6\x6d\x04\x78\x0f\xa6\x1a"
+                            "\xb1\x48\xdf\x53\xea\x81\x18\x8c"
+                            "\x23\xba\x2e\xc5\x5c\xf3\x67\xfe"
+                            "\x95\x09\xa0\x37\xce\x42\xd9\x70"
+                            "\x07\x7b\x12\xa9\x1d\xb4\x4b\xe2"
+                            "\x56\xed\x84\x1b\x8f\x26\xbd\x31"
+                            "\xc8\x5f\xf6\x6a\x01\x98\x0c\xa3"
+                            "\x3a\xd1\x45\xdc\x73\x0a\x7e\x15"
+                            "\xac\x20\xb7\x4e\xe5\x59\xf0\x87"
+                            "\x1e\x92\x29\xc0\x34\xcb\x62\xf9"
+                            "\x6d\x04\x9b\x0f\xa6\x3d\xd4\x48"
+                            "\xdf\x76\x0d\x81\x18\xaf\x23\xba"
+                            "\x51\xe8\x5c\xf3\x8a\x21\x95\x2c"
+                            "\xc3\x37\xce\x65\xfc\x70\x07\x9e"
+                            "\x12\xa9\x40\xd7\x4b\xe2\x79\x10"
+                            "\x84\x1b\xb2\x26\xbd\x54\xeb\x5f"
+                            "\xf6\x8d\x01\x98\x2f\xc6\x3a\xd1"
+                            "\x68\xff\x73\x0a\xa1\x15\xac\x43"
+                            "\xda\x4e\xe5\x7c\x13\x87\x1e\xb5"
+                            "\x29\xc0\x57\xee\x62\xf9\x90\x04"
+                            "\x9b\x32\xc9\x3d\xd4\x6b\x02\x76"
+                            "\x0d\xa4\x18\xaf\x46\xdd\x51\xe8"
+                            "\x7f\x16\x8a\x21\xb8\x2c\xc3\x5a"
+                            "\xf1\x65\xfc\x93\x07\x9e\x35\xcc"
+                            "\x40\xd7\x6e\x05\x79\x10\xa7\x1b"
+                            "\xb2\x49\xe0\x54\xeb\x82\x19\x8d"
+                            "\x24\xbb\x2f\xc6\x5d\xf4\x68\xff"
+                            "\x96\x0a\xa1\x38\xcf\x43\xda\x71"
+                            "\x08\x7c\x13\xaa\x1e\xb5\x4c",
+               .psize     = 1023,
+               .digest    = "\x4d\x97\x23\xc8\xea\x7a\x7c\x15"
+                            "\xb8\xff\x97\x9c\xf5\x13\x4f\x31"
+                            "\xde\x67\xf7\x24\x73\xcd\x70\x1c"
+                            "\x03\x4a\xba\x8a\x87\x49\xfe\xdc"
+                            "\x75\x29\x62\x83\xae\x3f\x17\xab"
+                            "\xfd\x10\x4d\x8e\x17\x1c\x1f\xca",
+       }
 };
 
 /*
  * SHA512 test vectors from from NIST and kerneli
  */
-#define SHA512_TEST_VECTORS    4
+#define SHA512_TEST_VECTORS    6
 
 static struct hash_testvec sha512_tv_template[] = {
        {
+               .plaintext = "",
+               .psize  = 0,
+               .digest = "\xcf\x83\xe1\x35\x7e\xef\xb8\xbd"
+                         "\xf1\x54\x28\x50\xd6\x6d\x80\x07"
+                         "\xd6\x20\xe4\x05\x0b\x57\x15\xdc"
+                         "\x83\xf4\xa9\x21\xd3\x6c\xe9\xce"
+                         "\x47\xd0\xd1\x3c\x5d\x85\xf2\xb0"
+                         "\xff\x83\x18\xd2\x87\x7e\xec\x2f"
+                         "\x63\xb9\x31\xbd\x47\x41\x7a\x81"
+                         "\xa5\x38\x32\x7a\xf9\x27\xda\x3e",
+       }, {
                .plaintext = "abc",
                .psize  = 3,
                .digest = "\xdd\xaf\x35\xa1\x93\x61\x7a\xba"
@@ -687,7 +1282,145 @@ static struct hash_testvec sha512_tv_template[] = {
                          "\xed\xb4\x19\x87\x23\x28\x50\xc9",
                .np     = 4,
                .tap    = { 26, 26, 26, 26 }
-       },
+       }, {
+               .plaintext = "\x08\x9f\x13\xaa\x41\xd8\x4c\xe3"
+                            "\x7a\x11\x85\x1c\xb3\x27\xbe\x55"
+                            "\xec\x60\xf7\x8e\x02\x99\x30\xc7"
+                            "\x3b\xd2\x69\x00\x74\x0b\xa2\x16"
+                            "\xad\x44\xdb\x4f\xe6\x7d\x14\x88"
+                            "\x1f\xb6\x2a\xc1\x58\xef\x63\xfa"
+                            "\x91\x05\x9c\x33\xca\x3e\xd5\x6c"
+                            "\x03\x77\x0e\xa5\x19\xb0\x47\xde"
+                            "\x52\xe9\x80\x17\x8b\x22\xb9\x2d"
+                            "\xc4\x5b\xf2\x66\xfd\x94\x08\x9f"
+                            "\x36\xcd\x41\xd8\x6f\x06\x7a\x11"
+                            "\xa8\x1c\xb3\x4a\xe1\x55\xec\x83"
+                            "\x1a\x8e\x25\xbc\x30\xc7\x5e\xf5"
+                            "\x69\x00\x97\x0b\xa2\x39\xd0\x44"
+                            "\xdb\x72\x09\x7d\x14\xab\x1f\xb6"
+                            "\x4d\xe4\x58\xef\x86\x1d\x91\x28"
+                            "\xbf\x33\xca\x61\xf8\x6c\x03\x9a"
+                            "\x0e\xa5\x3c\xd3\x47\xde\x75\x0c"
+                            "\x80\x17\xae\x22\xb9\x50\xe7\x5b"
+                            "\xf2\x89\x20\x94\x2b\xc2\x36\xcd"
+                            "\x64\xfb\x6f\x06\x9d\x11\xa8\x3f"
+                            "\xd6\x4a\xe1\x78\x0f\x83\x1a\xb1"
+                            "\x25\xbc\x53\xea\x5e\xf5\x8c\x00"
+                            "\x97\x2e\xc5\x39\xd0\x67\xfe\x72"
+                            "\x09\xa0\x14\xab\x42\xd9\x4d\xe4"
+                            "\x7b\x12\x86\x1d\xb4\x28\xbf\x56"
+                            "\xed\x61\xf8\x8f\x03\x9a\x31\xc8"
+                            "\x3c\xd3\x6a\x01\x75\x0c\xa3\x17"
+                            "\xae\x45\xdc\x50\xe7\x7e\x15\x89"
+                            "\x20\xb7\x2b\xc2\x59\xf0\x64\xfb"
+                            "\x92\x06\x9d\x34\xcb\x3f\xd6\x6d"
+                            "\x04\x78\x0f\xa6\x1a\xb1\x48\xdf"
+                            "\x53\xea\x81\x18\x8c\x23\xba\x2e"
+                            "\xc5\x5c\xf3\x67\xfe\x95\x09\xa0"
+                            "\x37\xce\x42\xd9\x70\x07\x7b\x12"
+                            "\xa9\x1d\xb4\x4b\xe2\x56\xed\x84"
+                            "\x1b\x8f\x26\xbd\x31\xc8\x5f\xf6"
+                            "\x6a\x01\x98\x0c\xa3\x3a\xd1\x45"
+                            "\xdc\x73\x0a\x7e\x15\xac\x20\xb7"
+                            "\x4e\xe5\x59\xf0\x87\x1e\x92\x29"
+                            "\xc0\x34\xcb\x62\xf9\x6d\x04\x9b"
+                            "\x0f\xa6\x3d\xd4\x48\xdf\x76\x0d"
+                            "\x81\x18\xaf\x23\xba\x51\xe8\x5c"
+                            "\xf3\x8a\x21\x95\x2c\xc3\x37\xce"
+                            "\x65\xfc\x70\x07\x9e\x12\xa9\x40"
+                            "\xd7\x4b\xe2\x79\x10\x84\x1b\xb2"
+                            "\x26\xbd\x54\xeb\x5f\xf6\x8d\x01"
+                            "\x98\x2f\xc6\x3a\xd1\x68\xff\x73"
+                            "\x0a\xa1\x15\xac\x43\xda\x4e\xe5"
+                            "\x7c\x13\x87\x1e\xb5\x29\xc0\x57"
+                            "\xee\x62\xf9\x90\x04\x9b\x32\xc9"
+                            "\x3d\xd4\x6b\x02\x76\x0d\xa4\x18"
+                            "\xaf\x46\xdd\x51\xe8\x7f\x16\x8a"
+                            "\x21\xb8\x2c\xc3\x5a\xf1\x65\xfc"
+                            "\x93\x07\x9e\x35\xcc\x40\xd7\x6e"
+                            "\x05\x79\x10\xa7\x1b\xb2\x49\xe0"
+                            "\x54\xeb\x82\x19\x8d\x24\xbb\x2f"
+                            "\xc6\x5d\xf4\x68\xff\x96\x0a\xa1"
+                            "\x38\xcf\x43\xda\x71\x08\x7c\x13"
+                            "\xaa\x1e\xb5\x4c\xe3\x57\xee\x85"
+                            "\x1c\x90\x27\xbe\x32\xc9\x60\xf7"
+                            "\x6b\x02\x99\x0d\xa4\x3b\xd2\x46"
+                            "\xdd\x74\x0b\x7f\x16\xad\x21\xb8"
+                            "\x4f\xe6\x5a\xf1\x88\x1f\x93\x2a"
+                            "\xc1\x35\xcc\x63\xfa\x6e\x05\x9c"
+                            "\x10\xa7\x3e\xd5\x49\xe0\x77\x0e"
+                            "\x82\x19\xb0\x24\xbb\x52\xe9\x5d"
+                            "\xf4\x8b\x22\x96\x2d\xc4\x38\xcf"
+                            "\x66\xfd\x71\x08\x9f\x13\xaa\x41"
+                            "\xd8\x4c\xe3\x7a\x11\x85\x1c\xb3"
+                            "\x27\xbe\x55\xec\x60\xf7\x8e\x02"
+                            "\x99\x30\xc7\x3b\xd2\x69\x00\x74"
+                            "\x0b\xa2\x16\xad\x44\xdb\x4f\xe6"
+                            "\x7d\x14\x88\x1f\xb6\x2a\xc1\x58"
+                            "\xef\x63\xfa\x91\x05\x9c\x33\xca"
+                            "\x3e\xd5\x6c\x03\x77\x0e\xa5\x19"
+                            "\xb0\x47\xde\x52\xe9\x80\x17\x8b"
+                            "\x22\xb9\x2d\xc4\x5b\xf2\x66\xfd"
+                            "\x94\x08\x9f\x36\xcd\x41\xd8\x6f"
+                            "\x06\x7a\x11\xa8\x1c\xb3\x4a\xe1"
+                            "\x55\xec\x83\x1a\x8e\x25\xbc\x30"
+                            "\xc7\x5e\xf5\x69\x00\x97\x0b\xa2"
+                            "\x39\xd0\x44\xdb\x72\x09\x7d\x14"
+                            "\xab\x1f\xb6\x4d\xe4\x58\xef\x86"
+                            "\x1d\x91\x28\xbf\x33\xca\x61\xf8"
+                            "\x6c\x03\x9a\x0e\xa5\x3c\xd3\x47"
+                            "\xde\x75\x0c\x80\x17\xae\x22\xb9"
+                            "\x50\xe7\x5b\xf2\x89\x20\x94\x2b"
+                            "\xc2\x36\xcd\x64\xfb\x6f\x06\x9d"
+                            "\x11\xa8\x3f\xd6\x4a\xe1\x78\x0f"
+                            "\x83\x1a\xb1\x25\xbc\x53\xea\x5e"
+                            "\xf5\x8c\x00\x97\x2e\xc5\x39\xd0"
+                            "\x67\xfe\x72\x09\xa0\x14\xab\x42"
+                            "\xd9\x4d\xe4\x7b\x12\x86\x1d\xb4"
+                            "\x28\xbf\x56\xed\x61\xf8\x8f\x03"
+                            "\x9a\x31\xc8\x3c\xd3\x6a\x01\x75"
+                            "\x0c\xa3\x17\xae\x45\xdc\x50\xe7"
+                            "\x7e\x15\x89\x20\xb7\x2b\xc2\x59"
+                            "\xf0\x64\xfb\x92\x06\x9d\x34\xcb"
+                            "\x3f\xd6\x6d\x04\x78\x0f\xa6\x1a"
+                            "\xb1\x48\xdf\x53\xea\x81\x18\x8c"
+                            "\x23\xba\x2e\xc5\x5c\xf3\x67\xfe"
+                            "\x95\x09\xa0\x37\xce\x42\xd9\x70"
+                            "\x07\x7b\x12\xa9\x1d\xb4\x4b\xe2"
+                            "\x56\xed\x84\x1b\x8f\x26\xbd\x31"
+                            "\xc8\x5f\xf6\x6a\x01\x98\x0c\xa3"
+                            "\x3a\xd1\x45\xdc\x73\x0a\x7e\x15"
+                            "\xac\x20\xb7\x4e\xe5\x59\xf0\x87"
+                            "\x1e\x92\x29\xc0\x34\xcb\x62\xf9"
+                            "\x6d\x04\x9b\x0f\xa6\x3d\xd4\x48"
+                            "\xdf\x76\x0d\x81\x18\xaf\x23\xba"
+                            "\x51\xe8\x5c\xf3\x8a\x21\x95\x2c"
+                            "\xc3\x37\xce\x65\xfc\x70\x07\x9e"
+                            "\x12\xa9\x40\xd7\x4b\xe2\x79\x10"
+                            "\x84\x1b\xb2\x26\xbd\x54\xeb\x5f"
+                            "\xf6\x8d\x01\x98\x2f\xc6\x3a\xd1"
+                            "\x68\xff\x73\x0a\xa1\x15\xac\x43"
+                            "\xda\x4e\xe5\x7c\x13\x87\x1e\xb5"
+                            "\x29\xc0\x57\xee\x62\xf9\x90\x04"
+                            "\x9b\x32\xc9\x3d\xd4\x6b\x02\x76"
+                            "\x0d\xa4\x18\xaf\x46\xdd\x51\xe8"
+                            "\x7f\x16\x8a\x21\xb8\x2c\xc3\x5a"
+                            "\xf1\x65\xfc\x93\x07\x9e\x35\xcc"
+                            "\x40\xd7\x6e\x05\x79\x10\xa7\x1b"
+                            "\xb2\x49\xe0\x54\xeb\x82\x19\x8d"
+                            "\x24\xbb\x2f\xc6\x5d\xf4\x68\xff"
+                            "\x96\x0a\xa1\x38\xcf\x43\xda\x71"
+                            "\x08\x7c\x13\xaa\x1e\xb5\x4c",
+               .psize     = 1023,
+               .digest    = "\x76\xc9\xd4\x91\x7a\x5f\x0f\xaa"
+                            "\x13\x39\xf3\x01\x7a\xfa\xe5\x41"
+                            "\x5f\x0b\xf8\xeb\x32\xfc\xbf\xb0"
+                            "\xfa\x8c\xcd\x17\x83\xe2\xfa\xeb"
+                            "\x1c\x19\xde\xe2\x75\xdc\x34\x64"
+                            "\x5f\x35\x9c\x61\x2f\x10\xf9\xec"
+                            "\x59\xca\x9d\xcc\x25\x0c\x43\xba"
+                            "\x85\xa8\xf8\xfe\xb5\x24\xb2\xee",
+       }
 };
 
 
@@ -12823,11 +13556,11 @@ static struct cipher_testvec cast6_xts_dec_tv_template[] = {
 #define AES_CBC_DEC_TEST_VECTORS 5
 #define HMAC_MD5_ECB_CIPHER_NULL_ENC_TEST_VECTORS 2
 #define HMAC_MD5_ECB_CIPHER_NULL_DEC_TEST_VECTORS 2
-#define HMAC_SHA1_ECB_CIPHER_NULL_ENC_TEST_VECTORS 2
-#define HMAC_SHA1_ECB_CIPHER_NULL_DEC_TEST_VECTORS 2
-#define HMAC_SHA1_AES_CBC_ENC_TEST_VECTORS 7
-#define HMAC_SHA256_AES_CBC_ENC_TEST_VECTORS 7
-#define HMAC_SHA512_AES_CBC_ENC_TEST_VECTORS 7
+#define HMAC_SHA1_ECB_CIPHER_NULL_ENC_TEST_VEC 2
+#define HMAC_SHA1_ECB_CIPHER_NULL_DEC_TEST_VEC 2
+#define HMAC_SHA1_AES_CBC_ENC_TEST_VEC 7
+#define HMAC_SHA256_AES_CBC_ENC_TEST_VEC 7
+#define HMAC_SHA512_AES_CBC_ENC_TEST_VEC 7
 #define AES_LRW_ENC_TEST_VECTORS 8
 #define AES_LRW_DEC_TEST_VECTORS 8
 #define AES_XTS_ENC_TEST_VECTORS 5
@@ -12844,7 +13577,7 @@ static struct cipher_testvec cast6_xts_dec_tv_template[] = {
 #define AES_GCM_4106_DEC_TEST_VECTORS 7
 #define AES_GCM_4543_ENC_TEST_VECTORS 1
 #define AES_GCM_4543_DEC_TEST_VECTORS 2
-#define AES_CCM_ENC_TEST_VECTORS 7
+#define AES_CCM_ENC_TEST_VECTORS 8
 #define AES_CCM_DEC_TEST_VECTORS 7
 #define AES_CCM_4309_ENC_TEST_VECTORS 7
 #define AES_CCM_4309_DEC_TEST_VECTORS 10
@@ -13715,7 +14448,7 @@ static struct aead_testvec hmac_md5_ecb_cipher_null_dec_tv_template[] = {
        },
 };
 
-static struct aead_testvec hmac_sha1_aes_cbc_enc_tv_template[] = {
+static struct aead_testvec hmac_sha1_aes_cbc_enc_tv_temp[] = {
        { /* RFC 3602 Case 1 */
 #ifdef __LITTLE_ENDIAN
                .key    = "\x08\x00"            /* rta length */
@@ -13964,7 +14697,7 @@ static struct aead_testvec hmac_sha1_aes_cbc_enc_tv_template[] = {
        },
 };
 
-static struct aead_testvec hmac_sha1_ecb_cipher_null_enc_tv_template[] = {
+static struct aead_testvec hmac_sha1_ecb_cipher_null_enc_tv_temp[] = {
        { /* Input data from RFC 2410 Case 1 */
 #ifdef __LITTLE_ENDIAN
                .key    = "\x08\x00"            /* rta length */
@@ -14010,7 +14743,7 @@ static struct aead_testvec hmac_sha1_ecb_cipher_null_enc_tv_template[] = {
        },
 };
 
-static struct aead_testvec hmac_sha1_ecb_cipher_null_dec_tv_template[] = {
+static struct aead_testvec hmac_sha1_ecb_cipher_null_dec_tv_temp[] = {
        {
 #ifdef __LITTLE_ENDIAN
                .key    = "\x08\x00"            /* rta length */
@@ -14056,7 +14789,7 @@ static struct aead_testvec hmac_sha1_ecb_cipher_null_dec_tv_template[] = {
        },
 };
 
-static struct aead_testvec hmac_sha256_aes_cbc_enc_tv_template[] = {
+static struct aead_testvec hmac_sha256_aes_cbc_enc_tv_temp[] = {
        { /* RFC 3602 Case 1 */
 #ifdef __LITTLE_ENDIAN
                .key    = "\x08\x00"            /* rta length */
@@ -14319,7 +15052,7 @@ static struct aead_testvec hmac_sha256_aes_cbc_enc_tv_template[] = {
        },
 };
 
-static struct aead_testvec hmac_sha512_aes_cbc_enc_tv_template[] = {
+static struct aead_testvec hmac_sha512_aes_cbc_enc_tv_temp[] = {
        { /* RFC 3602 Case 1 */
 #ifdef __LITTLE_ENDIAN
                .key    = "\x08\x00"            /* rta length */
@@ -14638,6 +15371,652 @@ static struct aead_testvec hmac_sha512_aes_cbc_enc_tv_template[] = {
        },
 };
 
+#define HMAC_SHA1_DES_CBC_ENC_TEST_VEC 1
+
+static struct aead_testvec hmac_sha1_des_cbc_enc_tv_temp[] = {
+       { /*Generated with cryptopp*/
+#ifdef __LITTLE_ENDIAN
+               .key    = "\x08\x00"            /* rta length */
+                         "\x01\x00"            /* rta type */
+#else
+       .key    = "\x00\x08"            /* rta length */
+                         "\x00\x01"            /* rta type */
+#endif
+                         "\x00\x00\x00\x08"    /* enc key length */
+                         "\x11\x22\x33\x44\x55\x66\x77\x88"
+                 "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
+                         "\x22\x33\x44\x55"
+                         "\xE9\xC0\xFF\x2E\x76\x0B\x64\x24",
+               .klen   = 8 + 20 + 8,
+               .iv     = "\x7D\x33\x88\x93\x0F\x93\xB2\x42",
+               .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01",
+               .alen   = 8,
+               .input  = "\x6f\x54\x20\x6f\x61\x4d\x79\x6e"
+                         "\x53\x20\x63\x65\x65\x72\x73\x74"
+                         "\x54\x20\x6f\x6f\x4d\x20\x6e\x61"
+                         "\x20\x79\x65\x53\x72\x63\x74\x65"
+                         "\x20\x73\x6f\x54\x20\x6f\x61\x4d"
+                         "\x79\x6e\x53\x20\x63\x65\x65\x72"
+                         "\x73\x74\x54\x20\x6f\x6f\x4d\x20"
+                         "\x6e\x61\x20\x79\x65\x53\x72\x63"
+                         "\x74\x65\x20\x73\x6f\x54\x20\x6f"
+                         "\x61\x4d\x79\x6e\x53\x20\x63\x65"
+                         "\x65\x72\x73\x74\x54\x20\x6f\x6f"
+                         "\x4d\x20\x6e\x61\x20\x79\x65\x53"
+                         "\x72\x63\x74\x65\x20\x73\x6f\x54"
+                         "\x20\x6f\x61\x4d\x79\x6e\x53\x20"
+                         "\x63\x65\x65\x72\x73\x74\x54\x20"
+                         "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79",
+               .ilen   = 128,
+               .result = "\x70\xd6\xde\x64\x87\x17\xf1\xe8"
+                         "\x54\x31\x85\x37\xed\x6b\x01\x8d"
+                         "\xe3\xcc\xe0\x1d\x5e\xf3\xfe\xf1"
+                         "\x41\xaa\x33\x91\xa7\x7d\x99\x88"
+                         "\x4d\x85\x6e\x2f\xa3\x69\xf5\x82"
+                         "\x3a\x6f\x25\xcb\x7d\x58\x1f\x9b"
+                         "\xaa\x9c\x11\xd5\x76\x67\xce\xde"
+                         "\x56\xd7\x5a\x80\x69\xea\x3a\x02"
+                         "\xf0\xc7\x7c\xe3\xcb\x40\xe5\x52"
+                         "\xd1\x10\x92\x78\x0b\x8e\x5b\xf1"
+                         "\xe3\x26\x1f\xe1\x15\x41\xc7\xba"
+                         "\x99\xdb\x08\x51\x1c\xd3\x01\xf4"
+                         "\x87\x47\x39\xb8\xd2\xdd\xbd\xfb"
+                         "\x66\x13\xdf\x1c\x01\x44\xf0\x7a"
+                         "\x1a\x6b\x13\xf5\xd5\x0b\xb8\xba"
+                         "\x53\xba\xe1\x76\xe3\x82\x07\x86"
+                         "\x95\x16\x20\x09\xf5\x95\x19\xfd"
+                         "\x3c\xc7\xe0\x42\xc0\x14\x69\xfa"
+                         "\x5c\x44\xa9\x37",
+                         .rlen = 128 + 20,
+       },
+};
+
+#define HMAC_SHA224_DES_CBC_ENC_TEST_VEC       1
+
+static struct aead_testvec hmac_sha224_des_cbc_enc_tv_temp[] = {
+       { /*Generated with cryptopp*/
+#ifdef __LITTLE_ENDIAN
+               .key    = "\x08\x00"            /* rta length */
+                         "\x01\x00"            /* rta type */
+#else
+               .key    = "\x00\x08"            /* rta length */
+                         "\x00\x01"            /* rta type */
+#endif
+                         "\x00\x00\x00\x08"    /* enc key length */
+                         "\x11\x22\x33\x44\x55\x66\x77\x88"
+                         "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
+                 "\x22\x33\x44\x55\x66\x77\x88\x99"
+                         "\xE9\xC0\xFF\x2E\x76\x0B\x64\x24",
+               .klen   = 8 + 24 + 8,
+               .iv     = "\x7D\x33\x88\x93\x0F\x93\xB2\x42",
+               .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01",
+               .alen   = 8,
+               .input  = "\x6f\x54\x20\x6f\x61\x4d\x79\x6e"
+                         "\x53\x20\x63\x65\x65\x72\x73\x74"
+                         "\x54\x20\x6f\x6f\x4d\x20\x6e\x61"
+                         "\x20\x79\x65\x53\x72\x63\x74\x65"
+                         "\x20\x73\x6f\x54\x20\x6f\x61\x4d"
+                         "\x79\x6e\x53\x20\x63\x65\x65\x72"
+                         "\x73\x74\x54\x20\x6f\x6f\x4d\x20"
+                         "\x6e\x61\x20\x79\x65\x53\x72\x63"
+                         "\x74\x65\x20\x73\x6f\x54\x20\x6f"
+                         "\x61\x4d\x79\x6e\x53\x20\x63\x65"
+                         "\x65\x72\x73\x74\x54\x20\x6f\x6f"
+                         "\x4d\x20\x6e\x61\x20\x79\x65\x53"
+                         "\x72\x63\x74\x65\x20\x73\x6f\x54"
+                         "\x20\x6f\x61\x4d\x79\x6e\x53\x20"
+                         "\x63\x65\x65\x72\x73\x74\x54\x20"
+                         "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79",
+               .ilen   = 128,
+               .result = "\x70\xd6\xde\x64\x87\x17\xf1\xe8"
+                         "\x54\x31\x85\x37\xed\x6b\x01\x8d"
+                         "\xe3\xcc\xe0\x1d\x5e\xf3\xfe\xf1"
+                         "\x41\xaa\x33\x91\xa7\x7d\x99\x88"
+                         "\x4d\x85\x6e\x2f\xa3\x69\xf5\x82"
+                         "\x3a\x6f\x25\xcb\x7d\x58\x1f\x9b"
+                         "\xaa\x9c\x11\xd5\x76\x67\xce\xde"
+                         "\x56\xd7\x5a\x80\x69\xea\x3a\x02"
+                         "\xf0\xc7\x7c\xe3\xcb\x40\xe5\x52"
+                         "\xd1\x10\x92\x78\x0b\x8e\x5b\xf1"
+                         "\xe3\x26\x1f\xe1\x15\x41\xc7\xba"
+                         "\x99\xdb\x08\x51\x1c\xd3\x01\xf4"
+                 "\x87\x47\x39\xb8\xd2\xdd\xbd\xfb"
+                         "\x66\x13\xdf\x1c\x01\x44\xf0\x7a"
+                         "\x1a\x6b\x13\xf5\xd5\x0b\xb8\xba"
+                         "\x53\xba\xe1\x76\xe3\x82\x07\x86"
+                         "\x9c\x2d\x7e\xee\x20\x34\x55\x0a"
+                         "\xce\xb5\x4e\x64\x53\xe7\xbf\x91"
+                         "\xab\xd4\xd9\xda\xc9\x12\xae\xf7",
+               .rlen   = 128 + 24,
+       },
+};
+
+#define HMAC_SHA256_DES_CBC_ENC_TEST_VEC       1
+
+static struct aead_testvec hmac_sha256_des_cbc_enc_tv_temp[] = {
+       { /*Generated with cryptopp*/
+#ifdef __LITTLE_ENDIAN
+               .key    = "\x08\x00"            /* rta length */
+                         "\x01\x00"            /* rta type */
+#else
+               .key    = "\x00\x08"            /* rta length */
+                         "\x00\x01"            /* rta type */
+#endif
+                         "\x00\x00\x00\x08"    /* enc key length */
+                         "\x11\x22\x33\x44\x55\x66\x77\x88"
+                         "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
+                         "\x22\x33\x44\x55\x66\x77\x88\x99"
+                         "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
+                         "\xE9\xC0\xFF\x2E\x76\x0B\x64\x24",
+               .klen   = 8 + 32 + 8,
+               .iv     = "\x7D\x33\x88\x93\x0F\x93\xB2\x42",
+               .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01",
+               .alen   = 8,
+               .input  = "\x6f\x54\x20\x6f\x61\x4d\x79\x6e"
+                         "\x53\x20\x63\x65\x65\x72\x73\x74"
+                         "\x54\x20\x6f\x6f\x4d\x20\x6e\x61"
+                         "\x20\x79\x65\x53\x72\x63\x74\x65"
+                         "\x20\x73\x6f\x54\x20\x6f\x61\x4d"
+                         "\x79\x6e\x53\x20\x63\x65\x65\x72"
+                         "\x73\x74\x54\x20\x6f\x6f\x4d\x20"
+                         "\x6e\x61\x20\x79\x65\x53\x72\x63"
+                         "\x74\x65\x20\x73\x6f\x54\x20\x6f"
+                         "\x61\x4d\x79\x6e\x53\x20\x63\x65"
+                         "\x65\x72\x73\x74\x54\x20\x6f\x6f"
+                         "\x4d\x20\x6e\x61\x20\x79\x65\x53"
+                         "\x72\x63\x74\x65\x20\x73\x6f\x54"
+                         "\x20\x6f\x61\x4d\x79\x6e\x53\x20"
+                         "\x63\x65\x65\x72\x73\x74\x54\x20"
+                         "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79",
+               .ilen   = 128,
+               .result = "\x70\xd6\xde\x64\x87\x17\xf1\xe8"
+                         "\x54\x31\x85\x37\xed\x6b\x01\x8d"
+                         "\xe3\xcc\xe0\x1d\x5e\xf3\xfe\xf1"
+                         "\x41\xaa\x33\x91\xa7\x7d\x99\x88"
+                         "\x4d\x85\x6e\x2f\xa3\x69\xf5\x82"
+                         "\x3a\x6f\x25\xcb\x7d\x58\x1f\x9b"
+                         "\xaa\x9c\x11\xd5\x76\x67\xce\xde"
+                         "\x56\xd7\x5a\x80\x69\xea\x3a\x02"
+                         "\xf0\xc7\x7c\xe3\xcb\x40\xe5\x52"
+                         "\xd1\x10\x92\x78\x0b\x8e\x5b\xf1"
+                         "\xe3\x26\x1f\xe1\x15\x41\xc7\xba"
+                 "\x99\xdb\x08\x51\x1c\xd3\x01\xf4"
+                         "\x87\x47\x39\xb8\xd2\xdd\xbd\xfb"
+                 "\x66\x13\xdf\x1c\x01\x44\xf0\x7a"
+                 "\x1a\x6b\x13\xf5\xd5\x0b\xb8\xba"
+                         "\x53\xba\xe1\x76\xe3\x82\x07\x86"
+                         "\xc6\x58\xa1\x60\x70\x91\x39\x36"
+                         "\x50\xf6\x5d\xab\x4b\x51\x4e\x5e"
+                         "\xde\x63\xde\x76\x52\xde\x9f\xba"
+                         "\x90\xcf\x15\xf2\xbb\x6e\x84\x00",
+               .rlen   = 128 + 32,
+       },
+};
+
+#define HMAC_SHA384_DES_CBC_ENC_TEST_VEC       1
+
+static struct aead_testvec hmac_sha384_des_cbc_enc_tv_temp[] = {
+       { /*Generated with cryptopp*/
+#ifdef __LITTLE_ENDIAN
+               .key    = "\x08\x00"            /* rta length */
+                         "\x01\x00"            /* rta type */
+#else
+               .key    = "\x00\x08"            /* rta length */
+                         "\x00\x01"            /* rta type */
+#endif
+                         "\x00\x00\x00\x08"    /* enc key length */
+                         "\x11\x22\x33\x44\x55\x66\x77\x88"
+                         "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
+                         "\x22\x33\x44\x55\x66\x77\x88\x99"
+                         "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
+                         "\x33\x44\x55\x66\x77\x88\x99\xaa"
+                         "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
+                         "\xE9\xC0\xFF\x2E\x76\x0B\x64\x24",
+               .klen   = 8 + 48 + 8,
+               .iv     = "\x7D\x33\x88\x93\x0F\x93\xB2\x42",
+               .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01",
+               .alen   = 8,
+               .input  = "\x6f\x54\x20\x6f\x61\x4d\x79\x6e"
+                         "\x53\x20\x63\x65\x65\x72\x73\x74"
+                         "\x54\x20\x6f\x6f\x4d\x20\x6e\x61"
+                         "\x20\x79\x65\x53\x72\x63\x74\x65"
+                         "\x20\x73\x6f\x54\x20\x6f\x61\x4d"
+                         "\x79\x6e\x53\x20\x63\x65\x65\x72"
+                         "\x73\x74\x54\x20\x6f\x6f\x4d\x20"
+                         "\x6e\x61\x20\x79\x65\x53\x72\x63"
+                         "\x74\x65\x20\x73\x6f\x54\x20\x6f"
+                         "\x61\x4d\x79\x6e\x53\x20\x63\x65"
+                         "\x65\x72\x73\x74\x54\x20\x6f\x6f"
+                         "\x4d\x20\x6e\x61\x20\x79\x65\x53"
+                         "\x72\x63\x74\x65\x20\x73\x6f\x54"
+                         "\x20\x6f\x61\x4d\x79\x6e\x53\x20"
+                         "\x63\x65\x65\x72\x73\x74\x54\x20"
+                         "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79",
+               .ilen   = 128,
+               .result = "\x70\xd6\xde\x64\x87\x17\xf1\xe8"
+                         "\x54\x31\x85\x37\xed\x6b\x01\x8d"
+                         "\xe3\xcc\xe0\x1d\x5e\xf3\xfe\xf1"
+                         "\x41\xaa\x33\x91\xa7\x7d\x99\x88"
+                         "\x4d\x85\x6e\x2f\xa3\x69\xf5\x82"
+                         "\x3a\x6f\x25\xcb\x7d\x58\x1f\x9b"
+                         "\xaa\x9c\x11\xd5\x76\x67\xce\xde"
+                         "\x56\xd7\x5a\x80\x69\xea\x3a\x02"
+                         "\xf0\xc7\x7c\xe3\xcb\x40\xe5\x52"
+                         "\xd1\x10\x92\x78\x0b\x8e\x5b\xf1"
+                         "\xe3\x26\x1f\xe1\x15\x41\xc7\xba"
+                         "\x99\xdb\x08\x51\x1c\xd3\x01\xf4"
+                         "\x87\x47\x39\xb8\xd2\xdd\xbd\xfb"
+                         "\x66\x13\xdf\x1c\x01\x44\xf0\x7a"
+                         "\x1a\x6b\x13\xf5\xd5\x0b\xb8\xba"
+                         "\x53\xba\xe1\x76\xe3\x82\x07\x86"
+                         "\xa8\x8e\x9c\x74\x8c\x2b\x99\xa0"
+                         "\xc8\x8c\xef\x25\x07\x83\x11\x3a"
+                         "\x31\x8d\xbe\x3b\x6a\xd7\x96\xfe"
+                         "\x5e\x67\xb5\x74\xe7\xe7\x85\x61"
+                         "\x6a\x95\x26\x75\xcc\x53\x89\xf3"
+                         "\x74\xc9\x2a\x76\x20\xa2\x64\x62",
+               .rlen   = 128 + 48,
+       },
+};
+
+#define HMAC_SHA512_DES_CBC_ENC_TEST_VEC       1
+
+static struct aead_testvec hmac_sha512_des_cbc_enc_tv_temp[] = {
+       { /*Generated with cryptopp*/
+#ifdef __LITTLE_ENDIAN
+               .key    = "\x08\x00"            /* rta length */
+                 "\x01\x00"            /* rta type */
+#else
+               .key    = "\x00\x08"            /* rta length */
+                         "\x00\x01"            /* rta type */
+#endif
+                         "\x00\x00\x00\x08"    /* enc key length */
+                 "\x11\x22\x33\x44\x55\x66\x77\x88"
+                         "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
+                         "\x22\x33\x44\x55\x66\x77\x88\x99"
+                         "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
+                         "\x33\x44\x55\x66\x77\x88\x99\xaa"
+                         "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
+                         "\x44\x55\x66\x77\x88\x99\xaa\xbb"
+                         "\xcc\xdd\xee\xff\x11\x22\x33\x44"
+                         "\xE9\xC0\xFF\x2E\x76\x0B\x64\x24",
+               .klen   = 8 + 64 + 8,
+               .iv     = "\x7D\x33\x88\x93\x0F\x93\xB2\x42",
+               .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01",
+               .alen   = 8,
+               .input  = "\x6f\x54\x20\x6f\x61\x4d\x79\x6e"
+                         "\x53\x20\x63\x65\x65\x72\x73\x74"
+                         "\x54\x20\x6f\x6f\x4d\x20\x6e\x61"
+                         "\x20\x79\x65\x53\x72\x63\x74\x65"
+                         "\x20\x73\x6f\x54\x20\x6f\x61\x4d"
+                         "\x79\x6e\x53\x20\x63\x65\x65\x72"
+                         "\x73\x74\x54\x20\x6f\x6f\x4d\x20"
+                         "\x6e\x61\x20\x79\x65\x53\x72\x63"
+                         "\x74\x65\x20\x73\x6f\x54\x20\x6f"
+                         "\x61\x4d\x79\x6e\x53\x20\x63\x65"
+                         "\x65\x72\x73\x74\x54\x20\x6f\x6f"
+                         "\x4d\x20\x6e\x61\x20\x79\x65\x53"
+                         "\x72\x63\x74\x65\x20\x73\x6f\x54"
+                         "\x20\x6f\x61\x4d\x79\x6e\x53\x20"
+                         "\x63\x65\x65\x72\x73\x74\x54\x20"
+                         "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79",
+               .ilen   = 128,
+               .result = "\x70\xd6\xde\x64\x87\x17\xf1\xe8"
+                         "\x54\x31\x85\x37\xed\x6b\x01\x8d"
+                         "\xe3\xcc\xe0\x1d\x5e\xf3\xfe\xf1"
+                         "\x41\xaa\x33\x91\xa7\x7d\x99\x88"
+                         "\x4d\x85\x6e\x2f\xa3\x69\xf5\x82"
+                         "\x3a\x6f\x25\xcb\x7d\x58\x1f\x9b"
+                         "\xaa\x9c\x11\xd5\x76\x67\xce\xde"
+                 "\x56\xd7\x5a\x80\x69\xea\x3a\x02"
+                         "\xf0\xc7\x7c\xe3\xcb\x40\xe5\x52"
+                 "\xd1\x10\x92\x78\x0b\x8e\x5b\xf1"
+                         "\xe3\x26\x1f\xe1\x15\x41\xc7\xba"
+                         "\x99\xdb\x08\x51\x1c\xd3\x01\xf4"
+                         "\x87\x47\x39\xb8\xd2\xdd\xbd\xfb"
+                         "\x66\x13\xdf\x1c\x01\x44\xf0\x7a"
+                 "\x1a\x6b\x13\xf5\xd5\x0b\xb8\xba"
+                         "\x53\xba\xe1\x76\xe3\x82\x07\x86"
+                         "\xc6\x2c\x73\x88\xb0\x9d\x5f\x3e"
+                         "\x5b\x78\xca\x0e\xab\x8a\xa3\xbb"
+                         "\xd9\x1d\xc3\xe3\x05\xac\x76\xfb"
+                         "\x58\x83\xda\x67\xfb\x21\x24\xa2"
+                         "\xb1\xa7\xd7\x66\xa6\x8d\xa6\x93"
+                         "\x97\xe2\xe3\xb8\xaa\x48\x85\xee"
+                         "\x8c\xf6\x07\x95\x1f\xa6\x6c\x96"
+                         "\x99\xc7\x5c\x8d\xd8\xb5\x68\x7b",
+               .rlen   = 128 + 64,
+       },
+};
+
+#define HMAC_SHA1_DES3_EDE_CBC_ENC_TEST_VEC    1
+
+static struct aead_testvec hmac_sha1_des3_ede_cbc_enc_tv_temp[] = {
+       { /*Generated with cryptopp*/
+#ifdef __LITTLE_ENDIAN
+               .key    = "\x08\x00"            /* rta length */
+                         "\x01\x00"            /* rta type */
+#else
+               .key    = "\x00\x08"            /* rta length */
+                         "\x00\x01"            /* rta type */
+#endif
+                         "\x00\x00\x00\x18"    /* enc key length */
+                         "\x11\x22\x33\x44\x55\x66\x77\x88"
+                         "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
+                         "\x22\x33\x44\x55"
+                 "\xE9\xC0\xFF\x2E\x76\x0B\x64\x24"
+                         "\x44\x4D\x99\x5A\x12\xD6\x40\xC0"
+                         "\xEA\xC2\x84\xE8\x14\x95\xDB\xE8",
+               .klen   = 8 + 20 + 24,
+               .iv     = "\x7D\x33\x88\x93\x0F\x93\xB2\x42",
+               .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01",
+               .alen   = 8,
+               .input  = "\x6f\x54\x20\x6f\x61\x4d\x79\x6e"
+                         "\x53\x20\x63\x65\x65\x72\x73\x74"
+                 "\x54\x20\x6f\x6f\x4d\x20\x6e\x61"
+                         "\x20\x79\x65\x53\x72\x63\x74\x65"
+                         "\x20\x73\x6f\x54\x20\x6f\x61\x4d"
+                         "\x79\x6e\x53\x20\x63\x65\x65\x72"
+                         "\x73\x74\x54\x20\x6f\x6f\x4d\x20"
+                         "\x6e\x61\x20\x79\x65\x53\x72\x63"
+                         "\x74\x65\x20\x73\x6f\x54\x20\x6f"
+                         "\x61\x4d\x79\x6e\x53\x20\x63\x65"
+                         "\x65\x72\x73\x74\x54\x20\x6f\x6f"
+                         "\x4d\x20\x6e\x61\x20\x79\x65\x53"
+                         "\x72\x63\x74\x65\x20\x73\x6f\x54"
+                         "\x20\x6f\x61\x4d\x79\x6e\x53\x20"
+                         "\x63\x65\x65\x72\x73\x74\x54\x20"
+                         "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79",
+               .ilen   = 128,
+               .result = "\x0e\x2d\xb6\x97\x3c\x56\x33\xf4"
+                         "\x67\x17\x21\xc7\x6e\x8a\xd5\x49"
+                 "\x74\xb3\x49\x05\xc5\x1c\xd0\xed"
+                 "\x12\x56\x5c\x53\x96\xb6\x00\x7d"
+                 "\x90\x48\xfc\xf5\x8d\x29\x39\xcc"
+                         "\x8a\xd5\x35\x18\x36\x23\x4e\xd7"
+                         "\x76\xd1\xda\x0c\x94\x67\xbb\x04"
+                         "\x8b\xf2\x03\x6c\xa8\xcf\xb6\xea"
+                 "\x22\x64\x47\xaa\x8f\x75\x13\xbf"
+                         "\x9f\xc2\xc3\xf0\xc9\x56\xc5\x7a"
+                         "\x71\x63\x2e\x89\x7b\x1e\x12\xca"
+                         "\xe2\x5f\xaf\xd8\xa4\xf8\xc9\x7a"
+                         "\xd6\xf9\x21\x31\x62\x44\x45\xa6"
+                         "\xd6\xbc\x5a\xd3\x2d\x54\x43\xcc"
+                         "\x9d\xde\xa5\x70\xe9\x42\x45\x8a"
+                         "\x6b\xfa\xb1\x91\x13\xb0\xd9\x19"
+                         "\x67\x6d\xb1\xf5\xb8\x10\xdc\xc6"
+                         "\x75\x86\x96\x6b\xb1\xc5\xe4\xcf"
+                         "\xd1\x60\x91\xb3",
+                         .rlen = 128 + 20,
+       },
+};
+
+#define HMAC_SHA224_DES3_EDE_CBC_ENC_TEST_VEC  1
+
+static struct aead_testvec hmac_sha224_des3_ede_cbc_enc_tv_temp[] = {
+       { /*Generated with cryptopp*/
+#ifdef __LITTLE_ENDIAN
+               .key    = "\x08\x00"            /* rta length */
+                         "\x01\x00"            /* rta type */
+#else
+               .key    = "\x00\x08"            /* rta length */
+                         "\x00\x01"            /* rta type */
+#endif
+                         "\x00\x00\x00\x18"    /* enc key length */
+                         "\x11\x22\x33\x44\x55\x66\x77\x88"
+                         "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
+                         "\x22\x33\x44\x55\x66\x77\x88\x99"
+                         "\xE9\xC0\xFF\x2E\x76\x0B\x64\x24"
+                         "\x44\x4D\x99\x5A\x12\xD6\x40\xC0"
+                         "\xEA\xC2\x84\xE8\x14\x95\xDB\xE8",
+               .klen   = 8 + 24 + 24,
+               .iv     = "\x7D\x33\x88\x93\x0F\x93\xB2\x42",
+               .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01",
+               .alen   = 8,
+               .input  = "\x6f\x54\x20\x6f\x61\x4d\x79\x6e"
+                         "\x53\x20\x63\x65\x65\x72\x73\x74"
+                         "\x54\x20\x6f\x6f\x4d\x20\x6e\x61"
+                         "\x20\x79\x65\x53\x72\x63\x74\x65"
+                         "\x20\x73\x6f\x54\x20\x6f\x61\x4d"
+                         "\x79\x6e\x53\x20\x63\x65\x65\x72"
+                         "\x73\x74\x54\x20\x6f\x6f\x4d\x20"
+                         "\x6e\x61\x20\x79\x65\x53\x72\x63"
+                         "\x74\x65\x20\x73\x6f\x54\x20\x6f"
+                         "\x61\x4d\x79\x6e\x53\x20\x63\x65"
+                         "\x65\x72\x73\x74\x54\x20\x6f\x6f"
+                         "\x4d\x20\x6e\x61\x20\x79\x65\x53"
+                 "\x72\x63\x74\x65\x20\x73\x6f\x54"
+                         "\x20\x6f\x61\x4d\x79\x6e\x53\x20"
+                         "\x63\x65\x65\x72\x73\x74\x54\x20"
+                         "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79",
+               .ilen   = 128,
+               .result = "\x0e\x2d\xb6\x97\x3c\x56\x33\xf4"
+                 "\x67\x17\x21\xc7\x6e\x8a\xd5\x49"
+                         "\x74\xb3\x49\x05\xc5\x1c\xd0\xed"
+                         "\x12\x56\x5c\x53\x96\xb6\x00\x7d"
+                         "\x90\x48\xfc\xf5\x8d\x29\x39\xcc"
+                         "\x8a\xd5\x35\x18\x36\x23\x4e\xd7"
+                         "\x76\xd1\xda\x0c\x94\x67\xbb\x04"
+                 "\x8b\xf2\x03\x6c\xa8\xcf\xb6\xea"
+                         "\x22\x64\x47\xaa\x8f\x75\x13\xbf"
+                         "\x9f\xc2\xc3\xf0\xc9\x56\xc5\x7a"
+                         "\x71\x63\x2e\x89\x7b\x1e\x12\xca"
+                         "\xe2\x5f\xaf\xd8\xa4\xf8\xc9\x7a"
+                         "\xd6\xf9\x21\x31\x62\x44\x45\xa6"
+                 "\xd6\xbc\x5a\xd3\x2d\x54\x43\xcc"
+                         "\x9d\xde\xa5\x70\xe9\x42\x45\x8a"
+                 "\x6b\xfa\xb1\x91\x13\xb0\xd9\x19"
+                         "\x15\x24\x7f\x5a\x45\x4a\x66\xce"
+                         "\x2b\x0b\x93\x99\x2f\x9d\x0c\x6c"
+                         "\x56\x1f\xe1\xa6\x41\xb2\x4c\xd0",
+                         .rlen = 128 + 24,
+       },
+};
+
+#define HMAC_SHA256_DES3_EDE_CBC_ENC_TEST_VEC  1
+
+static struct aead_testvec hmac_sha256_des3_ede_cbc_enc_tv_temp[] = {
+       { /*Generated with cryptopp*/
+#ifdef __LITTLE_ENDIAN
+               .key    = "\x08\x00"            /* rta length */
+                         "\x01\x00"            /* rta type */
+#else
+               .key    = "\x00\x08"            /* rta length */
+                         "\x00\x01"            /* rta type */
+#endif
+                         "\x00\x00\x00\x18"    /* enc key length */
+                         "\x11\x22\x33\x44\x55\x66\x77\x88"
+                         "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
+                         "\x22\x33\x44\x55\x66\x77\x88\x99"
+                         "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
+                         "\xE9\xC0\xFF\x2E\x76\x0B\x64\x24"
+                         "\x44\x4D\x99\x5A\x12\xD6\x40\xC0"
+                         "\xEA\xC2\x84\xE8\x14\x95\xDB\xE8",
+               .klen   = 8 + 32 + 24,
+               .iv     = "\x7D\x33\x88\x93\x0F\x93\xB2\x42",
+               .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01",
+               .alen   = 8,
+               .input  = "\x6f\x54\x20\x6f\x61\x4d\x79\x6e"
+                         "\x53\x20\x63\x65\x65\x72\x73\x74"
+                         "\x54\x20\x6f\x6f\x4d\x20\x6e\x61"
+                         "\x20\x79\x65\x53\x72\x63\x74\x65"
+                         "\x20\x73\x6f\x54\x20\x6f\x61\x4d"
+                         "\x79\x6e\x53\x20\x63\x65\x65\x72"
+                         "\x73\x74\x54\x20\x6f\x6f\x4d\x20"
+                         "\x6e\x61\x20\x79\x65\x53\x72\x63"
+                         "\x74\x65\x20\x73\x6f\x54\x20\x6f"
+                         "\x61\x4d\x79\x6e\x53\x20\x63\x65"
+                         "\x65\x72\x73\x74\x54\x20\x6f\x6f"
+                         "\x4d\x20\x6e\x61\x20\x79\x65\x53"
+                         "\x72\x63\x74\x65\x20\x73\x6f\x54"
+                         "\x20\x6f\x61\x4d\x79\x6e\x53\x20"
+                         "\x63\x65\x65\x72\x73\x74\x54\x20"
+                         "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79",
+               .ilen   = 128,
+               .result = "\x0e\x2d\xb6\x97\x3c\x56\x33\xf4"
+                         "\x67\x17\x21\xc7\x6e\x8a\xd5\x49"
+                         "\x74\xb3\x49\x05\xc5\x1c\xd0\xed"
+                         "\x12\x56\x5c\x53\x96\xb6\x00\x7d"
+                         "\x90\x48\xfc\xf5\x8d\x29\x39\xcc"
+                         "\x8a\xd5\x35\x18\x36\x23\x4e\xd7"
+                         "\x76\xd1\xda\x0c\x94\x67\xbb\x04"
+                         "\x8b\xf2\x03\x6c\xa8\xcf\xb6\xea"
+                         "\x22\x64\x47\xaa\x8f\x75\x13\xbf"
+                         "\x9f\xc2\xc3\xf0\xc9\x56\xc5\x7a"
+                         "\x71\x63\x2e\x89\x7b\x1e\x12\xca"
+                         "\xe2\x5f\xaf\xd8\xa4\xf8\xc9\x7a"
+                         "\xd6\xf9\x21\x31\x62\x44\x45\xa6"
+                         "\xd6\xbc\x5a\xd3\x2d\x54\x43\xcc"
+                         "\x9d\xde\xa5\x70\xe9\x42\x45\x8a"
+                         "\x6b\xfa\xb1\x91\x13\xb0\xd9\x19"
+                         "\x73\xb0\xea\x9f\xe8\x18\x80\xd6"
+                         "\x56\x38\x44\xc0\xdb\xe3\x4f\x71"
+                         "\xf7\xce\xd1\xd3\xf8\xbd\x3e\x4f"
+                         "\xca\x43\x95\xdf\x80\x61\x81\xa9",
+               .rlen   = 128 + 32,
+       },
+};
+
+#define HMAC_SHA384_DES3_EDE_CBC_ENC_TEST_VEC  1
+
+static struct aead_testvec hmac_sha384_des3_ede_cbc_enc_tv_temp[] = {
+       { /*Generated with cryptopp*/
+#ifdef __LITTLE_ENDIAN
+               .key    = "\x08\x00"            /* rta length */
+                         "\x01\x00"            /* rta type */
+#else
+               .key    = "\x00\x08"            /* rta length */
+                         "\x00\x01"            /* rta type */
+#endif
+                         "\x00\x00\x00\x18"    /* enc key length */
+                         "\x11\x22\x33\x44\x55\x66\x77\x88"
+                         "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
+                         "\x22\x33\x44\x55\x66\x77\x88\x99"
+                         "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
+                         "\x33\x44\x55\x66\x77\x88\x99\xaa"
+                         "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
+                         "\xE9\xC0\xFF\x2E\x76\x0B\x64\x24"
+                         "\x44\x4D\x99\x5A\x12\xD6\x40\xC0"
+                         "\xEA\xC2\x84\xE8\x14\x95\xDB\xE8",
+               .klen   = 8 + 48 + 24,
+               .iv     = "\x7D\x33\x88\x93\x0F\x93\xB2\x42",
+       .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01",
+               .alen   = 8,
+               .input  = "\x6f\x54\x20\x6f\x61\x4d\x79\x6e"
+                         "\x53\x20\x63\x65\x65\x72\x73\x74"
+                         "\x54\x20\x6f\x6f\x4d\x20\x6e\x61"
+                         "\x20\x79\x65\x53\x72\x63\x74\x65"
+                         "\x20\x73\x6f\x54\x20\x6f\x61\x4d"
+                         "\x79\x6e\x53\x20\x63\x65\x65\x72"
+                         "\x73\x74\x54\x20\x6f\x6f\x4d\x20"
+                         "\x6e\x61\x20\x79\x65\x53\x72\x63"
+                         "\x74\x65\x20\x73\x6f\x54\x20\x6f"
+                         "\x61\x4d\x79\x6e\x53\x20\x63\x65"
+                         "\x65\x72\x73\x74\x54\x20\x6f\x6f"
+                         "\x4d\x20\x6e\x61\x20\x79\x65\x53"
+                         "\x72\x63\x74\x65\x20\x73\x6f\x54"
+                         "\x20\x6f\x61\x4d\x79\x6e\x53\x20"
+                         "\x63\x65\x65\x72\x73\x74\x54\x20"
+                         "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79",
+               .ilen   = 128,
+               .result = "\x0e\x2d\xb6\x97\x3c\x56\x33\xf4"
+                         "\x67\x17\x21\xc7\x6e\x8a\xd5\x49"
+                         "\x74\xb3\x49\x05\xc5\x1c\xd0\xed"
+                         "\x12\x56\x5c\x53\x96\xb6\x00\x7d"
+                         "\x90\x48\xfc\xf5\x8d\x29\x39\xcc"
+                         "\x8a\xd5\x35\x18\x36\x23\x4e\xd7"
+                         "\x76\xd1\xda\x0c\x94\x67\xbb\x04"
+                         "\x8b\xf2\x03\x6c\xa8\xcf\xb6\xea"
+                         "\x22\x64\x47\xaa\x8f\x75\x13\xbf"
+                         "\x9f\xc2\xc3\xf0\xc9\x56\xc5\x7a"
+                         "\x71\x63\x2e\x89\x7b\x1e\x12\xca"
+                         "\xe2\x5f\xaf\xd8\xa4\xf8\xc9\x7a"
+                         "\xd6\xf9\x21\x31\x62\x44\x45\xa6"
+                         "\xd6\xbc\x5a\xd3\x2d\x54\x43\xcc"
+                         "\x9d\xde\xa5\x70\xe9\x42\x45\x8a"
+                         "\x6b\xfa\xb1\x91\x13\xb0\xd9\x19"
+                         "\x6d\x77\xfc\x80\x9d\x8a\x9c\xb7"
+                 "\x70\xe7\x93\xbf\x73\xe6\x9f\x83"
+                         "\x99\x62\x23\xe6\x5b\xd0\xda\x18"
+                         "\xa4\x32\x8a\x0b\x46\xd7\xf0\x39"
+                         "\x36\x5d\x13\x2f\x86\x10\x78\xd6"
+                         "\xd6\xbe\x5c\xb9\x15\x89\xf9\x1b",
+               .rlen   = 128 + 48,
+       },
+};
+
+#define HMAC_SHA512_DES3_EDE_CBC_ENC_TEST_VEC  1
+
+static struct aead_testvec hmac_sha512_des3_ede_cbc_enc_tv_temp[] = {
+       { /*Generated with cryptopp*/
+#ifdef __LITTLE_ENDIAN
+               .key    = "\x08\x00"            /* rta length */
+                         "\x01\x00"            /* rta type */
+#else
+               .key    = "\x00\x08"            /* rta length */
+                         "\x00\x01"            /* rta type */
+#endif
+                         "\x00\x00\x00\x18"    /* enc key length */
+                         "\x11\x22\x33\x44\x55\x66\x77\x88"
+                         "\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
+                         "\x22\x33\x44\x55\x66\x77\x88\x99"
+                         "\xaa\xbb\xcc\xdd\xee\xff\x11\x22"
+                         "\x33\x44\x55\x66\x77\x88\x99\xaa"
+                         "\xbb\xcc\xdd\xee\xff\x11\x22\x33"
+                         "\x44\x55\x66\x77\x88\x99\xaa\xbb"
+                         "\xcc\xdd\xee\xff\x11\x22\x33\x44"
+                         "\xE9\xC0\xFF\x2E\x76\x0B\x64\x24"
+                 "\x44\x4D\x99\x5A\x12\xD6\x40\xC0"
+                         "\xEA\xC2\x84\xE8\x14\x95\xDB\xE8",
+               .klen   = 8 + 64 + 24,
+               .iv     = "\x7D\x33\x88\x93\x0F\x93\xB2\x42",
+               .assoc  = "\x00\x00\x43\x21\x00\x00\x00\x01",
+               .alen   = 8,
+               .input  = "\x6f\x54\x20\x6f\x61\x4d\x79\x6e"
+                         "\x53\x20\x63\x65\x65\x72\x73\x74"
+                         "\x54\x20\x6f\x6f\x4d\x20\x6e\x61"
+                         "\x20\x79\x65\x53\x72\x63\x74\x65"
+                         "\x20\x73\x6f\x54\x20\x6f\x61\x4d"
+                         "\x79\x6e\x53\x20\x63\x65\x65\x72"
+                         "\x73\x74\x54\x20\x6f\x6f\x4d\x20"
+                         "\x6e\x61\x20\x79\x65\x53\x72\x63"
+                 "\x74\x65\x20\x73\x6f\x54\x20\x6f"
+                         "\x61\x4d\x79\x6e\x53\x20\x63\x65"
+                         "\x65\x72\x73\x74\x54\x20\x6f\x6f"
+                         "\x4d\x20\x6e\x61\x20\x79\x65\x53"
+                         "\x72\x63\x74\x65\x20\x73\x6f\x54"
+                         "\x20\x6f\x61\x4d\x79\x6e\x53\x20"
+                         "\x63\x65\x65\x72\x73\x74\x54\x20"
+                         "\x6f\x6f\x4d\x20\x6e\x61\x0a\x79",
+               .ilen   = 128,
+               .result = "\x0e\x2d\xb6\x97\x3c\x56\x33\xf4"
+                         "\x67\x17\x21\xc7\x6e\x8a\xd5\x49"
+                         "\x74\xb3\x49\x05\xc5\x1c\xd0\xed"
+                         "\x12\x56\x5c\x53\x96\xb6\x00\x7d"
+                         "\x90\x48\xfc\xf5\x8d\x29\x39\xcc"
+                         "\x8a\xd5\x35\x18\x36\x23\x4e\xd7"
+                         "\x76\xd1\xda\x0c\x94\x67\xbb\x04"
+                         "\x8b\xf2\x03\x6c\xa8\xcf\xb6\xea"
+                         "\x22\x64\x47\xaa\x8f\x75\x13\xbf"
+                         "\x9f\xc2\xc3\xf0\xc9\x56\xc5\x7a"
+                         "\x71\x63\x2e\x89\x7b\x1e\x12\xca"
+                         "\xe2\x5f\xaf\xd8\xa4\xf8\xc9\x7a"
+                         "\xd6\xf9\x21\x31\x62\x44\x45\xa6"
+                         "\xd6\xbc\x5a\xd3\x2d\x54\x43\xcc"
+                         "\x9d\xde\xa5\x70\xe9\x42\x45\x8a"
+                         "\x6b\xfa\xb1\x91\x13\xb0\xd9\x19"
+                         "\x41\xb5\x1f\xbb\xbd\x4e\xb8\x32"
+                         "\x22\x86\x4e\x57\x1b\x2a\xd8\x6e"
+                         "\xa9\xfb\xc8\xf3\xbf\x2d\xae\x2b"
+                         "\x3b\xbc\x41\xe8\x38\xbb\xf1\x60"
+                         "\x4c\x68\xa9\x4e\x8c\x73\xa7\xc0"
+                         "\x2a\x74\xd4\x65\x12\xcb\x55\xf2"
+                         "\xd5\x02\x6d\xe6\xaf\xc9\x2f\xf2"
+                         "\x57\xaa\x85\xf7\xf3\x6a\xcb\xdb",
+               .rlen   = 128 + 64,
+       },
+};
+
 static struct cipher_testvec aes_lrw_enc_tv_template[] = {
        /* from http://grouper.ieee.org/groups/1619/email/pdf00017.pdf */
        { /* LRW-32-AES 1 */
@@ -18746,7 +20125,29 @@ static struct aead_testvec aes_ccm_enc_tv_template[] = {
                          "\x7c\xf9\xbe\xc2\x40\x88\x97\xc6"
                          "\xba",
                .rlen   = 33,
-       },
+       }, {
+               /*
+                * This is the same vector as aes_ccm_rfc4309_enc_tv_template[0]
+                * below but rewritten to use the ccm algorithm directly.
+                */
+               .key    = "\x83\xac\x54\x66\xc2\xeb\xe5\x05"
+                         "\x2e\x01\xd1\xfc\x5d\x82\x66\x2e",
+               .klen   = 16,
+               .iv     = "\x03\x96\xac\x59\x30\x07\xa1\xe2\xa2\xc7\x55\x24\0\0\0\0",
+               .alen   = 0,
+               .input  = "\x19\xc8\x81\xf6\xe9\x86\xff\x93"
+                         "\x0b\x78\x67\xe5\xbb\xb7\xfc\x6e"
+                         "\x83\x77\xb3\xa6\x0c\x8c\x9f\x9c"
+                         "\x35\x2e\xad\xe0\x62\xf9\x91\xa1",
+               .ilen   = 32,
+               .result = "\xab\x6f\xe1\x69\x1d\x19\x99\xa8"
+                         "\x92\xa0\xc4\x6f\x7e\xe2\x8b\xb1"
+                         "\x70\xbb\x8c\xa6\x4c\x6e\x97\x8a"
+                         "\x57\x2b\xbe\x5d\x98\xa6\xb1\x32"
+                         "\xda\x24\xea\xd9\xa1\x39\x98\xfd"
+                         "\xa4\xbe\xd9\xf2\x1a\x6d\x22\xa8",
+               .rlen   = 48,
+       }
 };
 
 static struct aead_testvec aes_ccm_dec_tv_template[] = {