diff options
Diffstat (limited to 'crypto/testmgr.h')
| -rw-r--r-- | crypto/testmgr.h | 1613 | 
1 files changed, 1597 insertions, 16 deletions
diff --git a/crypto/testmgr.h b/crypto/testmgr.h index 7d44aa3d6b4..69d0dd8ef27 100644 --- a/crypto/testmgr.h +++ b/crypto/testmgr.h @@ -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", +	}  }; @@ -12821,9 +13554,13 @@ static struct cipher_testvec cast6_xts_dec_tv_template[] = {  #define AES_DEC_TEST_VECTORS 4  #define AES_CBC_ENC_TEST_VECTORS 5  #define AES_CBC_DEC_TEST_VECTORS 5 -#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_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_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 @@ -12840,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 @@ -13627,7 +14364,91 @@ static struct cipher_testvec aes_cbc_dec_tv_template[] = {  	},  }; -static struct aead_testvec hmac_sha1_aes_cbc_enc_tv_template[] = { +static struct aead_testvec hmac_md5_ecb_cipher_null_enc_tv_template[] = { +	{ /* Input data from RFC 2410 Case 1 */ +#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\x00"	/* enc key length */ +			  "\x00\x00\x00\x00\x00\x00\x00\x00" +			  "\x00\x00\x00\x00\x00\x00\x00\x00", +		.klen   = 8 + 16 + 0, +		.iv     = "", +		.input  = "\x01\x23\x45\x67\x89\xab\xcd\xef", +		.ilen   = 8, +		.result = "\x01\x23\x45\x67\x89\xab\xcd\xef" +			  "\xaa\x42\xfe\x43\x8d\xea\xa3\x5a" +			  "\xb9\x3d\x9f\xb1\xa3\x8e\x9b\xae", +		.rlen   = 8 + 16, +	}, { /* Input data from RFC 2410 Case 2 */ +#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\x00"	/* enc key length */ +			  "\x00\x00\x00\x00\x00\x00\x00\x00" +			  "\x00\x00\x00\x00\x00\x00\x00\x00", +		.klen   = 8 + 16 + 0, +		.iv     = "", +		.input  = "Network Security People Have A Strange Sense Of Humor", +		.ilen   = 53, +		.result = "Network Security People Have A Strange Sense Of Humor" +			  "\x73\xa5\x3e\x1c\x08\x0e\x8a\x8a" +			  "\x8e\xb5\x5f\x90\x8e\xfe\x13\x23", +		.rlen   = 53 + 16, +	}, +}; + +static struct aead_testvec hmac_md5_ecb_cipher_null_dec_tv_template[] = { +	{ +#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\x00"	/* enc key length */ +			  "\x00\x00\x00\x00\x00\x00\x00\x00" +			  "\x00\x00\x00\x00\x00\x00\x00\x00", +		.klen   = 8 + 16 + 0, +		.iv     = "", +		.input  = "\x01\x23\x45\x67\x89\xab\xcd\xef" +			  "\xaa\x42\xfe\x43\x8d\xea\xa3\x5a" +			  "\xb9\x3d\x9f\xb1\xa3\x8e\x9b\xae", +		.ilen   = 8 + 16, +		.result = "\x01\x23\x45\x67\x89\xab\xcd\xef", +		.rlen   = 8, +	}, { +#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\x00"	/* enc key length */ +			  "\x00\x00\x00\x00\x00\x00\x00\x00" +			  "\x00\x00\x00\x00\x00\x00\x00\x00", +		.klen   = 8 + 16 + 0, +		.iv     = "", +		.input  = "Network Security People Have A Strange Sense Of Humor" +			  "\x73\xa5\x3e\x1c\x08\x0e\x8a\x8a" +			  "\x8e\xb5\x5f\x90\x8e\xfe\x13\x23", +		.ilen   = 53 + 16, +		.result = "Network Security People Have A Strange Sense Of Humor", +		.rlen   = 53, +	}, +}; + +static struct aead_testvec hmac_sha1_aes_cbc_enc_tv_temp[] = {  	{ /* RFC 3602 Case 1 */  #ifdef __LITTLE_ENDIAN  		.key    = "\x08\x00"		/* rta length */ @@ -13876,7 +14697,99 @@ static struct aead_testvec hmac_sha1_aes_cbc_enc_tv_template[] = {  	},  }; -static struct aead_testvec hmac_sha256_aes_cbc_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 */ +			  "\x01\x00"		/* rta type */ +#else +		.key    = "\x00\x08"		/* rta length */ +			  "\x00\x01"		/* rta type */ +#endif +			  "\x00\x00\x00\x00"	/* enc key length */ +			  "\x00\x00\x00\x00\x00\x00\x00\x00" +			  "\x00\x00\x00\x00\x00\x00\x00\x00" +			  "\x00\x00\x00\x00", +		.klen   = 8 + 20 + 0, +		.iv     = "", +		.input  = "\x01\x23\x45\x67\x89\xab\xcd\xef", +		.ilen   = 8, +		.result = "\x01\x23\x45\x67\x89\xab\xcd\xef" +			  "\x40\xc3\x0a\xa1\xc9\xa0\x28\xab" +			  "\x99\x5e\x19\x04\xd1\x72\xef\xb8" +			  "\x8c\x5e\xe4\x08", +		.rlen   = 8 + 20, +	}, { /* Input data from RFC 2410 Case 2 */ +#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\x00"	/* enc key length */ +			  "\x00\x00\x00\x00\x00\x00\x00\x00" +			  "\x00\x00\x00\x00\x00\x00\x00\x00" +			  "\x00\x00\x00\x00", +		.klen   = 8 + 20 + 0, +		.iv     = "", +		.input  = "Network Security People Have A Strange Sense Of Humor", +		.ilen   = 53, +		.result = "Network Security People Have A Strange Sense Of Humor" +			  "\x75\x6f\x42\x1e\xf8\x50\x21\xd2" +			  "\x65\x47\xee\x8e\x1a\xef\x16\xf6" +			  "\x91\x56\xe4\xd6", +		.rlen   = 53 + 20, +	}, +}; + +static struct aead_testvec hmac_sha1_ecb_cipher_null_dec_tv_temp[] = { +	{ +#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\x00"	/* enc key length */ +			  "\x00\x00\x00\x00\x00\x00\x00\x00" +			  "\x00\x00\x00\x00\x00\x00\x00\x00" +			  "\x00\x00\x00\x00", +		.klen   = 8 + 20 + 0, +		.iv     = "", +		.input  = "\x01\x23\x45\x67\x89\xab\xcd\xef" +			  "\x40\xc3\x0a\xa1\xc9\xa0\x28\xab" +			  "\x99\x5e\x19\x04\xd1\x72\xef\xb8" +			  "\x8c\x5e\xe4\x08", +		.ilen   = 8 + 20, +		.result = "\x01\x23\x45\x67\x89\xab\xcd\xef", +		.rlen   = 8, +	}, { +#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\x00"	/* enc key length */ +			  "\x00\x00\x00\x00\x00\x00\x00\x00" +			  "\x00\x00\x00\x00\x00\x00\x00\x00" +			  "\x00\x00\x00\x00", +		.klen   = 8 + 20 + 0, +		.iv     = "", +		.input  = "Network Security People Have A Strange Sense Of Humor" +			  "\x75\x6f\x42\x1e\xf8\x50\x21\xd2" +			  "\x65\x47\xee\x8e\x1a\xef\x16\xf6" +			  "\x91\x56\xe4\xd6", +		.ilen   = 53 + 20, +		.result = "Network Security People Have A Strange Sense Of Humor", +		.rlen   = 53, +	}, +}; + +static struct aead_testvec hmac_sha256_aes_cbc_enc_tv_temp[] = {  	{ /* RFC 3602 Case 1 */  #ifdef __LITTLE_ENDIAN  		.key    = "\x08\x00"		/* rta length */ @@ -14139,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 */ @@ -14458,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 */ @@ -18566,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[] = {  | 
