1174a1631SBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause 2174a1631SBruce Richardson * Copyright(c) 2016-2017 Intel Corporation 3f8be1786SSlawomir Mrozowicz */ 4f8be1786SSlawomir Mrozowicz 5f8be1786SSlawomir Mrozowicz #ifndef _CPERF_TEST_VECTRORS_ 6f8be1786SSlawomir Mrozowicz #define _CPERF_TEST_VECTRORS_ 7f8be1786SSlawomir Mrozowicz 8f8be1786SSlawomir Mrozowicz #include "cperf_options.h" 9f8be1786SSlawomir Mrozowicz 10f8be1786SSlawomir Mrozowicz struct cperf_test_vector { 11f8be1786SSlawomir Mrozowicz struct { 12f8be1786SSlawomir Mrozowicz uint8_t *data; 13f8be1786SSlawomir Mrozowicz uint32_t length; 14f8be1786SSlawomir Mrozowicz } plaintext; 15f8be1786SSlawomir Mrozowicz 16f8be1786SSlawomir Mrozowicz struct { 17f8be1786SSlawomir Mrozowicz uint8_t *data; 18f8be1786SSlawomir Mrozowicz uint16_t length; 19f8be1786SSlawomir Mrozowicz } cipher_key; 20f8be1786SSlawomir Mrozowicz 21f8be1786SSlawomir Mrozowicz struct { 22f8be1786SSlawomir Mrozowicz uint8_t *data; 23f8be1786SSlawomir Mrozowicz uint16_t length; 24f8be1786SSlawomir Mrozowicz } auth_key; 25f8be1786SSlawomir Mrozowicz 26f8be1786SSlawomir Mrozowicz struct { 27f8be1786SSlawomir Mrozowicz uint8_t *data; 28f8be1786SSlawomir Mrozowicz uint16_t length; 298a5b494aSPablo de Lara } aead_key; 308a5b494aSPablo de Lara 318a5b494aSPablo de Lara struct { 328a5b494aSPablo de Lara uint8_t *data; 338a5b494aSPablo de Lara uint16_t length; 34acf86169SPablo de Lara } cipher_iv; 35acf86169SPablo de Lara 36acf86169SPablo de Lara struct { 37acf86169SPablo de Lara uint8_t *data; 38acf86169SPablo de Lara uint16_t length; 39acf86169SPablo de Lara } auth_iv; 40f8be1786SSlawomir Mrozowicz 41f8be1786SSlawomir Mrozowicz struct { 42f8be1786SSlawomir Mrozowicz uint8_t *data; 438a5b494aSPablo de Lara uint16_t length; 448a5b494aSPablo de Lara } aead_iv; 458a5b494aSPablo de Lara 468a5b494aSPablo de Lara struct { 478a5b494aSPablo de Lara uint8_t *data; 48f8be1786SSlawomir Mrozowicz uint32_t length; 49f8be1786SSlawomir Mrozowicz } ciphertext; 50f8be1786SSlawomir Mrozowicz 51f8be1786SSlawomir Mrozowicz struct { 52f8be1786SSlawomir Mrozowicz uint8_t *data; 53c4509373SSantosh Shukla rte_iova_t phys_addr; 54f8be1786SSlawomir Mrozowicz uint16_t length; 55f8be1786SSlawomir Mrozowicz } aad; 56f8be1786SSlawomir Mrozowicz 57f8be1786SSlawomir Mrozowicz struct { 58f8be1786SSlawomir Mrozowicz uint8_t *data; 59c4509373SSantosh Shukla rte_iova_t phys_addr; 60f8be1786SSlawomir Mrozowicz uint16_t length; 61f8be1786SSlawomir Mrozowicz } digest; 62f8be1786SSlawomir Mrozowicz 63f8be1786SSlawomir Mrozowicz struct { 64f8be1786SSlawomir Mrozowicz uint32_t auth_offset; 65f8be1786SSlawomir Mrozowicz uint32_t auth_length; 66f8be1786SSlawomir Mrozowicz uint32_t cipher_offset; 67f8be1786SSlawomir Mrozowicz uint32_t cipher_length; 688a5b494aSPablo de Lara uint32_t aead_offset; 698a5b494aSPablo de Lara uint32_t aead_length; 70f8be1786SSlawomir Mrozowicz } data; 71ba588ce3SKiran Kumar K 72ba588ce3SKiran Kumar K struct { 73ba588ce3SKiran Kumar K uint8_t *mod; 74ba588ce3SKiran Kumar K uint8_t *exp; 75ba588ce3SKiran Kumar K uint32_t mlen; 76ba588ce3SKiran Kumar K uint32_t elen; 77ba588ce3SKiran Kumar K } modex; 78b82742f9SAkhil Goyal 79b82742f9SAkhil Goyal struct { 80b82742f9SAkhil Goyal uint8_t *sign_r; 81b82742f9SAkhil Goyal uint8_t *sign_s; 82b82742f9SAkhil Goyal uint8_t *message; 83b82742f9SAkhil Goyal uint8_t *cipher; 84b82742f9SAkhil Goyal uint32_t sign_len; 85b82742f9SAkhil Goyal uint32_t msg_len; 86b82742f9SAkhil Goyal uint32_t cipher_len; 87b82742f9SAkhil Goyal } sm2; 88f8be1786SSlawomir Mrozowicz }; 89f8be1786SSlawomir Mrozowicz 90a538d1d2SKiran Kumar K struct cperf_modex_test_data { 9113485aceSGowrishankar Muthukrishnan #define DATA_SIZE 1024 92a538d1d2SKiran Kumar K struct { 93a538d1d2SKiran Kumar K uint8_t data[DATA_SIZE]; 94a538d1d2SKiran Kumar K uint16_t len; 95a538d1d2SKiran Kumar K } base; 96a538d1d2SKiran Kumar K struct { 97a538d1d2SKiran Kumar K uint8_t data[DATA_SIZE]; 98a538d1d2SKiran Kumar K uint16_t len; 99a538d1d2SKiran Kumar K } exponent; 100a538d1d2SKiran Kumar K struct { 101a538d1d2SKiran Kumar K uint8_t data[DATA_SIZE]; 102a538d1d2SKiran Kumar K uint16_t len; 103a538d1d2SKiran Kumar K } modulus; 104a538d1d2SKiran Kumar K struct { 105a538d1d2SKiran Kumar K uint8_t data[DATA_SIZE]; 106a538d1d2SKiran Kumar K uint16_t len; 107a538d1d2SKiran Kumar K } result; 108a538d1d2SKiran Kumar K }; 109a538d1d2SKiran Kumar K 110195a271eSGowrishankar Muthukrishnan struct cperf_ecdsa_test_data { 111195a271eSGowrishankar Muthukrishnan rte_crypto_param pubkey_qx; 112195a271eSGowrishankar Muthukrishnan rte_crypto_param pubkey_qy; 113195a271eSGowrishankar Muthukrishnan rte_crypto_param pkey; 114195a271eSGowrishankar Muthukrishnan rte_crypto_param k; 115195a271eSGowrishankar Muthukrishnan rte_crypto_param sign_r; 116195a271eSGowrishankar Muthukrishnan rte_crypto_param sign_s; 117195a271eSGowrishankar Muthukrishnan rte_crypto_param message; 118195a271eSGowrishankar Muthukrishnan int curve; 119195a271eSGowrishankar Muthukrishnan }; 120195a271eSGowrishankar Muthukrishnan 121*981a1ed3SGowrishankar Muthukrishnan struct cperf_eddsa_test_data { 122*981a1ed3SGowrishankar Muthukrishnan rte_crypto_param pubkey; 123*981a1ed3SGowrishankar Muthukrishnan rte_crypto_param pkey; 124*981a1ed3SGowrishankar Muthukrishnan rte_crypto_param sign; 125*981a1ed3SGowrishankar Muthukrishnan rte_crypto_param message; 126*981a1ed3SGowrishankar Muthukrishnan int curve; 127*981a1ed3SGowrishankar Muthukrishnan int instance; 128*981a1ed3SGowrishankar Muthukrishnan }; 129*981a1ed3SGowrishankar Muthukrishnan 130b82742f9SAkhil Goyal struct cperf_sm2_test_data { 131b82742f9SAkhil Goyal rte_crypto_param pubkey_qx; 132b82742f9SAkhil Goyal rte_crypto_param pubkey_qy; 133b82742f9SAkhil Goyal rte_crypto_param pkey; 134b82742f9SAkhil Goyal rte_crypto_param k; 135b82742f9SAkhil Goyal rte_crypto_param sign_r; 136b82742f9SAkhil Goyal rte_crypto_param sign_s; 137b82742f9SAkhil Goyal rte_crypto_param id; 138b82742f9SAkhil Goyal rte_crypto_param cipher; 139b82742f9SAkhil Goyal rte_crypto_param message; 140b82742f9SAkhil Goyal rte_crypto_param digest; 141b82742f9SAkhil Goyal int curve; 142b82742f9SAkhil Goyal }; 143b82742f9SAkhil Goyal 144f8be1786SSlawomir Mrozowicz struct cperf_test_vector* 145f8be1786SSlawomir Mrozowicz cperf_test_vector_get_dummy(struct cperf_options *options); 146f8be1786SSlawomir Mrozowicz 147f8be1786SSlawomir Mrozowicz extern uint8_t ciphertext[2048]; 148f8be1786SSlawomir Mrozowicz 149f8be1786SSlawomir Mrozowicz extern uint8_t cipher_key[]; 150f8be1786SSlawomir Mrozowicz extern uint8_t auth_key[]; 151f8be1786SSlawomir Mrozowicz 152f8be1786SSlawomir Mrozowicz extern uint8_t iv[]; 153f8be1786SSlawomir Mrozowicz extern uint8_t aad[]; 154f8be1786SSlawomir Mrozowicz 155f8be1786SSlawomir Mrozowicz extern uint8_t digest[2048]; 156f8be1786SSlawomir Mrozowicz 15713485aceSGowrishankar Muthukrishnan extern struct cperf_modex_test_data modex_perf_data[10]; 158195a271eSGowrishankar Muthukrishnan extern struct cperf_ecdsa_test_data secp256r1_perf_data; 159*981a1ed3SGowrishankar Muthukrishnan extern struct cperf_eddsa_test_data ed25519_perf_data; 160b82742f9SAkhil Goyal extern struct cperf_sm2_test_data sm2_perf_data; 161ba588ce3SKiran Kumar K 162f8be1786SSlawomir Mrozowicz #endif 163