crypto: ecdh - Add ECDH software support
* Implement ECDH under kpp API * Provide ECC software support for curve P-192 and P-256. * Add kpp test for ECDH with data generated by OpenSSL Signed-off-by: Salvatore Benedetto <salvatore.benedetto@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
committed by
Herbert Xu
parent
802c7f1c84
commit
3c4b23901a
@@ -560,6 +560,99 @@ struct kpp_testvec dh_tv_template[] = {
|
||||
}
|
||||
};
|
||||
|
||||
#ifdef CONFIG_CRYPTO_FIPS
|
||||
#define ECDH_TEST_VECTORS 1
|
||||
#else
|
||||
#define ECDH_TEST_VECTORS 2
|
||||
#endif
|
||||
struct kpp_testvec ecdh_tv_template[] = {
|
||||
{
|
||||
#ifndef CONFIG_CRYPTO_FIPS
|
||||
.secret =
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
"\x02\x00" /* type */
|
||||
"\x20\x00" /* len */
|
||||
"\x01\x00" /* curve_id */
|
||||
"\x18\x00" /* key_size */
|
||||
#else
|
||||
"\x00\x02" /* type */
|
||||
"\x00\x20" /* len */
|
||||
"\x00\x01" /* curve_id */
|
||||
"\x00\x18" /* key_size */
|
||||
#endif
|
||||
"\xb5\x05\xb1\x71\x1e\xbf\x8c\xda"
|
||||
"\x4e\x19\x1e\x62\x1f\x23\x23\x31"
|
||||
"\x36\x1e\xd3\x84\x2f\xcc\x21\x72",
|
||||
.b_public =
|
||||
"\xc3\xba\x67\x4b\x71\xec\xd0\x76"
|
||||
"\x7a\x99\x75\x64\x36\x13\x9a\x94"
|
||||
"\x5d\x8b\xdc\x60\x90\x91\xfd\x3f"
|
||||
"\xb0\x1f\x8a\x0a\x68\xc6\x88\x6e"
|
||||
"\x83\x87\xdd\x67\x09\xf8\x8d\x96"
|
||||
"\x07\xd6\xbd\x1c\xe6\x8d\x9d\x67",
|
||||
.expected_a_public =
|
||||
"\x1a\x04\xdb\xa5\xe1\xdd\x4e\x79"
|
||||
"\xa3\xe6\xef\x0e\x5c\x80\x49\x85"
|
||||
"\xfa\x78\xb4\xef\x49\xbd\x4c\x7c"
|
||||
"\x22\x90\x21\x02\xf9\x1b\x81\x5d"
|
||||
"\x0c\x8a\xa8\x98\xd6\x27\x69\x88"
|
||||
"\x5e\xbc\x94\xd8\x15\x9e\x21\xce",
|
||||
.expected_ss =
|
||||
"\xf4\x57\xcc\x4f\x1f\x4e\x31\xcc"
|
||||
"\xe3\x40\x60\xc8\x06\x93\xc6\x2e"
|
||||
"\x99\x80\x81\x28\xaf\xc5\x51\x74",
|
||||
.secret_size = 32,
|
||||
.b_public_size = 48,
|
||||
.expected_a_public_size = 48,
|
||||
.expected_ss_size = 24
|
||||
}, {
|
||||
#endif
|
||||
.secret =
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
"\x02\x00" /* type */
|
||||
"\x28\x00" /* len */
|
||||
"\x02\x00" /* curve_id */
|
||||
"\x20\x00" /* key_size */
|
||||
#else
|
||||
"\x00\x02" /* type */
|
||||
"\x00\x28" /* len */
|
||||
"\x00\x02" /* curve_id */
|
||||
"\x00\x20" /* key_size */
|
||||
#endif
|
||||
"\x24\xd1\x21\xeb\xe5\xcf\x2d\x83"
|
||||
"\xf6\x62\x1b\x6e\x43\x84\x3a\xa3"
|
||||
"\x8b\xe0\x86\xc3\x20\x19\xda\x92"
|
||||
"\x50\x53\x03\xe1\xc0\xea\xb8\x82",
|
||||
.expected_a_public =
|
||||
"\x1a\x7f\xeb\x52\x00\xbd\x3c\x31"
|
||||
"\x7d\xb6\x70\xc1\x86\xa6\xc7\xc4"
|
||||
"\x3b\xc5\x5f\x6c\x6f\x58\x3c\xf5"
|
||||
"\xb6\x63\x82\x77\x33\x24\xa1\x5f"
|
||||
"\x6a\xca\x43\x6f\xf7\x7e\xff\x02"
|
||||
"\x37\x08\xcc\x40\x5e\x7a\xfd\x6a"
|
||||
"\x6a\x02\x6e\x41\x87\x68\x38\x77"
|
||||
"\xfa\xa9\x44\x43\x2d\xef\x09\xdf",
|
||||
.expected_ss =
|
||||
"\xea\x17\x6f\x7e\x6e\x57\x26\x38"
|
||||
"\x8b\xfb\x41\xeb\xba\xc8\x6d\xa5"
|
||||
"\xa8\x72\xd1\xff\xc9\x47\x3d\xaa"
|
||||
"\x58\x43\x9f\x34\x0f\x8c\xf3\xc9",
|
||||
.b_public =
|
||||
"\xcc\xb4\xda\x74\xb1\x47\x3f\xea"
|
||||
"\x6c\x70\x9e\x38\x2d\xc7\xaa\xb7"
|
||||
"\x29\xb2\x47\x03\x19\xab\xdd\x34"
|
||||
"\xbd\xa8\x2c\x93\xe1\xa4\x74\xd9"
|
||||
"\x64\x63\xf7\x70\x20\x2f\xa4\xe6"
|
||||
"\x9f\x4a\x38\xcc\xc0\x2c\x49\x2f"
|
||||
"\xb1\x32\xbb\xaf\x22\x61\xda\xcb"
|
||||
"\x6f\xdb\xa9\xaa\xfc\x77\x81\xf3",
|
||||
.secret_size = 40,
|
||||
.b_public_size = 64,
|
||||
.expected_a_public_size = 64,
|
||||
.expected_ss_size = 32
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* MD4 test vectors from RFC1320
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user