131dd9ddfSGowrishankar Muthukrishnan /* SPDX-License-Identifier: BSD-3-Clause 231dd9ddfSGowrishankar Muthukrishnan * Copyright (C) 2023 Marvell International Ltd. 331dd9ddfSGowrishankar Muthukrishnan */ 431dd9ddfSGowrishankar Muthukrishnan 531dd9ddfSGowrishankar Muthukrishnan #ifndef __TEST_CRYPTODEV_ECDH_TEST_VECTORS_H__ 631dd9ddfSGowrishankar Muthukrishnan #define __TEST_CRYPTODEV_ECDH_TEST_VECTORS_H__ 731dd9ddfSGowrishankar Muthukrishnan 831dd9ddfSGowrishankar Muthukrishnan #include "rte_crypto_asym.h" 931dd9ddfSGowrishankar Muthukrishnan 1031dd9ddfSGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params { 1131dd9ddfSGowrishankar Muthukrishnan rte_crypto_param pubkey_qA_x; 1231dd9ddfSGowrishankar Muthukrishnan rte_crypto_param pubkey_qA_y; 1331dd9ddfSGowrishankar Muthukrishnan rte_crypto_param pkey_A; 1431dd9ddfSGowrishankar Muthukrishnan rte_crypto_param pubkey_qB_x; 1531dd9ddfSGowrishankar Muthukrishnan rte_crypto_param pubkey_qB_y; 1631dd9ddfSGowrishankar Muthukrishnan rte_crypto_param pkey_B; 1731dd9ddfSGowrishankar Muthukrishnan rte_crypto_param secret_x; 1831dd9ddfSGowrishankar Muthukrishnan rte_crypto_param secret_y; 1931dd9ddfSGowrishankar Muthukrishnan int curve; 2031dd9ddfSGowrishankar Muthukrishnan }; 2131dd9ddfSGowrishankar Muthukrishnan 2231dd9ddfSGowrishankar Muthukrishnan /* 2331dd9ddfSGowrishankar Muthukrishnan * Test vector reference: 2431dd9ddfSGowrishankar Muthukrishnan * https://datatracker.ietf.org/doc/html/rfc5114.html 2531dd9ddfSGowrishankar Muthukrishnan * Appendix A. 2631dd9ddfSGowrishankar Muthukrishnan */ 2731dd9ddfSGowrishankar Muthukrishnan 2831dd9ddfSGowrishankar Muthukrishnan /** SECP192R1 (P-192 NIST) test vector */ 2931dd9ddfSGowrishankar Muthukrishnan 3031dd9ddfSGowrishankar Muthukrishnan static uint8_t dA_secp192r1[] = { 3131dd9ddfSGowrishankar Muthukrishnan 0x32, 0x3F, 0xA3, 0x16, 0x9D, 0x8E, 0x9C, 0x65, 3231dd9ddfSGowrishankar Muthukrishnan 0x93, 0xF5, 0x94, 0x76, 0xBC, 0x14, 0x20, 0x00, 3331dd9ddfSGowrishankar Muthukrishnan 0xAB, 0x5B, 0xE0, 0xE2, 0x49, 0xC4, 0x34, 0x26 3431dd9ddfSGowrishankar Muthukrishnan }; 3531dd9ddfSGowrishankar Muthukrishnan 3631dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qA_secp192r1[] = { 3731dd9ddfSGowrishankar Muthukrishnan 0xCD, 0x46, 0x48, 0x9E, 0xCF, 0xD6, 0xC1, 0x05, 3831dd9ddfSGowrishankar Muthukrishnan 0xE7, 0xB3, 0xD3, 0x25, 0x66, 0xE2, 0xB1, 0x22, 3931dd9ddfSGowrishankar Muthukrishnan 0xE2, 0x49, 0xAB, 0xAA, 0xDD, 0x87, 0x06, 0x12 4031dd9ddfSGowrishankar Muthukrishnan }; 4131dd9ddfSGowrishankar Muthukrishnan 4231dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qA_secp192r1[] = { 4331dd9ddfSGowrishankar Muthukrishnan 0x68, 0x88, 0x7B, 0x48, 0x77, 0xDF, 0x51, 0xDD, 4431dd9ddfSGowrishankar Muthukrishnan 0x4D, 0xC3, 0xD6, 0xFD, 0x11, 0xF0, 0xA2, 0x6F, 4531dd9ddfSGowrishankar Muthukrishnan 0x8F, 0xD3, 0x84, 0x43, 0x17, 0x91, 0x6E, 0x9A 4631dd9ddfSGowrishankar Muthukrishnan }; 4731dd9ddfSGowrishankar Muthukrishnan 4831dd9ddfSGowrishankar Muthukrishnan static uint8_t dB_secp192r1[] = { 4931dd9ddfSGowrishankar Muthukrishnan 0x63, 0x1F, 0x95, 0xBB, 0x4A, 0x67, 0x63, 0x2C, 5031dd9ddfSGowrishankar Muthukrishnan 0x9C, 0x47, 0x6E, 0xEE, 0x9A, 0xB6, 0x95, 0xAB, 5131dd9ddfSGowrishankar Muthukrishnan 0x24, 0x0A, 0x04, 0x99, 0x30, 0x7F, 0xCF, 0x62 5231dd9ddfSGowrishankar Muthukrishnan }; 5331dd9ddfSGowrishankar Muthukrishnan 5431dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qB_secp192r1[] = { 5531dd9ddfSGowrishankar Muthukrishnan 0x51, 0x9A, 0x12, 0x16, 0x80, 0xE0, 0x04, 0x54, 5631dd9ddfSGowrishankar Muthukrishnan 0x66, 0xBA, 0x21, 0xDF, 0x2E, 0xEE, 0x47, 0xF5, 5731dd9ddfSGowrishankar Muthukrishnan 0x97, 0x3B, 0x50, 0x05, 0x77, 0xEF, 0x13, 0xD5 5831dd9ddfSGowrishankar Muthukrishnan }; 5931dd9ddfSGowrishankar Muthukrishnan 6031dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qB_secp192r1[] = { 6131dd9ddfSGowrishankar Muthukrishnan 0xFF, 0x61, 0x3A, 0xB4, 0xD6, 0x4C, 0xEE, 0x3A, 6231dd9ddfSGowrishankar Muthukrishnan 0x20, 0x87, 0x5B, 0xDB, 0x10, 0xF9, 0x53, 0xF6, 6331dd9ddfSGowrishankar Muthukrishnan 0xB3, 0x0C, 0xA0, 0x72, 0xC6, 0x0A, 0xA5, 0x7F 6431dd9ddfSGowrishankar Muthukrishnan }; 6531dd9ddfSGowrishankar Muthukrishnan 6631dd9ddfSGowrishankar Muthukrishnan static uint8_t x_Z_secp192r1[] = { 6731dd9ddfSGowrishankar Muthukrishnan 0xAD, 0x42, 0x01, 0x82, 0x63, 0x3F, 0x85, 0x26, 6831dd9ddfSGowrishankar Muthukrishnan 0xBF, 0xE9, 0x54, 0xAC, 0xDA, 0x37, 0x6F, 0x05, 6931dd9ddfSGowrishankar Muthukrishnan 0xE5, 0xFF, 0x4F, 0x83, 0x7F, 0x54, 0xFE, 0xBE 7031dd9ddfSGowrishankar Muthukrishnan }; 7131dd9ddfSGowrishankar Muthukrishnan 7231dd9ddfSGowrishankar Muthukrishnan static uint8_t y_Z_secp192r1[] = { 7331dd9ddfSGowrishankar Muthukrishnan 0x43, 0x71, 0x54, 0x5E, 0xD7, 0x72, 0xA5, 0x97, 7431dd9ddfSGowrishankar Muthukrishnan 0x41, 0xD0, 0xED, 0xA3, 0x2C, 0x67, 0x11, 0x12, 7531dd9ddfSGowrishankar Muthukrishnan 0xB7, 0xFD, 0xDD, 0x51, 0x46, 0x1F, 0xCF, 0x32 7631dd9ddfSGowrishankar Muthukrishnan }; 7731dd9ddfSGowrishankar Muthukrishnan 7831dd9ddfSGowrishankar Muthukrishnan /** ECDH SECP192R1 elliptic curve param */ 7931dd9ddfSGowrishankar Muthukrishnan 8031dd9ddfSGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_secp192r1 = { 8131dd9ddfSGowrishankar Muthukrishnan .pubkey_qA_x = { 8231dd9ddfSGowrishankar Muthukrishnan .data = x_qA_secp192r1, 8331dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_qA_secp192r1), 8431dd9ddfSGowrishankar Muthukrishnan }, 8531dd9ddfSGowrishankar Muthukrishnan .pubkey_qA_y = { 8631dd9ddfSGowrishankar Muthukrishnan .data = y_qA_secp192r1, 8731dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_qA_secp192r1), 8831dd9ddfSGowrishankar Muthukrishnan }, 8931dd9ddfSGowrishankar Muthukrishnan .pubkey_qB_x = { 9031dd9ddfSGowrishankar Muthukrishnan .data = x_qB_secp192r1, 9131dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_qB_secp192r1), 9231dd9ddfSGowrishankar Muthukrishnan }, 9331dd9ddfSGowrishankar Muthukrishnan .pubkey_qB_y = { 9431dd9ddfSGowrishankar Muthukrishnan .data = y_qB_secp192r1, 9531dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_qB_secp192r1), 9631dd9ddfSGowrishankar Muthukrishnan }, 9731dd9ddfSGowrishankar Muthukrishnan .pkey_A = { 9831dd9ddfSGowrishankar Muthukrishnan .data = dA_secp192r1, 9931dd9ddfSGowrishankar Muthukrishnan .length = sizeof(dA_secp192r1), 10031dd9ddfSGowrishankar Muthukrishnan }, 10131dd9ddfSGowrishankar Muthukrishnan .pkey_B = { 10231dd9ddfSGowrishankar Muthukrishnan .data = dB_secp192r1, 10331dd9ddfSGowrishankar Muthukrishnan .length = sizeof(dB_secp192r1), 10431dd9ddfSGowrishankar Muthukrishnan }, 10531dd9ddfSGowrishankar Muthukrishnan .secret_x = { 10631dd9ddfSGowrishankar Muthukrishnan .data = x_Z_secp192r1, 10731dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_Z_secp192r1), 10831dd9ddfSGowrishankar Muthukrishnan }, 10931dd9ddfSGowrishankar Muthukrishnan .secret_y = { 11031dd9ddfSGowrishankar Muthukrishnan .data = y_Z_secp192r1, 11131dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_Z_secp192r1), 11231dd9ddfSGowrishankar Muthukrishnan }, 11331dd9ddfSGowrishankar Muthukrishnan .curve = RTE_CRYPTO_EC_GROUP_SECP192R1 11431dd9ddfSGowrishankar Muthukrishnan }; 11531dd9ddfSGowrishankar Muthukrishnan 11631dd9ddfSGowrishankar Muthukrishnan /** SECP224R1 (P-224 NIST) test vector */ 11731dd9ddfSGowrishankar Muthukrishnan 11831dd9ddfSGowrishankar Muthukrishnan static uint8_t dA_secp224r1[] = { 11931dd9ddfSGowrishankar Muthukrishnan 0xB5, 0x58, 0xEB, 0x6C, 0x28, 0x8D, 0xA7, 0x07, 12031dd9ddfSGowrishankar Muthukrishnan 0xBB, 0xB4, 0xF8, 0xFB, 0xAE, 0x2A, 0xB9, 0xE9, 12131dd9ddfSGowrishankar Muthukrishnan 0xCB, 0x62, 0xE3, 0xBC, 0x5C, 0x75, 0x73, 0xE2, 12231dd9ddfSGowrishankar Muthukrishnan 0x2E, 0x26, 0xD3, 0x7F 12331dd9ddfSGowrishankar Muthukrishnan }; 12431dd9ddfSGowrishankar Muthukrishnan 12531dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qA_secp224r1[] = { 12631dd9ddfSGowrishankar Muthukrishnan 0x49, 0xDF, 0xEF, 0x30, 0x9F, 0x81, 0x48, 0x8C, 12731dd9ddfSGowrishankar Muthukrishnan 0x30, 0x4C, 0xFF, 0x5A, 0xB3, 0xEE, 0x5A, 0x21, 12831dd9ddfSGowrishankar Muthukrishnan 0x54, 0x36, 0x7D, 0xC7, 0x83, 0x31, 0x50, 0xE0, 12931dd9ddfSGowrishankar Muthukrishnan 0xA5, 0x1F, 0x3E, 0xEB 13031dd9ddfSGowrishankar Muthukrishnan }; 13131dd9ddfSGowrishankar Muthukrishnan 13231dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qA_secp224r1[] = { 13331dd9ddfSGowrishankar Muthukrishnan 0x4F, 0x2B, 0x5E, 0xE4, 0x57, 0x62, 0xC4, 0xF6, 13431dd9ddfSGowrishankar Muthukrishnan 0x54, 0xC1, 0xA0, 0xC6, 0x7F, 0x54, 0xCF, 0x88, 13531dd9ddfSGowrishankar Muthukrishnan 0xB0, 0x16, 0xB5, 0x1B, 0xCE, 0x3D, 0x7C, 0x22, 13631dd9ddfSGowrishankar Muthukrishnan 0x8D, 0x57, 0xAD, 0xB4, 13731dd9ddfSGowrishankar Muthukrishnan }; 13831dd9ddfSGowrishankar Muthukrishnan 13931dd9ddfSGowrishankar Muthukrishnan static uint8_t dB_secp224r1[] = { 14031dd9ddfSGowrishankar Muthukrishnan 0xAC, 0x3B, 0x1A, 0xDD, 0x3D, 0x97, 0x70, 0xE6, 14131dd9ddfSGowrishankar Muthukrishnan 0xF6, 0xA7, 0x08, 0xEE, 0x9F, 0x3B, 0x8E, 0x0A, 14231dd9ddfSGowrishankar Muthukrishnan 0xB3, 0xB4, 0x80, 0xE9, 0xF2, 0x7F, 0x85, 0xC8, 14331dd9ddfSGowrishankar Muthukrishnan 0x8B, 0x5E, 0x6D, 0x18, 14431dd9ddfSGowrishankar Muthukrishnan }; 14531dd9ddfSGowrishankar Muthukrishnan 14631dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qB_secp224r1[] = { 14731dd9ddfSGowrishankar Muthukrishnan 0x6B, 0x3A, 0xC9, 0x6A, 0x8D, 0x0C, 0xDE, 0x6A, 14831dd9ddfSGowrishankar Muthukrishnan 0x55, 0x99, 0xBE, 0x80, 0x32, 0xED, 0xF1, 0x0C, 14931dd9ddfSGowrishankar Muthukrishnan 0x16, 0x2D, 0x0A, 0x8A, 0xD2, 0x19, 0x50, 0x6D, 15031dd9ddfSGowrishankar Muthukrishnan 0xCD, 0x42, 0xA2, 0x07, 15131dd9ddfSGowrishankar Muthukrishnan }; 15231dd9ddfSGowrishankar Muthukrishnan 15331dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qB_secp224r1[] = { 15431dd9ddfSGowrishankar Muthukrishnan 0xD4, 0x91, 0xBE, 0x99, 0xC2, 0x13, 0xA7, 0xD1, 15531dd9ddfSGowrishankar Muthukrishnan 0xCA, 0x37, 0x06, 0xDE, 0xBF, 0xE3, 0x05, 0xF3, 15631dd9ddfSGowrishankar Muthukrishnan 0x61, 0xAF, 0xCB, 0xB3, 0x3E, 0x26, 0x09, 0xC8, 15731dd9ddfSGowrishankar Muthukrishnan 0xB1, 0x61, 0x8A, 0xD5 15831dd9ddfSGowrishankar Muthukrishnan }; 15931dd9ddfSGowrishankar Muthukrishnan 16031dd9ddfSGowrishankar Muthukrishnan static uint8_t x_Z_secp224r1[] = { 16131dd9ddfSGowrishankar Muthukrishnan 0x52, 0x27, 0x2F, 0x50, 0xF4, 0x6F, 0x4E, 0xDC, 16231dd9ddfSGowrishankar Muthukrishnan 0x91, 0x51, 0x56, 0x90, 0x92, 0xF4, 0x6D, 0xF2, 16331dd9ddfSGowrishankar Muthukrishnan 0xD9, 0x6E, 0xCC, 0x3B, 0x6D, 0xC1, 0x71, 0x4A, 16431dd9ddfSGowrishankar Muthukrishnan 0x4E, 0xA9, 0x49, 0xFA 16531dd9ddfSGowrishankar Muthukrishnan }; 16631dd9ddfSGowrishankar Muthukrishnan 16731dd9ddfSGowrishankar Muthukrishnan static uint8_t y_Z_secp224r1[] = { 16831dd9ddfSGowrishankar Muthukrishnan 0x5F, 0x30, 0xC6, 0xAA, 0x36, 0xDD, 0xC4, 0x03, 16931dd9ddfSGowrishankar Muthukrishnan 0xC0, 0xAC, 0xB7, 0x12, 0xBB, 0x88, 0xF1, 0x76, 17031dd9ddfSGowrishankar Muthukrishnan 0x3C, 0x30, 0x46, 0xF6, 0xD9, 0x19, 0xBD, 0x9C, 17131dd9ddfSGowrishankar Muthukrishnan 0x52, 0x43, 0x22, 0xBF 17231dd9ddfSGowrishankar Muthukrishnan }; 17331dd9ddfSGowrishankar Muthukrishnan 17431dd9ddfSGowrishankar Muthukrishnan /** ECDH SECP224R1 elliptic curve param */ 17531dd9ddfSGowrishankar Muthukrishnan 17631dd9ddfSGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_secp224r1 = { 17731dd9ddfSGowrishankar Muthukrishnan .pubkey_qA_x = { 17831dd9ddfSGowrishankar Muthukrishnan .data = x_qA_secp224r1, 17931dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_qA_secp224r1), 18031dd9ddfSGowrishankar Muthukrishnan }, 18131dd9ddfSGowrishankar Muthukrishnan .pubkey_qA_y = { 18231dd9ddfSGowrishankar Muthukrishnan .data = y_qA_secp224r1, 18331dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_qA_secp224r1), 18431dd9ddfSGowrishankar Muthukrishnan }, 18531dd9ddfSGowrishankar Muthukrishnan .pubkey_qB_x = { 18631dd9ddfSGowrishankar Muthukrishnan .data = x_qB_secp224r1, 18731dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_qB_secp224r1), 18831dd9ddfSGowrishankar Muthukrishnan }, 18931dd9ddfSGowrishankar Muthukrishnan .pubkey_qB_y = { 19031dd9ddfSGowrishankar Muthukrishnan .data = y_qB_secp224r1, 19131dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_qB_secp224r1), 19231dd9ddfSGowrishankar Muthukrishnan }, 19331dd9ddfSGowrishankar Muthukrishnan .pkey_A = { 19431dd9ddfSGowrishankar Muthukrishnan .data = dA_secp224r1, 19531dd9ddfSGowrishankar Muthukrishnan .length = sizeof(dA_secp224r1), 19631dd9ddfSGowrishankar Muthukrishnan }, 19731dd9ddfSGowrishankar Muthukrishnan .pkey_B = { 19831dd9ddfSGowrishankar Muthukrishnan .data = dB_secp224r1, 19931dd9ddfSGowrishankar Muthukrishnan .length = sizeof(dB_secp224r1), 20031dd9ddfSGowrishankar Muthukrishnan }, 20131dd9ddfSGowrishankar Muthukrishnan .secret_x = { 20231dd9ddfSGowrishankar Muthukrishnan .data = x_Z_secp224r1, 20331dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_Z_secp224r1), 20431dd9ddfSGowrishankar Muthukrishnan }, 20531dd9ddfSGowrishankar Muthukrishnan .secret_y = { 20631dd9ddfSGowrishankar Muthukrishnan .data = y_Z_secp224r1, 20731dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_Z_secp224r1), 20831dd9ddfSGowrishankar Muthukrishnan }, 20931dd9ddfSGowrishankar Muthukrishnan .curve = RTE_CRYPTO_EC_GROUP_SECP224R1 21031dd9ddfSGowrishankar Muthukrishnan }; 21131dd9ddfSGowrishankar Muthukrishnan 21231dd9ddfSGowrishankar Muthukrishnan /** SECP256R1 (P-256 NIST) test vector */ 21331dd9ddfSGowrishankar Muthukrishnan 21431dd9ddfSGowrishankar Muthukrishnan static uint8_t dA_secp256r1[] = { 21531dd9ddfSGowrishankar Muthukrishnan 0x81, 0x42, 0x64, 0x14, 0x5F, 0x2F, 0x56, 0xF2, 21631dd9ddfSGowrishankar Muthukrishnan 0xE9, 0x6A, 0x8E, 0x33, 0x7A, 0x12, 0x84, 0x99, 21731dd9ddfSGowrishankar Muthukrishnan 0x3F, 0xAF, 0x43, 0x2A, 0x5A, 0xBC, 0xE5, 0x9E, 21831dd9ddfSGowrishankar Muthukrishnan 0x86, 0x7B, 0x72, 0x91, 0xD5, 0x07, 0xA3, 0xAF 21931dd9ddfSGowrishankar Muthukrishnan }; 22031dd9ddfSGowrishankar Muthukrishnan 22131dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qA_secp256r1[] = { 22231dd9ddfSGowrishankar Muthukrishnan 0x2A, 0xF5, 0x02, 0xF3, 0xBE, 0x89, 0x52, 0xF2, 22331dd9ddfSGowrishankar Muthukrishnan 0xC9, 0xB5, 0xA8, 0xD4, 0x16, 0x0D, 0x09, 0xE9, 22431dd9ddfSGowrishankar Muthukrishnan 0x71, 0x65, 0xBE, 0x50, 0xBC, 0x42, 0xAE, 0x4A, 22531dd9ddfSGowrishankar Muthukrishnan 0x5E, 0x8D, 0x3B, 0x4B, 0xA8, 0x3A, 0xEB, 0x15 22631dd9ddfSGowrishankar Muthukrishnan }; 22731dd9ddfSGowrishankar Muthukrishnan 22831dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qA_secp256r1[] = { 22931dd9ddfSGowrishankar Muthukrishnan 0xEB, 0x0F, 0xAF, 0x4C, 0xA9, 0x86, 0xC4, 0xD3, 23031dd9ddfSGowrishankar Muthukrishnan 0x86, 0x81, 0xA0, 0xF9, 0x87, 0x2D, 0x79, 0xD5, 23131dd9ddfSGowrishankar Muthukrishnan 0x67, 0x95, 0xBD, 0x4B, 0xFF, 0x6E, 0x6D, 0xE3, 23231dd9ddfSGowrishankar Muthukrishnan 0xC0, 0xF5, 0x01, 0x5E, 0xCE, 0x5E, 0xFD, 0x85 23331dd9ddfSGowrishankar Muthukrishnan }; 23431dd9ddfSGowrishankar Muthukrishnan 23531dd9ddfSGowrishankar Muthukrishnan static uint8_t dB_secp256r1[] = { 23631dd9ddfSGowrishankar Muthukrishnan 0x2C, 0xE1, 0x78, 0x8E, 0xC1, 0x97, 0xE0, 0x96, 23731dd9ddfSGowrishankar Muthukrishnan 0xDB, 0x95, 0xA2, 0x00, 0xCC, 0x0A, 0xB2, 0x6A, 23831dd9ddfSGowrishankar Muthukrishnan 0x19, 0xCE, 0x6B, 0xCC, 0xAD, 0x56, 0x2B, 0x8E, 23931dd9ddfSGowrishankar Muthukrishnan 0xEE, 0x1B, 0x59, 0x37, 0x61, 0xCF, 0x7F, 0x41 24031dd9ddfSGowrishankar Muthukrishnan }; 24131dd9ddfSGowrishankar Muthukrishnan 24231dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qB_secp256r1[] = { 24331dd9ddfSGowrishankar Muthukrishnan 0xB1, 0x20, 0xDE, 0x4A, 0xA3, 0x64, 0x92, 0x79, 24431dd9ddfSGowrishankar Muthukrishnan 0x53, 0x46, 0xE8, 0xDE, 0x6C, 0x2C, 0x86, 0x46, 24531dd9ddfSGowrishankar Muthukrishnan 0xAE, 0x06, 0xAA, 0xEA, 0x27, 0x9F, 0xA7, 0x75, 24631dd9ddfSGowrishankar Muthukrishnan 0xB3, 0xAB, 0x07, 0x15, 0xF6, 0xCE, 0x51, 0xB0 24731dd9ddfSGowrishankar Muthukrishnan }; 24831dd9ddfSGowrishankar Muthukrishnan 24931dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qB_secp256r1[] = { 25031dd9ddfSGowrishankar Muthukrishnan 0x9F, 0x1B, 0x7E, 0xEC, 0xE2, 0x0D, 0x7B, 0x5E, 25131dd9ddfSGowrishankar Muthukrishnan 0xD8, 0xEC, 0x68, 0x5F, 0xA3, 0xF0, 0x71, 0xD8, 25231dd9ddfSGowrishankar Muthukrishnan 0x37, 0x27, 0x02, 0x70, 0x92, 0xA8, 0x41, 0x13, 25331dd9ddfSGowrishankar Muthukrishnan 0x85, 0xC3, 0x4D, 0xDE, 0x57, 0x08, 0xB2, 0xB6 25431dd9ddfSGowrishankar Muthukrishnan }; 25531dd9ddfSGowrishankar Muthukrishnan 25631dd9ddfSGowrishankar Muthukrishnan static uint8_t x_Z_secp256r1[] = { 25731dd9ddfSGowrishankar Muthukrishnan 0xDD, 0x0F, 0x53, 0x96, 0x21, 0x9D, 0x1E, 0xA3, 25831dd9ddfSGowrishankar Muthukrishnan 0x93, 0x31, 0x04, 0x12, 0xD1, 0x9A, 0x08, 0xF1, 25931dd9ddfSGowrishankar Muthukrishnan 0xF5, 0x81, 0x1E, 0x9D, 0xC8, 0xEC, 0x8E, 0xEA, 26031dd9ddfSGowrishankar Muthukrishnan 0x7F, 0x80, 0xD2, 0x1C, 0x82, 0x0C, 0x27, 0x88 26131dd9ddfSGowrishankar Muthukrishnan }; 26231dd9ddfSGowrishankar Muthukrishnan 26331dd9ddfSGowrishankar Muthukrishnan static uint8_t y_Z_secp256r1[] = { 26431dd9ddfSGowrishankar Muthukrishnan 0x03, 0x57, 0xDC, 0xCD, 0x4C, 0x80, 0x4D, 0x0D, 26531dd9ddfSGowrishankar Muthukrishnan 0x8D, 0x33, 0xAA, 0x42, 0xB8, 0x48, 0x83, 0x4A, 26631dd9ddfSGowrishankar Muthukrishnan 0xA5, 0x60, 0x5F, 0x9A, 0xB0, 0xD3, 0x72, 0x39, 26731dd9ddfSGowrishankar Muthukrishnan 0xA1, 0x15, 0xBB, 0xB6, 0x47, 0x93, 0x6F, 0x50 26831dd9ddfSGowrishankar Muthukrishnan }; 26931dd9ddfSGowrishankar Muthukrishnan 27031dd9ddfSGowrishankar Muthukrishnan /** ECDH SECP256R1 elliptic curve param */ 27131dd9ddfSGowrishankar Muthukrishnan 27231dd9ddfSGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_secp256r1 = { 27331dd9ddfSGowrishankar Muthukrishnan .pubkey_qA_x = { 27431dd9ddfSGowrishankar Muthukrishnan .data = x_qA_secp256r1, 27531dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_qA_secp256r1), 27631dd9ddfSGowrishankar Muthukrishnan }, 27731dd9ddfSGowrishankar Muthukrishnan .pubkey_qA_y = { 27831dd9ddfSGowrishankar Muthukrishnan .data = y_qA_secp256r1, 27931dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_qA_secp256r1), 28031dd9ddfSGowrishankar Muthukrishnan }, 28131dd9ddfSGowrishankar Muthukrishnan .pubkey_qB_x = { 28231dd9ddfSGowrishankar Muthukrishnan .data = x_qB_secp256r1, 28331dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_qB_secp256r1), 28431dd9ddfSGowrishankar Muthukrishnan }, 28531dd9ddfSGowrishankar Muthukrishnan .pubkey_qB_y = { 28631dd9ddfSGowrishankar Muthukrishnan .data = y_qB_secp256r1, 28731dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_qB_secp256r1), 28831dd9ddfSGowrishankar Muthukrishnan }, 28931dd9ddfSGowrishankar Muthukrishnan .pkey_A = { 29031dd9ddfSGowrishankar Muthukrishnan .data = dA_secp256r1, 29131dd9ddfSGowrishankar Muthukrishnan .length = sizeof(dA_secp256r1), 29231dd9ddfSGowrishankar Muthukrishnan }, 29331dd9ddfSGowrishankar Muthukrishnan .pkey_B = { 29431dd9ddfSGowrishankar Muthukrishnan .data = dB_secp256r1, 29531dd9ddfSGowrishankar Muthukrishnan .length = sizeof(dB_secp256r1), 29631dd9ddfSGowrishankar Muthukrishnan }, 29731dd9ddfSGowrishankar Muthukrishnan .secret_x = { 29831dd9ddfSGowrishankar Muthukrishnan .data = x_Z_secp256r1, 29931dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_Z_secp256r1), 30031dd9ddfSGowrishankar Muthukrishnan }, 30131dd9ddfSGowrishankar Muthukrishnan .secret_y = { 30231dd9ddfSGowrishankar Muthukrishnan .data = y_Z_secp256r1, 30331dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_Z_secp256r1), 30431dd9ddfSGowrishankar Muthukrishnan }, 30531dd9ddfSGowrishankar Muthukrishnan .curve = RTE_CRYPTO_EC_GROUP_SECP256R1 30631dd9ddfSGowrishankar Muthukrishnan }; 30731dd9ddfSGowrishankar Muthukrishnan 30831dd9ddfSGowrishankar Muthukrishnan /** SECP384R1 (P-384 NIST) test vector */ 30931dd9ddfSGowrishankar Muthukrishnan 31031dd9ddfSGowrishankar Muthukrishnan static uint8_t dA_secp384r1[] = { 31131dd9ddfSGowrishankar Muthukrishnan 0xD2, 0x73, 0x35, 0xEA, 0x71, 0x66, 0x4A, 0xF2, 31231dd9ddfSGowrishankar Muthukrishnan 0x44, 0xDD, 0x14, 0xE9, 0xFD, 0x12, 0x60, 0x71, 31331dd9ddfSGowrishankar Muthukrishnan 0x5D, 0xFD, 0x8A, 0x79, 0x65, 0x57, 0x1C, 0x48, 31431dd9ddfSGowrishankar Muthukrishnan 0xD7, 0x09, 0xEE, 0x7A, 0x79, 0x62, 0xA1, 0x56, 31531dd9ddfSGowrishankar Muthukrishnan 0xD7, 0x06, 0xA9, 0x0C, 0xBC, 0xB5, 0xDF, 0x29, 31631dd9ddfSGowrishankar Muthukrishnan 0x86, 0xF0, 0x5F, 0xEA, 0xDB, 0x93, 0x76, 0xF1 31731dd9ddfSGowrishankar Muthukrishnan }; 31831dd9ddfSGowrishankar Muthukrishnan 31931dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qA_secp384r1[] = { 32031dd9ddfSGowrishankar Muthukrishnan 0x79, 0x31, 0x48, 0xF1, 0x78, 0x76, 0x34, 0xD5, 32131dd9ddfSGowrishankar Muthukrishnan 0xDA, 0x4C, 0x6D, 0x90, 0x74, 0x41, 0x7D, 0x05, 32231dd9ddfSGowrishankar Muthukrishnan 0xE0, 0x57, 0xAB, 0x62, 0xF8, 0x20, 0x54, 0xD1, 32331dd9ddfSGowrishankar Muthukrishnan 0x0E, 0xE6, 0xB0, 0x40, 0x3D, 0x62, 0x79, 0x54, 32431dd9ddfSGowrishankar Muthukrishnan 0x7E, 0x6A, 0x8E, 0xA9, 0xD1, 0xFD, 0x77, 0x42, 32531dd9ddfSGowrishankar Muthukrishnan 0x7D, 0x01, 0x6F, 0xE2, 0x7A, 0x8B, 0x8C, 0x66 32631dd9ddfSGowrishankar Muthukrishnan }; 32731dd9ddfSGowrishankar Muthukrishnan 32831dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qA_secp384r1[] = { 32931dd9ddfSGowrishankar Muthukrishnan 0xC6, 0xC4, 0x12, 0x94, 0x33, 0x1D, 0x23, 0xE6, 33031dd9ddfSGowrishankar Muthukrishnan 0xF4, 0x80, 0xF4, 0xFB, 0x4C, 0xD4, 0x05, 0x04, 33131dd9ddfSGowrishankar Muthukrishnan 0xC9, 0x47, 0x39, 0x2E, 0x94, 0xF4, 0xC3, 0xF0, 33231dd9ddfSGowrishankar Muthukrishnan 0x6B, 0x8F, 0x39, 0x8B, 0xB2, 0x9E, 0x42, 0x36, 33331dd9ddfSGowrishankar Muthukrishnan 0x8F, 0x7A, 0x68, 0x59, 0x23, 0xDE, 0x3B, 0x67, 33431dd9ddfSGowrishankar Muthukrishnan 0xBA, 0xCE, 0xD2, 0x14, 0xA1, 0xA1, 0xD1, 0x28 33531dd9ddfSGowrishankar Muthukrishnan }; 33631dd9ddfSGowrishankar Muthukrishnan 33731dd9ddfSGowrishankar Muthukrishnan static uint8_t dB_secp384r1[] = { 33831dd9ddfSGowrishankar Muthukrishnan 0x52, 0xD1, 0x79, 0x1F, 0xDB, 0x4B, 0x70, 0xF8, 33931dd9ddfSGowrishankar Muthukrishnan 0x9C, 0x0F, 0x00, 0xD4, 0x56, 0xC2, 0xF7, 0x02, 34031dd9ddfSGowrishankar Muthukrishnan 0x3B, 0x61, 0x25, 0x26, 0x2C, 0x36, 0xA7, 0xDF, 34131dd9ddfSGowrishankar Muthukrishnan 0x1F, 0x80, 0x23, 0x11, 0x21, 0xCC, 0xE3, 0xD3, 34231dd9ddfSGowrishankar Muthukrishnan 0x9B, 0xE5, 0x2E, 0x00, 0xC1, 0x94, 0xA4, 0x13, 34331dd9ddfSGowrishankar Muthukrishnan 0x2C, 0x4A, 0x6C, 0x76, 0x8B, 0xCD, 0x94, 0xD2 34431dd9ddfSGowrishankar Muthukrishnan }; 34531dd9ddfSGowrishankar Muthukrishnan 34631dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qB_secp384r1[] = { 34731dd9ddfSGowrishankar Muthukrishnan 0x5C, 0xD4, 0x2A, 0xB9, 0xC4, 0x1B, 0x53, 0x47, 34831dd9ddfSGowrishankar Muthukrishnan 0xF7, 0x4B, 0x8D, 0x4E, 0xFB, 0x70, 0x8B, 0x3D, 34931dd9ddfSGowrishankar Muthukrishnan 0x5B, 0x36, 0xDB, 0x65, 0x91, 0x53, 0x59, 0xB4, 35031dd9ddfSGowrishankar Muthukrishnan 0x4A, 0xBC, 0x17, 0x64, 0x7B, 0x6B, 0x99, 0x99, 35131dd9ddfSGowrishankar Muthukrishnan 0x78, 0x9D, 0x72, 0xA8, 0x48, 0x65, 0xAE, 0x2F, 35231dd9ddfSGowrishankar Muthukrishnan 0x22, 0x3F, 0x12, 0xB5, 0xA1, 0xAB, 0xC1, 0x20 35331dd9ddfSGowrishankar Muthukrishnan }; 35431dd9ddfSGowrishankar Muthukrishnan 35531dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qB_secp384r1[] = { 35631dd9ddfSGowrishankar Muthukrishnan 0xE1, 0x71, 0x45, 0x8F, 0xEA, 0xA9, 0x39, 0xAA, 35731dd9ddfSGowrishankar Muthukrishnan 0xA3, 0xA8, 0xBF, 0xAC, 0x46, 0xB4, 0x04, 0xBD, 35831dd9ddfSGowrishankar Muthukrishnan 0x8F, 0x6D, 0x5B, 0x34, 0x8C, 0x0F, 0xA4, 0xD8, 35931dd9ddfSGowrishankar Muthukrishnan 0x0C, 0xEC, 0xA1, 0x63, 0x56, 0xCA, 0x93, 0x32, 36031dd9ddfSGowrishankar Muthukrishnan 0x40, 0xBD, 0xE8, 0x72, 0x34, 0x15, 0xA8, 0xEC, 36131dd9ddfSGowrishankar Muthukrishnan 0xE0, 0x35, 0xB0, 0xED, 0xF3, 0x67, 0x55, 0xDE 36231dd9ddfSGowrishankar Muthukrishnan }; 36331dd9ddfSGowrishankar Muthukrishnan 36431dd9ddfSGowrishankar Muthukrishnan static uint8_t x_Z_secp384r1[] = { 36531dd9ddfSGowrishankar Muthukrishnan 0x5E, 0xA1, 0xFC, 0x4A, 0xF7, 0x25, 0x6D, 0x20, 36631dd9ddfSGowrishankar Muthukrishnan 0x55, 0x98, 0x1B, 0x11, 0x05, 0x75, 0xE0, 0xA8, 36731dd9ddfSGowrishankar Muthukrishnan 0xCA, 0xE5, 0x31, 0x60, 0x13, 0x7D, 0x90, 0x4C, 36831dd9ddfSGowrishankar Muthukrishnan 0x59, 0xD9, 0x26, 0xEB, 0x1B, 0x84, 0x56, 0xE4, 36931dd9ddfSGowrishankar Muthukrishnan 0x27, 0xAA, 0x8A, 0x45, 0x40, 0x88, 0x4C, 0x37, 37031dd9ddfSGowrishankar Muthukrishnan 0xDE, 0x15, 0x9A, 0x58, 0x02, 0x8A, 0xBC, 0x0E 37131dd9ddfSGowrishankar Muthukrishnan }; 37231dd9ddfSGowrishankar Muthukrishnan 37331dd9ddfSGowrishankar Muthukrishnan static uint8_t y_Z_secp384r1[] = { 37431dd9ddfSGowrishankar Muthukrishnan 0x0C, 0xC5, 0x9E, 0x4B, 0x04, 0x64, 0x14, 0xA8, 37531dd9ddfSGowrishankar Muthukrishnan 0x1C, 0x8A, 0x3B, 0xDF, 0xDC, 0xA9, 0x25, 0x26, 37631dd9ddfSGowrishankar Muthukrishnan 0xC4, 0x87, 0x69, 0xDD, 0x8D, 0x31, 0x27, 0xCA, 37731dd9ddfSGowrishankar Muthukrishnan 0xA9, 0x9B, 0x36, 0x32, 0xD1, 0x91, 0x39, 0x42, 37831dd9ddfSGowrishankar Muthukrishnan 0xDE, 0x36, 0x2E, 0xAF, 0xAA, 0x96, 0x23, 0x79, 37931dd9ddfSGowrishankar Muthukrishnan 0x37, 0x4D, 0x9F, 0x3F, 0x06, 0x68, 0x41, 0xCA 38031dd9ddfSGowrishankar Muthukrishnan }; 38131dd9ddfSGowrishankar Muthukrishnan 38231dd9ddfSGowrishankar Muthukrishnan /** ECDH SECP384R1 elliptic curve param */ 38331dd9ddfSGowrishankar Muthukrishnan 38431dd9ddfSGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_secp384r1 = { 38531dd9ddfSGowrishankar Muthukrishnan .pubkey_qA_x = { 38631dd9ddfSGowrishankar Muthukrishnan .data = x_qA_secp384r1, 38731dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_qA_secp384r1), 38831dd9ddfSGowrishankar Muthukrishnan }, 38931dd9ddfSGowrishankar Muthukrishnan .pubkey_qA_y = { 39031dd9ddfSGowrishankar Muthukrishnan .data = y_qA_secp384r1, 39131dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_qA_secp384r1), 39231dd9ddfSGowrishankar Muthukrishnan }, 39331dd9ddfSGowrishankar Muthukrishnan .pubkey_qB_x = { 39431dd9ddfSGowrishankar Muthukrishnan .data = x_qB_secp384r1, 39531dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_qB_secp384r1), 39631dd9ddfSGowrishankar Muthukrishnan }, 39731dd9ddfSGowrishankar Muthukrishnan .pubkey_qB_y = { 39831dd9ddfSGowrishankar Muthukrishnan .data = y_qB_secp384r1, 39931dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_qB_secp384r1), 40031dd9ddfSGowrishankar Muthukrishnan }, 40131dd9ddfSGowrishankar Muthukrishnan .pkey_A = { 40231dd9ddfSGowrishankar Muthukrishnan .data = dA_secp384r1, 40331dd9ddfSGowrishankar Muthukrishnan .length = sizeof(dA_secp384r1), 40431dd9ddfSGowrishankar Muthukrishnan }, 40531dd9ddfSGowrishankar Muthukrishnan .pkey_B = { 40631dd9ddfSGowrishankar Muthukrishnan .data = dB_secp384r1, 40731dd9ddfSGowrishankar Muthukrishnan .length = sizeof(dB_secp384r1), 40831dd9ddfSGowrishankar Muthukrishnan }, 40931dd9ddfSGowrishankar Muthukrishnan .secret_x = { 41031dd9ddfSGowrishankar Muthukrishnan .data = x_Z_secp384r1, 41131dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_Z_secp384r1), 41231dd9ddfSGowrishankar Muthukrishnan }, 41331dd9ddfSGowrishankar Muthukrishnan .secret_y = { 41431dd9ddfSGowrishankar Muthukrishnan .data = y_Z_secp384r1, 41531dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_Z_secp384r1), 41631dd9ddfSGowrishankar Muthukrishnan }, 41731dd9ddfSGowrishankar Muthukrishnan .curve = RTE_CRYPTO_EC_GROUP_SECP384R1 41831dd9ddfSGowrishankar Muthukrishnan }; 41931dd9ddfSGowrishankar Muthukrishnan 42031dd9ddfSGowrishankar Muthukrishnan /** SECP521R1 (P-521 NIST) test vector */ 42131dd9ddfSGowrishankar Muthukrishnan 42231dd9ddfSGowrishankar Muthukrishnan static uint8_t dA_secp521r1[] = { 42331dd9ddfSGowrishankar Muthukrishnan 0x01, 0x13, 0xF8, 0x2D, 0xA8, 0x25, 0x73, 0x5E, 42431dd9ddfSGowrishankar Muthukrishnan 0x3D, 0x97, 0x27, 0x66, 0x83, 0xB2, 0xB7, 0x42, 42531dd9ddfSGowrishankar Muthukrishnan 0x77, 0xBA, 0xD2, 0x73, 0x35, 0xEA, 0x71, 0x66, 42631dd9ddfSGowrishankar Muthukrishnan 0x4A, 0xF2, 0x43, 0x0C, 0xC4, 0xF3, 0x34, 0x59, 42731dd9ddfSGowrishankar Muthukrishnan 0xB9, 0x66, 0x9E, 0xE7, 0x8B, 0x3F, 0xFB, 0x9B, 42831dd9ddfSGowrishankar Muthukrishnan 0x86, 0x83, 0x01, 0x5D, 0x34, 0x4D, 0xCB, 0xFE, 42931dd9ddfSGowrishankar Muthukrishnan 0xF6, 0xFB, 0x9A, 0xF4, 0xC6, 0xC4, 0x70, 0xBE, 43031dd9ddfSGowrishankar Muthukrishnan 0x25, 0x45, 0x16, 0xCD, 0x3C, 0x1A, 0x1F, 0xB4, 43131dd9ddfSGowrishankar Muthukrishnan 0x73, 0x62 43231dd9ddfSGowrishankar Muthukrishnan }; 43331dd9ddfSGowrishankar Muthukrishnan 43431dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qA_secp521r1[] = { 43531dd9ddfSGowrishankar Muthukrishnan 0x01, 0xEB, 0xB3, 0x4D, 0xD7, 0x57, 0x21, 0xAB, 43631dd9ddfSGowrishankar Muthukrishnan 0xF8, 0xAD, 0xC9, 0xDB, 0xED, 0x17, 0x88, 0x9C, 43731dd9ddfSGowrishankar Muthukrishnan 0xBB, 0x97, 0x65, 0xD9, 0x0A, 0x7C, 0x60, 0xF2, 43831dd9ddfSGowrishankar Muthukrishnan 0xCE, 0xF0, 0x07, 0xBB, 0x0F, 0x2B, 0x26, 0xE1, 43931dd9ddfSGowrishankar Muthukrishnan 0x48, 0x81, 0xFD, 0x44, 0x42, 0xE6, 0x89, 0xD6, 44031dd9ddfSGowrishankar Muthukrishnan 0x1C, 0xB2, 0xDD, 0x04, 0x6E, 0xE3, 0x0E, 0x3F, 44131dd9ddfSGowrishankar Muthukrishnan 0xFD, 0x20, 0xF9, 0xA4, 0x5B, 0xBD, 0xF6, 0x41, 44231dd9ddfSGowrishankar Muthukrishnan 0x3D, 0x58, 0x3A, 0x2D, 0xBF, 0x59, 0x92, 0x4F, 44331dd9ddfSGowrishankar Muthukrishnan 0xD3, 0x5C 44431dd9ddfSGowrishankar Muthukrishnan }; 44531dd9ddfSGowrishankar Muthukrishnan 44631dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qA_secp521r1[] = { 44731dd9ddfSGowrishankar Muthukrishnan 0x00, 0xF6, 0xB6, 0x32, 0xD1, 0x94, 0xC0, 0x38, 44831dd9ddfSGowrishankar Muthukrishnan 0x8E, 0x22, 0xD8, 0x43, 0x7E, 0x55, 0x8C, 0x55, 44931dd9ddfSGowrishankar Muthukrishnan 0x2A, 0xE1, 0x95, 0xAD, 0xFD, 0x15, 0x3F, 0x92, 45031dd9ddfSGowrishankar Muthukrishnan 0xD7, 0x49, 0x08, 0x35, 0x1B, 0x2F, 0x8C, 0x4E, 45131dd9ddfSGowrishankar Muthukrishnan 0xDA, 0x94, 0xED, 0xB0, 0x91, 0x6D, 0x1B, 0x53, 45231dd9ddfSGowrishankar Muthukrishnan 0xC0, 0x20, 0xB5, 0xEE, 0xCA, 0xED, 0x1A, 0x5F, 45331dd9ddfSGowrishankar Muthukrishnan 0xC3, 0x8A, 0x23, 0x3E, 0x48, 0x30, 0x58, 0x7B, 45431dd9ddfSGowrishankar Muthukrishnan 0xB2, 0xEE, 0x34, 0x89, 0xB3, 0xB4, 0x2A, 0x5A, 45531dd9ddfSGowrishankar Muthukrishnan 0x86, 0xA4 45631dd9ddfSGowrishankar Muthukrishnan }; 45731dd9ddfSGowrishankar Muthukrishnan 45831dd9ddfSGowrishankar Muthukrishnan static uint8_t dB_secp521r1[] = { 45931dd9ddfSGowrishankar Muthukrishnan 0x00, 0xCE, 0xE3, 0x48, 0x0D, 0x86, 0x45, 0xA1, 46031dd9ddfSGowrishankar Muthukrishnan 0x7D, 0x24, 0x9F, 0x27, 0x76, 0xD2, 0x8B, 0xAE, 46131dd9ddfSGowrishankar Muthukrishnan 0x61, 0x69, 0x52, 0xD1, 0x79, 0x1F, 0xDB, 0x4B, 46231dd9ddfSGowrishankar Muthukrishnan 0x70, 0xF7, 0xC3, 0x37, 0x87, 0x32, 0xAA, 0x1B, 46331dd9ddfSGowrishankar Muthukrishnan 0x22, 0x92, 0x84, 0x48, 0xBC, 0xD1, 0xDC, 0x24, 46431dd9ddfSGowrishankar Muthukrishnan 0x96, 0xD4, 0x35, 0xB0, 0x10, 0x48, 0x06, 0x6E, 46531dd9ddfSGowrishankar Muthukrishnan 0xBE, 0x4F, 0x72, 0x90, 0x3C, 0x36, 0x1B, 0x1A, 46631dd9ddfSGowrishankar Muthukrishnan 0x9D, 0xC1, 0x19, 0x3D, 0xC2, 0xC9, 0xD0, 0x89, 46731dd9ddfSGowrishankar Muthukrishnan 0x1B, 0x96 46831dd9ddfSGowrishankar Muthukrishnan }; 46931dd9ddfSGowrishankar Muthukrishnan 47031dd9ddfSGowrishankar Muthukrishnan static uint8_t x_qB_secp521r1[] = { 47131dd9ddfSGowrishankar Muthukrishnan 0x01, 0x0E, 0xBF, 0xAF, 0xC6, 0xE8, 0x5E, 0x08, 47231dd9ddfSGowrishankar Muthukrishnan 0xD2, 0x4B, 0xFF, 0xFC, 0xC1, 0xA4, 0x51, 0x1D, 47331dd9ddfSGowrishankar Muthukrishnan 0xB0, 0xE6, 0x34, 0xBE, 0xEB, 0x1B, 0x6D, 0xEC, 47431dd9ddfSGowrishankar Muthukrishnan 0x8C, 0x59, 0x39, 0xAE, 0x44, 0x76, 0x62, 0x01, 47531dd9ddfSGowrishankar Muthukrishnan 0xAF, 0x62, 0x00, 0x43, 0x0B, 0xA9, 0x7C, 0x8A, 47631dd9ddfSGowrishankar Muthukrishnan 0xC6, 0xA0, 0xE9, 0xF0, 0x8B, 0x33, 0xCE, 0x7E, 47731dd9ddfSGowrishankar Muthukrishnan 0x9F, 0xEE, 0xB5, 0xBA, 0x4E, 0xE5, 0xE0, 0xD8, 47831dd9ddfSGowrishankar Muthukrishnan 0x15, 0x10, 0xC2, 0x42, 0x95, 0xB8, 0xA0, 0x8D, 47931dd9ddfSGowrishankar Muthukrishnan 0x02, 0x35 48031dd9ddfSGowrishankar Muthukrishnan }; 48131dd9ddfSGowrishankar Muthukrishnan 48231dd9ddfSGowrishankar Muthukrishnan static uint8_t y_qB_secp521r1[] = { 48331dd9ddfSGowrishankar Muthukrishnan 0x00, 0xA4, 0xA6, 0xEC, 0x30, 0x0D, 0xF9, 0xE2, 48431dd9ddfSGowrishankar Muthukrishnan 0x57, 0xB0, 0x37, 0x2B, 0x5E, 0x7A, 0xBF, 0xEF, 48531dd9ddfSGowrishankar Muthukrishnan 0x09, 0x34, 0x36, 0x71, 0x9A, 0x77, 0x88, 0x7E, 48631dd9ddfSGowrishankar Muthukrishnan 0xBB, 0x0B, 0x18, 0xCF, 0x80, 0x99, 0xB9, 0xF4, 48731dd9ddfSGowrishankar Muthukrishnan 0x21, 0x2B, 0x6E, 0x30, 0xA1, 0x41, 0x9C, 0x18, 48831dd9ddfSGowrishankar Muthukrishnan 0xE0, 0x29, 0xD3, 0x68, 0x63, 0xCC, 0x9D, 0x44, 48931dd9ddfSGowrishankar Muthukrishnan 0x8F, 0x4D, 0xBA, 0x4D, 0x2A, 0x0E, 0x60, 0x71, 49031dd9ddfSGowrishankar Muthukrishnan 0x1B, 0xE5, 0x72, 0x91, 0x5F, 0xBD, 0x4F, 0xEF, 49131dd9ddfSGowrishankar Muthukrishnan 0x26, 0x95 49231dd9ddfSGowrishankar Muthukrishnan }; 49331dd9ddfSGowrishankar Muthukrishnan 49431dd9ddfSGowrishankar Muthukrishnan static uint8_t x_Z_secp521r1[] = { 49531dd9ddfSGowrishankar Muthukrishnan 0x00, 0xCD, 0xEA, 0x89, 0x62, 0x1C, 0xFA, 0x46, 49631dd9ddfSGowrishankar Muthukrishnan 0xB1, 0x32, 0xF9, 0xE4, 0xCF, 0xE2, 0x26, 0x1C, 49731dd9ddfSGowrishankar Muthukrishnan 0xDE, 0x2D, 0x43, 0x68, 0xEB, 0x56, 0x56, 0x63, 49831dd9ddfSGowrishankar Muthukrishnan 0x4C, 0x7C, 0xC9, 0x8C, 0x7A, 0x00, 0xCD, 0xE5, 49931dd9ddfSGowrishankar Muthukrishnan 0x4E, 0xD1, 0x86, 0x6A, 0x0D, 0xD3, 0xE6, 0x12, 50031dd9ddfSGowrishankar Muthukrishnan 0x6C, 0x9D, 0x2F, 0x84, 0x5D, 0xAF, 0xF8, 0x2C, 50131dd9ddfSGowrishankar Muthukrishnan 0xEB, 0x1D, 0xA0, 0x8F, 0x5D, 0x87, 0x52, 0x1B, 50231dd9ddfSGowrishankar Muthukrishnan 0xB0, 0xEB, 0xEC, 0xA7, 0x79, 0x11, 0x16, 0x9C, 50331dd9ddfSGowrishankar Muthukrishnan 0x20, 0xCC 50431dd9ddfSGowrishankar Muthukrishnan }; 50531dd9ddfSGowrishankar Muthukrishnan 50631dd9ddfSGowrishankar Muthukrishnan static uint8_t y_Z_secp521r1[] = { 50731dd9ddfSGowrishankar Muthukrishnan 0x00, 0xF9, 0xA7, 0x16, 0x41, 0x02, 0x9B, 0x7F, 50831dd9ddfSGowrishankar Muthukrishnan 0xC1, 0xA8, 0x08, 0xAD, 0x07, 0xCD, 0x48, 0x61, 50931dd9ddfSGowrishankar Muthukrishnan 0xE8, 0x68, 0x61, 0x4B, 0x86, 0x5A, 0xFB, 0xEC, 51031dd9ddfSGowrishankar Muthukrishnan 0xAB, 0x1F, 0x2B, 0xD4, 0xD8, 0xB5, 0x5E, 0xBC, 51131dd9ddfSGowrishankar Muthukrishnan 0xB5, 0xE3, 0xA5, 0x31, 0x43, 0xCE, 0xB2, 0xC5, 51231dd9ddfSGowrishankar Muthukrishnan 0x11, 0xB1, 0xAE, 0x0A, 0xF5, 0xAC, 0x82, 0x7F, 51331dd9ddfSGowrishankar Muthukrishnan 0x60, 0xF2, 0xFD, 0x87, 0x25, 0x65, 0xAC, 0x5C, 51431dd9ddfSGowrishankar Muthukrishnan 0xA0, 0xA1, 0x64, 0x03, 0x8F, 0xE9, 0x80, 0xA7, 51531dd9ddfSGowrishankar Muthukrishnan 0xE4, 0xBD 51631dd9ddfSGowrishankar Muthukrishnan }; 51731dd9ddfSGowrishankar Muthukrishnan 51831dd9ddfSGowrishankar Muthukrishnan /** ECDH SECP521R1 elliptic curve param */ 51931dd9ddfSGowrishankar Muthukrishnan 52031dd9ddfSGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_secp521r1 = { 52131dd9ddfSGowrishankar Muthukrishnan .pubkey_qA_x = { 52231dd9ddfSGowrishankar Muthukrishnan .data = x_qA_secp521r1, 52331dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_qA_secp521r1), 52431dd9ddfSGowrishankar Muthukrishnan }, 52531dd9ddfSGowrishankar Muthukrishnan .pubkey_qA_y = { 52631dd9ddfSGowrishankar Muthukrishnan .data = y_qA_secp521r1, 52731dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_qA_secp521r1), 52831dd9ddfSGowrishankar Muthukrishnan }, 52931dd9ddfSGowrishankar Muthukrishnan .pubkey_qB_x = { 53031dd9ddfSGowrishankar Muthukrishnan .data = x_qB_secp521r1, 53131dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_qB_secp521r1), 53231dd9ddfSGowrishankar Muthukrishnan }, 53331dd9ddfSGowrishankar Muthukrishnan .pubkey_qB_y = { 53431dd9ddfSGowrishankar Muthukrishnan .data = y_qB_secp521r1, 53531dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_qB_secp521r1), 53631dd9ddfSGowrishankar Muthukrishnan }, 53731dd9ddfSGowrishankar Muthukrishnan .pkey_A = { 53831dd9ddfSGowrishankar Muthukrishnan .data = dA_secp521r1, 53931dd9ddfSGowrishankar Muthukrishnan .length = sizeof(dA_secp521r1), 54031dd9ddfSGowrishankar Muthukrishnan }, 54131dd9ddfSGowrishankar Muthukrishnan .pkey_B = { 54231dd9ddfSGowrishankar Muthukrishnan .data = dB_secp521r1, 54331dd9ddfSGowrishankar Muthukrishnan .length = sizeof(dB_secp521r1), 54431dd9ddfSGowrishankar Muthukrishnan }, 54531dd9ddfSGowrishankar Muthukrishnan .secret_x = { 54631dd9ddfSGowrishankar Muthukrishnan .data = x_Z_secp521r1, 54731dd9ddfSGowrishankar Muthukrishnan .length = sizeof(x_Z_secp521r1), 54831dd9ddfSGowrishankar Muthukrishnan }, 54931dd9ddfSGowrishankar Muthukrishnan .secret_y = { 55031dd9ddfSGowrishankar Muthukrishnan .data = y_Z_secp521r1, 55131dd9ddfSGowrishankar Muthukrishnan .length = sizeof(y_Z_secp521r1), 55231dd9ddfSGowrishankar Muthukrishnan }, 55331dd9ddfSGowrishankar Muthukrishnan .curve = RTE_CRYPTO_EC_GROUP_SECP521R1 55431dd9ddfSGowrishankar Muthukrishnan }; 55531dd9ddfSGowrishankar Muthukrishnan 556*2fba5232SGowrishankar Muthukrishnan /** ED25519 test vector */ 557*2fba5232SGowrishankar Muthukrishnan 558*2fba5232SGowrishankar Muthukrishnan static uint8_t privkey_ed25519[] = { 559*2fba5232SGowrishankar Muthukrishnan 0x83, 0x3f, 0xe6, 0x24, 0x09, 0x23, 0x7b, 0x9d, 560*2fba5232SGowrishankar Muthukrishnan 0x62, 0xec, 0x77, 0x58, 0x75, 0x20, 0x91, 0x1e, 561*2fba5232SGowrishankar Muthukrishnan 0x9a, 0x75, 0x9c, 0xec, 0x1d, 0x19, 0x75, 0x5b, 562*2fba5232SGowrishankar Muthukrishnan 0x7d, 0xa9, 0x01, 0xb9, 0x6d, 0xca, 0x3d, 0x42 563*2fba5232SGowrishankar Muthukrishnan }; 564*2fba5232SGowrishankar Muthukrishnan 565*2fba5232SGowrishankar Muthukrishnan static uint8_t pubkey_ed25519[] = { 566*2fba5232SGowrishankar Muthukrishnan 0xec, 0x17, 0x2b, 0x93, 0xad, 0x5e, 0x56, 0x3b, 567*2fba5232SGowrishankar Muthukrishnan 0xf4, 0x93, 0x2c, 0x70, 0xe1, 0x24, 0x50, 0x34, 568*2fba5232SGowrishankar Muthukrishnan 0xc3, 0x54, 0x67, 0xef, 0x2e, 0xfd, 0x4d, 0x64, 569*2fba5232SGowrishankar Muthukrishnan 0xeb, 0xf8, 0x19, 0x68, 0x34, 0x67, 0xe2, 0xbf 570*2fba5232SGowrishankar Muthukrishnan }; 571*2fba5232SGowrishankar Muthukrishnan 572*2fba5232SGowrishankar Muthukrishnan /** ECDH ED25519 elliptic curve param */ 573*2fba5232SGowrishankar Muthukrishnan 574*2fba5232SGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_ed25519 = { 575*2fba5232SGowrishankar Muthukrishnan .pubkey_qA_x = { 576*2fba5232SGowrishankar Muthukrishnan .data = pubkey_ed25519, 577*2fba5232SGowrishankar Muthukrishnan .length = sizeof(pubkey_ed25519), 578*2fba5232SGowrishankar Muthukrishnan }, 579*2fba5232SGowrishankar Muthukrishnan .pubkey_qA_y = { 580*2fba5232SGowrishankar Muthukrishnan }, 581*2fba5232SGowrishankar Muthukrishnan .pubkey_qB_x = { 582*2fba5232SGowrishankar Muthukrishnan }, 583*2fba5232SGowrishankar Muthukrishnan .pubkey_qB_y = { 584*2fba5232SGowrishankar Muthukrishnan }, 585*2fba5232SGowrishankar Muthukrishnan .pkey_A = { 586*2fba5232SGowrishankar Muthukrishnan .data = privkey_ed25519, 587*2fba5232SGowrishankar Muthukrishnan .length = sizeof(privkey_ed25519), 588*2fba5232SGowrishankar Muthukrishnan }, 589*2fba5232SGowrishankar Muthukrishnan .pkey_B = { 590*2fba5232SGowrishankar Muthukrishnan }, 591*2fba5232SGowrishankar Muthukrishnan .secret_x = { 592*2fba5232SGowrishankar Muthukrishnan }, 593*2fba5232SGowrishankar Muthukrishnan .secret_y = { 594*2fba5232SGowrishankar Muthukrishnan }, 595*2fba5232SGowrishankar Muthukrishnan .curve = RTE_CRYPTO_EC_GROUP_ED25519 596*2fba5232SGowrishankar Muthukrishnan }; 597*2fba5232SGowrishankar Muthukrishnan 598*2fba5232SGowrishankar Muthukrishnan /** ED448 test vector */ 599*2fba5232SGowrishankar Muthukrishnan 600*2fba5232SGowrishankar Muthukrishnan static uint8_t privkey_ed448[] = { 601*2fba5232SGowrishankar Muthukrishnan 0xd6, 0x5d, 0xf3, 0x41, 0xad, 0x13, 0xe0, 0x08, 602*2fba5232SGowrishankar Muthukrishnan 0x56, 0x76, 0x88, 0xba, 0xed, 0xda, 0x8e, 0x9d, 603*2fba5232SGowrishankar Muthukrishnan 0xcd, 0xc1, 0x7d, 0xc0, 0x24, 0x97, 0x4e, 0xa5, 604*2fba5232SGowrishankar Muthukrishnan 0xb4, 0x22, 0x7b, 0x65, 0x30, 0xe3, 0x39, 0xbf, 605*2fba5232SGowrishankar Muthukrishnan 0xf2, 0x1f, 0x99, 0xe6, 0x8c, 0xa6, 0x96, 0x8f, 606*2fba5232SGowrishankar Muthukrishnan 0x3c, 0xca, 0x6d, 0xfe, 0x0f, 0xb9, 0xf4, 0xfa, 607*2fba5232SGowrishankar Muthukrishnan 0xb4, 0xfa, 0x13, 0x5d, 0x55, 0x42, 0xea, 0x3f, 608*2fba5232SGowrishankar Muthukrishnan 0x01 609*2fba5232SGowrishankar Muthukrishnan }; 610*2fba5232SGowrishankar Muthukrishnan 611*2fba5232SGowrishankar Muthukrishnan static uint8_t pubkey_ed448[] = { 612*2fba5232SGowrishankar Muthukrishnan 0xdf, 0x97, 0x05, 0xf5, 0x8e, 0xdb, 0xab, 0x80, 613*2fba5232SGowrishankar Muthukrishnan 0x2c, 0x7f, 0x83, 0x63, 0xcf, 0xe5, 0x56, 0x0a, 614*2fba5232SGowrishankar Muthukrishnan 0xb1, 0xc6, 0x13, 0x2c, 0x20, 0xa9, 0xf1, 0xdd, 615*2fba5232SGowrishankar Muthukrishnan 0x16, 0x34, 0x83, 0xa2, 0x6f, 0x8a, 0xc5, 0x3a, 616*2fba5232SGowrishankar Muthukrishnan 0x39, 0xd6, 0x80, 0x8b, 0xf4, 0xa1, 0xdf, 0xbd, 617*2fba5232SGowrishankar Muthukrishnan 0x26, 0x1b, 0x09, 0x9b, 0xb0, 0x3b, 0x3f, 0xb5, 618*2fba5232SGowrishankar Muthukrishnan 0x09, 0x06, 0xcb, 0x28, 0xbd, 0x8a, 0x08, 0x1f, 619*2fba5232SGowrishankar Muthukrishnan 0x00 620*2fba5232SGowrishankar Muthukrishnan }; 621*2fba5232SGowrishankar Muthukrishnan 622*2fba5232SGowrishankar Muthukrishnan /** ECDH ED448 elliptic curve param */ 623*2fba5232SGowrishankar Muthukrishnan 624*2fba5232SGowrishankar Muthukrishnan struct crypto_testsuite_ecdh_params ecdh_param_ed448 = { 625*2fba5232SGowrishankar Muthukrishnan .pubkey_qA_x = { 626*2fba5232SGowrishankar Muthukrishnan .data = pubkey_ed448, 627*2fba5232SGowrishankar Muthukrishnan .length = sizeof(pubkey_ed448), 628*2fba5232SGowrishankar Muthukrishnan }, 629*2fba5232SGowrishankar Muthukrishnan .pubkey_qA_y = { 630*2fba5232SGowrishankar Muthukrishnan }, 631*2fba5232SGowrishankar Muthukrishnan .pubkey_qB_x = { 632*2fba5232SGowrishankar Muthukrishnan }, 633*2fba5232SGowrishankar Muthukrishnan .pubkey_qB_y = { 634*2fba5232SGowrishankar Muthukrishnan }, 635*2fba5232SGowrishankar Muthukrishnan .pkey_A = { 636*2fba5232SGowrishankar Muthukrishnan .data = privkey_ed448, 637*2fba5232SGowrishankar Muthukrishnan .length = sizeof(privkey_ed448), 638*2fba5232SGowrishankar Muthukrishnan }, 639*2fba5232SGowrishankar Muthukrishnan .pkey_B = { 640*2fba5232SGowrishankar Muthukrishnan }, 641*2fba5232SGowrishankar Muthukrishnan .secret_x = { 642*2fba5232SGowrishankar Muthukrishnan }, 643*2fba5232SGowrishankar Muthukrishnan .secret_y = { 644*2fba5232SGowrishankar Muthukrishnan }, 645*2fba5232SGowrishankar Muthukrishnan .curve = RTE_CRYPTO_EC_GROUP_ED448 646*2fba5232SGowrishankar Muthukrishnan }; 647*2fba5232SGowrishankar Muthukrishnan 648*2fba5232SGowrishankar Muthukrishnan #endif /* __TEST_CRYPTODEV_ECDH_TEST_VECTORS_H__ */ 649