--- zzzz-none-000/linux-4.1.52/crypto/testmgr.h 2018-05-28 02:26:45.000000000 +0000 +++ bcm63-7530ax-731/linux-4.1.52/crypto/testmgr.h 2022-03-02 11:37:12.000000000 +0000 @@ -78,6 +78,9 @@ unsigned short ilen; unsigned short alen; unsigned short rlen; +#if defined(CONFIG_BCM_KF_SPU) + unsigned short authsize; +#endif }; struct cprng_testvec { @@ -14504,6 +14507,262 @@ }, }; +#if defined(CONFIG_BCM_KF_SPU) +#define DTLS_SHA1_AES_ENC_TEST_VECTORS 3 +#define DTLS_SHA1_AES_DEC_TEST_VECTORS 3 +#define DTLS_SHA256_AES_ENC_TEST_VECTORS 1 +#define DTLS_SHA256_AES_DEC_TEST_VECTORS 1 + +static struct aead_testvec dtls_hmac_sha1_aes_cbc_enc[] = { + { /* Cisco AES128SHA1 */ +#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\x10" /* enc key length */ + "\x8f\xc6\x5b\xc6" + "\xa3\x37\x13\xd7\x1c\xd2\x80\xf1" + "\xac\xe9\x82\x8c\x3b\x4d\x32\x55" + "\xea\x7e\x7c\x2d\x27\x2d\x8e\x5b" + "\xd2\xda\xd3\xaa\x5a\xa6\xad\x08", + .klen = 8 + 20 + 16, + .iv = "\xff\x23\xdd\x29\xa3\x9b\xc7\x74" + "\x59\xc0\xe3\x97\x56\xe1\x85\x35", + .assoc = "\x00\x01\x00\x00" + "\x00\x00\x00\x37\x17\xfe\xff\x00\x50", + .alen = 13, + .input = "\x00\x20\x03\x20\x00\x00\x00\x00" /* input data (80 bytes) */ + "\x04\x00\x00\x00\x00\x00\x00\x00" + "\x00\x40\x00\x00\x3c\x41\x0e\x3a" + "\x1c\x80\x00\x00\x00\x00\x00\x00" + "\x3c\x41\x0e\x3a\x1c\x80\x00\x01" + "\xdd\x09\x00\x40\x96\x25\x01\x07" + "\xe6\x1a\x0f\xdd\x1b\x00\x40\x96" + "\x25\x00\x01\xac\xed\x5c\xd2\x24" + "\x0e\x01\x00\xfb\x00\x24\x00\xe3" + "\x44\x13\x0f\x10\xa2\x02\xa5\xa5" + "\x00\x00\x00\x00\x00\x00\x00\x00" /* ICV landing space (20 bytes) */ + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00" + "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" /* padding to 112bytes (12 bytes) */ + "\x0b\x0b\x0b\x0b", + .ilen = 112, + .result = "\x50\x9c\x3d\x50\x71\x40\x8b\x76" + "\x96\x1a\x3e\x16\x4e\xff\xef\x70" + "\x86\xe3\x67\x51\x66\x6d\x3f\x87" + "\x7b\x14\xab\x76\x85\x1c\x73\x55" + "\xe4\xa9\x06\xdd\xc3\x6c\xb3\x88" + "\xaf\x32\x89\x8f\x34\x02\x7c\x7c" + "\xc7\x9b\x1c\x9c\xd3\xfd\xdd\x81" + "\xb5\x85\x4d\x1a\xfa\xdc\x72\x04" + "\x96\x0e\x77\x77\x4b\x58\x6e\xd1" + "\x81\xb4\xe6\x9b\x2a\xb4\x0f\xe9" + "\xe0\x7f\xa5\x13\x82\xae\x12\xfc" + "\x04\x68\xa0\x79\xfe\x2e\x66\x82" + "\x29\x1b\x5e\x31\x05\xf6\x16\x12" + "\xbe\x8b\xce\x99\x6b\x3a\xbd\xe1", + .rlen = 112, + .authsize = 20, + }, + { /* Cisco AES256SHA1 */ +#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\x20" /* enc key length */ + "\x0f\xe2\xa9\x0a\xc5\x65\x32\x37\xa8\x8e\x6a\xa6\xd2\x42\xb1\xb4\x80\xfa\xd3\x4f" + "\x1f\x96\xeb\xaa\x23\x41\x82\xd5\xb5\xb0\x96\xfe\xf9\xec\xb6\xae\xc2\x4b\x48\xed\xff\x6d\x3e\x88\x8c\x39\x30\x52\xd6\x11\xd4\xa2", + .klen = 8 + 20 + 32, + .iv = "\x31\xb5\xd1\x5f\x20\x2b\x77\x3f\x1f\x42\x2c\x1a\xd8\x59\x92\x99", + .assoc = "\x00\x01\x00\x00\x00\x00\x25\x03\x17\xfe\xfd\x00\x50", + .alen = 13, + .input = "\x00\x20\x03\x20\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x3c\x41\x0e\x3a\xed\x60\x00\x00\x00\x00\x00\x00\x3c\x41\x0e\x3a\xed\x60\x00\x01\xdd\x09\x00\x40\x96\x25\x01\xca\x8b\x99\x21\xdd\x1b\x00\x40\x96\x25\x00\x01\x10\x3d\x0a\x51\xca\xe1\x00\x00\x01\x00\x0b\x00\xa6\xea\x91\x21\x10\x3b\x02\xa5\xa5" + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" /* ICV landing space (20 bytes) */ + "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b", /* padding to 112bytes (12 bytes) */ + .ilen = 112, + .result = "\xed\xcf\xb6\x80\xa2\x6e\x42\xf2\xe3\x43\x30\x02\x27\x7f\x21\x0d\x37\xa7\x53\x82\xde\xdc\xf0\x54\xa8\xfd\x4d\x0b\xf1\x48\x66\xf0\xcb\x73\xe4\x53\x99\x73\x80\x84\xbc\x2a\x2c\x8c\x20\xaf\x37\x3d\xc0\x2f\x8c\xc9\x3d\xcf\x16\x81\x23\x9f\x1d\x5c\x08\x0e\x3b\xa7\xe7\x45\x33\x0a\xf2\x47\x27\x0b\x1a\x77\x47\x10\xa9\xd2\x2a\x29\x36\x74\xa4\x2e\xd6\x70\xf7\x05\xbb\x05\x6a\x73\x98\x8f\xec\x54\x2b\xe4\x8b\x78\x70\x64\x71\x6a\x26\x9e\xc0\x09\x51\x74\x2c\xdb", + .rlen = 112, + .authsize = 20, + }, + { /* CAPWAP Keep-alive Request */ +#ifdef __LITTLE_ENDIAN + .key = "\x08\x00\x01\x00" /* rta length (2), rta type (2)*/ +#else + .key = "\x00\x08\x00\x01" +#endif + "\x00\x00\x00\x10" /* enc key length */ + "\xd4\x18\xf0\x41\x9e\x37\xd8\xe9" /* auth key */ + "\x63\xe6\xed\x54\x44\xd4\x6a\x61" + "\xcf\xd3\xc8\x26" + "\x9c\x91\x12\x95\x85\xb2\xe6\x75" /* enc key */ + "\xa2\x30\x33\xb1\xd0\x4b\xf2\xc5", + .klen = 8 + 20 + 16, + .iv = "\x30\x31\x32\x33\x34\x35\x36\x37" + "\x38\x39\x40\x41\x42\x43\x44\x45", + .assoc = "\x00\x01\x00\x00\x00\x00\x00\x3c" + "\x17\xfe\xff\x00\x00", + .alen = 13, + + .input = "\x00\x10\x02\x08\x00\x00\x00\x00" /* input data (30 bytes) */ + "\x16\x00\x23\x00\x10\x00\x00\x00" + "\xf0\x06\xeb\x26\x00\x00\xfc\x6e" + "\x15\x0b\x64\x2a\xb4\xec" + "\x00\x00\x00\x00\x00\x00\x00\x00" /* ICV landing space (20 bytes) */ + "\x00\x00\x00\x00\x00\x00\x00\x00" + "\x00\x00\x00\x00" + "\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d" /* padding to 64bytes (14 bytes) */ + "\x0d\x0d\x0d\x0d\x0d\x0d", + .ilen = 64, + .authsize = 20, + .result = "\x6e\x76\x1d\x58\xf8\xbc\x97\xe2" + "\x2a\xfd\xd3\xad\x99\x8e\x1f\x63" + "\x49\xc9\xa5\x23\x2d\x41\xee\x20" + "\x92\xdf\x5b\x65\x19\x80\xc6\xa4" + "\x44\x0f\xa4\x51\xd9\x89\x21\x97" + "\x96\x4b\x0b\x74\x07\x62\x3b\xd4" + "\x2b\x1f\x33\x77\xd9\x14\x47\x0d" + "\xe9\xea\xbb\x4b\x02\xc2\x08\x5a", + .rlen = 64, + }, +}; + +static struct aead_testvec dtls_hmac_sha256_aes_cbc_enc[] = { + { /* Cisco AES256SHA256 */ +#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\x20" /* enc key length */ + "\x48\x89\x1d\x09\x71\x48\x43\x1c\x2a\xa1\xcd\x4d\x97\xf9\x4a\xe3\xb1\xa3\x07\x61\x64\x51\xf0\x14\x8f\x40\x3d\x7e\xd6\x04\xb3\xfd" + "\xef\x68\x73\xd1\x1e\xb9\x1a\xae\xfa\x02\xd8\xf7\x62\x82\x61\xd7\x83\x91\x32\xe6\x35\x28\xbf\xbb\xea\x6f\x73\x19\x85\x5d\xe3\x68", + .klen = 8 + 32 + 32, + .iv = "\x25\xa9\x7e\x2f\x24\xd6\xb0\xb7\xd8\x0c\xf8\x48\x88\x80\x73\xa5", + .assoc = "\x00\x01\x00\x00\x00\x00\x02\x3a\x17\xfe\xfd\x00\x6d", + .alen = 13, + .input = "\x00\x20\x03\x20\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x3c\x41\x0e\x3a\xed\x60\x00\x00\x00\x00\x00\x00\x3c\x41\x0e\x3a\xed\x60\x00\x01\xdd\x09\x00\x40\x96\x25\x01\x2c\x11\x67\x48\xdd\x1b\x00\x40\x96\x25\x00\x01\x10\x41\x7f\xf3\xdb\xa4\x00\x00\x0d\x00\x0b\x00\x70\x64\x5f\x48\x70\x23\x02\xb3\xb3\xdd\x1b\x00\x40\x96\x25\x00\x01\x10\x41\x7f\xf3\xdb\xa4\x00\x00\x0c\x00\x0b\x00\x51\x88\x5f\x48\x80\x23\x02\xb2\xb2" + "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" /* ICV landing space (20 bytes) */ + "\x02\x02\x02", /* padding to 144bytes (3 bytes) */ + .ilen = 144, + .result = "\x70\x0e\xcf\x4d\x8d\xc3\x69\xea\xff\x62\xae\xe3\xd6\x2f\xe2\xce\xcd\xe3\xfb\x47\x4f\xb7\x7b\xc1\x2a\x15\x23\x58\x4c\xb9\x52\xf2\x60\x6a\xe3\xc0\xe0\xa2\xf9\x56\x5c\x7d\x99\xe6\xb5\xec\x10\xd4\x19\xb6\x5e\xa2\x7c\xf9\x2a\x77\x91\x14\x69\x96\xda\xa6\x72\xb4\xb1\xbb\x03\x63\xf6\xc9\xfd\x08\xd0\xb2\xbb\x33\x85\xd2\xb6\x03\x00\xd6\xc4\x71\xe0\xb5\x56\x30\xb3\xc3\x41\x50\x56\x26\xc2\x29\x2e\xf7\x3a\xc2\x6e\x32\xbb\x5e\xba\x94\xde\xeb\xa7\x37\x94\xea\x25\x77\x81\x99\x62\x26\x8b\x81\xb0\xc4\xe4\xbf\x0a\xac\x21\x5e\x8c\xf2\x25\xea\x34\x86\x92\x39\xb1\xdf\x98\x45\x6c\x6b\x79\x03", + .rlen = 144, + .authsize = 32, + }, +}; + +static struct aead_testvec dtls_hmac_sha1_aes_cbc_dec[] = { + { /* Cisco aes 128 sha 1 */ +#ifdef __LITTLE_ENDIAN + .key = "\x08\x00\x01\x00" /* rta length (2), rta type (2)*/ +#else + .key = "\x00\x08\x00\x01" +#endif + "\x00\x00\x00\x10" /* enc key length */ + "\x32\x8a\x20\x7e\x80\xfb\xf9\x21\xa9\x2c\x58\x06\xa2\xc3\x62\x43\x1d\xb5\x71\x98" + "\x45\x4b\x16\x91\xe9\xa1\x3f\xba\x53\xa7\x5d\x41\x0d\x41\x62\x09", + .klen = 8 + 20 + 16, + .iv = "\x87\x01\xa1\x29\x57\x33\x6c\xe4\xc6\x35\x13\x93\x75\x5a\xed\xe6", + .assoc = "\x00\x01\x00\x00\x00\x00\x00\x4c\x17\xfe\xff\x00\x00", //0x32 + .alen = 13, + .input = "\xd5\x4b\xf4\xec\xd0\x9c\x75\x1a\x41\x4d\x2b\x17\xb3\x42\x02\xff\x53\xf4\x66\x42\x2d\x69\x9f\xee\x70\xbb\x11\xab\x0e\x9f\x07\xdd\xad\x18\x46\x93\x15\xbe\x21\xec\xb6\x5a\x9e\x6b\xd7\xe4\xe7\x59\x52\x4c\xc9\xaa\xc4\x2c\xe9\x97\x74\x21\x1e\xc4\xda\x36\x04\xd4\x8b\x9f\xba\x8c\x74\xdc\x91\x80\xde\xed\xc3\xc0\xf3\xe8\x82\x02", + .ilen = 80, + .authsize = 20, + .result = "\x00\x20\x00\x18\x00\x00\x00\x00\x06\x3c\x41\x0e\x3a\x1c\x80\x00\x00\x18\x00\x23\x00\x04\x7d\xcb\x1b\x0f\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x96\x00\x00\x4c\xdb\x86\x74\xe2\x48\xf4\xfd\x34\x7b\xe0\xef\x32\x8e\x1b\x36\xf6\xe2\xf9\x67\x6e\x31\xbb\xd0\xce\x22\x32\x2e\x03\x09\x09\x09\x09\x09\x09\x09\x09\x09\x09", + .rlen = 80, + }, + { /* Cisco aes 256 sha 1 */ +#ifdef __LITTLE_ENDIAN + .key = "\x08\x00\x01\x00" /* rta length (2), rta type (2)*/ +#else + .key = "\x00\x08\x00\x01" +#endif + "\x00\x00\x00\x20" /* enc key length */ + "\x4b\x60\xc3\x66\x82\x56\x3a\x0e\x85\x80\xc1\x7b\x0d\x3d\xe2\xaf\x0a\x86\x3f\xdb" + "\x11\x2d\x07\x7e\x45\x3f\x36\xb4\xc7\xf5\x8e\x18\x56\xc9\xbd\x9c\xb0\xc6\x21\xa1\x6a\xe7\x15\x73\xc8\x4d\xaa\xe5\xee\x9b\xfb\x5f", + .klen = 8 + 20 + 32, + .iv = "\x18\x04\x2e\xfe\x4a\x2f\xd4\xca\x33\x64\x22\x31\xee\x17\x48\x6a", + .assoc = "\x00\x01\x00\x00\x00\x00\x00\x26\x17\xfe\xfd\x00\x00", //2a", + .alen = 13, + .input = "\xd5\x12\xd2\xb4\xd7\xd4\xbb\x7f\x80\x61\xe9\x6c\x82\x5f\x74\xbb\x72\xe9\xb9\x3d\x3a\x5d\xcf\x50\x1a\x15\xb1\x2d\xa1\x70\x93\xd9\x99\xc5\xc1\x4b\xa8\x4d\xc7\xcb\xca\xf1\x27\xf9\x8f\x75\xd4\x62\xef\xa4\xad\x2c\x5f\xd0\xfd\x3a\x95\x9b\x01\x93\xd4\x4a\xb4\xb3", + .ilen = 64, + .authsize = 20, + .result = "\x00\x10\x03\x08\x00\x00\x00\x00\x00\x18\x00\x23\x00\x04\xdb\x00\xaa\x1a\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x96\x00\x00\x4c\xbf\x7e\x89\xe2\xc8\x0d\x02\x8b\x08\x8d\xf5\x1a\xf2\x2a\x91\xac\xa3\x03\x4f\x21\x0a\x98\x4d\x5a\x91\x47\xec\xeb\x01\x01", + .rlen = 64, + }, + { /* CAPWAP Keep-alive Request */ +#ifdef __LITTLE_ENDIAN + .key = "\x08\x00\x01\x00" /* rta length (2), rta type (2)*/ +#else + .key = "\x00\x08\x00\x01" +#endif + "\x00\x00\x00\x10" /* enc key length */ + "\xd4\x18\xf0\x41\x9e\x37\xd8\xe9" /* auth key */ + "\x63\xe6\xed\x54\x44\xd4\x6a\x61" + "\xcf\xd3\xc8\x26" + "\x9c\x91\x12\x95\x85\xb2\xe6\x75" /* enc key */ + "\xa2\x30\x33\xb1\xd0\x4b\xf2\xc5", + .klen = 8 + 20 + 16, + .iv = "\x30\x31\x32\x33\x34\x35\x36\x37" + "\x38\x39\x40\x41\x42\x43\x44\x45", + .assoc = "\x00\x01\x00\x00\x00\x00\x00\x3c" + "\x17\xfe\xff\x00\x00", + .alen = 13, + + .input = "\x6e\x76\x1d\x58\xf8\xbc\x97\xe2" /* encrypted input data (64 bytes) */ + "\x2a\xfd\xd3\xad\x99\x8e\x1f\x63" + "\x49\xc9\xa5\x23\x2d\x41\xee\x20" + "\x92\xdf\x5b\x65\x19\x80\xc6\xa4" + "\x44\x0f\xa4\x51\xd9\x89\x21\x97" + "\x96\x4b\x0b\x74\x07\x62\x3b\xd4" + "\x2b\x1f\x33\x77\xd9\x14\x47\x0d" + "\xe9\xea\xbb\x4b\x02\xc2\x08\x5a", + + .ilen = 64, + .authsize = 20, + .result = "\x00\x10\x02\x08\x00\x00\x00\x00" /* output data (30 bytes) */ + "\x16\x00\x23\x00\x10\x00\x00\x00" + "\xf0\x06\xeb\x26\x00\x00\xfc\x6e" + "\x15\x0b\x64\x2a\xb4\xec" + "\x31\x41\x78\x7a\x9d\xe6\x2e\x35" /* ICV (20 bytes) */ + "\x0e\x64\x0b\x0c\xfb\x13\x34\x77" + "\xfc\x80\x68\xc4" + "\x0d\x0d\x0d\x0d\x0d\x0d\x0d\x0d" /* padding to 64bytes (14 bytes) */ + "\x0d\x0d\x0d\x0d\x0d\x0d", + .rlen = 64, + }, +}; + +static struct aead_testvec dtls_hmac_sha256_aes_cbc_dec[] = { + { /* Cisco aes 256 sha 256 */ +#ifdef __LITTLE_ENDIAN + .key = "\x08\x00\x01\x00" /* rta length (2), rta type (2)*/ +#else + .key = "\x00\x08\x00\x01" +#endif + "\x00\x00\x00\x20" /* enc key length */ + "\xbd\x83\xb4\x94\x50\xb0\x45\x1d\x5d\x46\x0d\xbe\xf3\xaa\x5c\xce\x71\x68\xb2\xe0\x09\x24\x3b\x61\x93\x2a\x43\x65\xec\x1e\xc0\x3b" + "\x61\xd0\xd4\x9e\xdf\x28\x5c\x68\x69\x5f\xa5\x2a\x03\x5b\x44\x21\xd7\xf0\x77\x75\xda\x9d\x5d\x20\xab\xcd\x28\xf7\xce\x42\xe2\xd8", + .klen = 8 + 32 + 32, + .iv = "\x98\xad\xb4\xf1\xa1\x36\xc2\x5d\x11\x92\x31\x35\x53\x6b\xf8\xcd", + .assoc = "\x00\x01\x00\x00\x00\x00\x00\x04\x17\xfe\xfd\x00\x00", //2a", + .alen = 13, + .input = "\x4a\x92\x48\xa7\xaf\xe0\x77\xa8\x07\xfb\xea\xe7\x66\x93\x57\x18\x5d\x6c\xa8\x1c\x49\x6e\xca\xfb\xbb\x6b\xe3\xac\x38\xe0\x7a\x15\x64\x56\x61\x6f\x7c\x01\xb3\x04\xb5\xa8\x79\x59\x25\x3a\x80\x29\xb1\x95\x02\xeb\x4e\xf3\xf0\xdf\x12\xc4\x45\x17\x10\xb0\x7d\x7c\xc6\xde\xcb\x57\xc2\xbe\x3c\xfc\x2c\xb6\xa5\x0f\xff\x84\xd7\xf8", + .ilen = 80, + .authsize = 32, + .result = "\x00\x10\x03\x08\x00\x00\x00\x00\x00\x18\x00\x23\x00\x04\xbe\x6d\x0e\x6e\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x96\x00\x00\x4c\x7a\xd1\x89\xe2\x78\x02\x2b\x27\x51\x82\x8a\xef\xe2\x69\xdc\xb6\x85\xf3\x1e\xe2\xf1\xf1\xce\x87\xd3\xe8\x22\x75\xb1\x80\xe6\xe6\x8b\x95\xce\xa5\x4e\x3c\x9e\x17\x05\x05\x05\x05\x05\x05", + .rlen = 80, + }, +}; +#endif + static struct aead_testvec hmac_sha1_aes_cbc_enc_tv_temp[] = { { /* RFC 3602 Case 1 */ #ifdef __LITTLE_ENDIAN @@ -28681,7 +28940,11 @@ #define ZLIB_COMP_TEST_VECTORS 2 #define ZLIB_DECOMP_TEST_VECTORS 2 +#if defined(CONFIG_BCM_KF_IP) +static struct { +#else static const struct { +#endif struct nlattr nla; int val; } deflate_comp_params[] = { @@ -28718,7 +28981,11 @@ } }; +#if defined(CONFIG_BCM_KF_IP) +static struct { +#else static const struct { +#endif struct nlattr nla; int val; } deflate_decomp_params[] = {