xref: /dpdk/app/test-crypto-perf/cperf_test_vectors.h (revision 981a1ed32a7920bf0f5e2864ab1f78c296bdfaec)
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