DPDK
19.02.0
Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
lib
librte_cryptodev
rte_crypto_asym.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-3-Clause
2
* Copyright(c) 2018 Cavium Networks
3
*/
4
5
#ifndef _RTE_CRYPTO_ASYM_H_
6
#define _RTE_CRYPTO_ASYM_H_
7
17
#ifdef __cplusplus
18
extern
"C"
{
19
#endif
20
21
#include <string.h>
22
#include <stdint.h>
23
24
#include <
rte_memory.h
>
25
#include <
rte_mempool.h
>
26
#include <
rte_common.h
>
27
28
typedef
struct
rte_crypto_param_t {
29
uint8_t *data;
31
rte_iova_t
iova;
33
size_t
length;
35
} rte_crypto_param;
36
38
extern
const
char
*
39
rte_crypto_asym_xform_strings
[];
40
42
extern
const
char
*
43
rte_crypto_asym_op_strings
[];
44
51
enum
rte_crypto_asym_xform_type
{
52
RTE_CRYPTO_ASYM_XFORM_UNSPECIFIED
= 0,
54
RTE_CRYPTO_ASYM_XFORM_NONE
,
60
RTE_CRYPTO_ASYM_XFORM_RSA
,
64
RTE_CRYPTO_ASYM_XFORM_DH
,
69
RTE_CRYPTO_ASYM_XFORM_DSA
,
74
RTE_CRYPTO_ASYM_XFORM_MODINV
,
78
RTE_CRYPTO_ASYM_XFORM_MODEX
,
82
RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END
84
};
85
89
enum
rte_crypto_asym_op_type
{
90
RTE_CRYPTO_ASYM_OP_ENCRYPT
,
92
RTE_CRYPTO_ASYM_OP_DECRYPT
,
94
RTE_CRYPTO_ASYM_OP_SIGN
,
96
RTE_CRYPTO_ASYM_OP_VERIFY
,
98
RTE_CRYPTO_ASYM_OP_PRIVATE_KEY_GENERATE
,
100
RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE
,
102
RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE
,
104
RTE_CRYPTO_ASYM_OP_LIST_END
105
};
106
110
enum
rte_crypto_rsa_padding_type
{
111
RTE_CRYPTO_RSA_PADDING_NONE
= 0,
113
RTE_CRYPTO_RSA_PKCS1_V1_5_BT0
,
117
RTE_CRYPTO_RSA_PKCS1_V1_5_BT1
,
121
RTE_CRYPTO_RSA_PKCS1_V1_5_BT2
,
125
RTE_CRYPTO_RSA_PADDING_OAEP
,
127
RTE_CRYPTO_RSA_PADDING_PSS
,
129
RTE_CRYPTO_RSA_PADDING_TYPE_LIST_END
130
};
131
139
enum
rte_crypto_rsa_priv_key_type
{
140
RTE_RSA_KEY_TYPE_EXP
,
142
RTE_RSA_KET_TYPE_QT
,
146
};
147
152
struct
rte_crypto_rsa_priv_key_qt
{
153
rte_crypto_param
p
;
160
rte_crypto_param
q
;
167
rte_crypto_param
dP
;
175
rte_crypto_param
dQ
;
183
rte_crypto_param
qInv
;
190
};
191
198
struct
rte_crypto_rsa_xform
{
199
rte_crypto_param
n
;
205
rte_crypto_param
e
;
211
enum
rte_crypto_rsa_priv_key_type
key_type;
212
213
__extension__
214
union
{
215
rte_crypto_param
d
;
222
struct
rte_crypto_rsa_priv_key_qt
qt
;
224
};
225
};
226
233
struct
rte_crypto_modex_xform
{
234
rte_crypto_param
modulus
;
240
rte_crypto_param
exponent
;
245
};
246
253
struct
rte_crypto_modinv_xform
{
254
rte_crypto_param
modulus
;
260
};
261
268
struct
rte_crypto_dh_xform
{
269
enum
rte_crypto_asym_op_type
type
;
272
rte_crypto_param
p
;
278
rte_crypto_param
g
;
284
};
285
292
struct
rte_crypto_dsa_xform
{
293
rte_crypto_param
p
;
298
rte_crypto_param
q
;
304
rte_crypto_param
g
;
308
rte_crypto_param
x
;
316
};
317
323
struct
rte_crypto_mod_op_param
{
324
rte_crypto_param
base
;
329
};
330
336
struct
rte_crypto_asym_xform
{
337
struct
rte_crypto_asym_xform
*
next
;
339
enum
rte_crypto_asym_xform_type
xform_type
;
342
__extension__
343
union
{
344
struct
rte_crypto_rsa_xform
rsa
;
347
struct
rte_crypto_modex_xform
modex
;
350
struct
rte_crypto_modinv_xform
modinv
;
353
struct
rte_crypto_dh_xform
dh
;
356
struct
rte_crypto_dsa_xform
dsa
;
358
};
359
};
360
361
struct
rte_cryptodev_asym_session
;
362
367
struct
rte_crypto_rsa_op_param
{
368
enum
rte_crypto_asym_op_type
op_type
;;
370
371
rte_crypto_param
message
;
380
rte_crypto_param
sign
;
390
enum
rte_crypto_rsa_padding_type
pad
;
393
enum
rte_crypto_auth_algorithm
md
;
400
enum
rte_crypto_auth_algorithm
mgf1md
;
408
};
409
414
struct
rte_crypto_dh_op_param
{
415
rte_crypto_param
pub_key
;
425
rte_crypto_param
priv_key
;
434
rte_crypto_param
shared_secret
;
441
};
442
447
struct
rte_crypto_dsa_op_param
{
448
enum
rte_crypto_asym_op_type
op_type
;
450
rte_crypto_param
message
;
452
rte_crypto_param
r
;
458
rte_crypto_param
s
;
464
rte_crypto_param
y
;
470
};
471
478
struct
rte_crypto_asym_op
{
479
struct
rte_cryptodev_asym_session
*
session
;
482
__extension__
483
union
{
484
struct
rte_crypto_rsa_op_param
rsa;
485
struct
rte_crypto_mod_op_param
modex;
486
struct
rte_crypto_mod_op_param
modinv;
487
struct
rte_crypto_dh_op_param
dh;
488
struct
rte_crypto_dsa_op_param
dsa;
489
};
490
}
__rte_cache_aligned
;
491
492
#ifdef __cplusplus
493
}
494
#endif
495
496
#endif
/* _RTE_CRYPTO_ASYM_H_ */
Generated by
1.8.1.2