DPDK
19.05.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
#include "
rte_crypto_sym.h
"
29
30
typedef
struct
rte_crypto_param_t {
31
uint8_t *data;
33
rte_iova_t
iova;
35
size_t
length;
37
} rte_crypto_param;
38
40
extern
const
char
*
41
rte_crypto_asym_xform_strings
[];
42
44
extern
const
char
*
45
rte_crypto_asym_op_strings
[];
46
53
enum
rte_crypto_asym_xform_type
{
54
RTE_CRYPTO_ASYM_XFORM_UNSPECIFIED
= 0,
56
RTE_CRYPTO_ASYM_XFORM_NONE
,
62
RTE_CRYPTO_ASYM_XFORM_RSA
,
66
RTE_CRYPTO_ASYM_XFORM_DH
,
71
RTE_CRYPTO_ASYM_XFORM_DSA
,
76
RTE_CRYPTO_ASYM_XFORM_MODINV
,
80
RTE_CRYPTO_ASYM_XFORM_MODEX
,
84
RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END
86
};
87
91
enum
rte_crypto_asym_op_type
{
92
RTE_CRYPTO_ASYM_OP_ENCRYPT
,
94
RTE_CRYPTO_ASYM_OP_DECRYPT
,
96
RTE_CRYPTO_ASYM_OP_SIGN
,
98
RTE_CRYPTO_ASYM_OP_VERIFY
,
100
RTE_CRYPTO_ASYM_OP_PRIVATE_KEY_GENERATE
,
102
RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE
,
104
RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE
,
106
RTE_CRYPTO_ASYM_OP_LIST_END
107
};
108
112
enum
rte_crypto_rsa_padding_type
{
113
RTE_CRYPTO_RSA_PADDING_NONE
= 0,
115
RTE_CRYPTO_RSA_PKCS1_V1_5_BT0
,
119
RTE_CRYPTO_RSA_PKCS1_V1_5_BT1
,
123
RTE_CRYPTO_RSA_PKCS1_V1_5_BT2
,
127
RTE_CRYPTO_RSA_PADDING_OAEP
,
129
RTE_CRYPTO_RSA_PADDING_PSS
,
131
RTE_CRYPTO_RSA_PADDING_TYPE_LIST_END
132
};
133
141
enum
rte_crypto_rsa_priv_key_type
{
142
RTE_RSA_KEY_TYPE_EXP
,
144
RTE_RSA_KET_TYPE_QT
,
148
};
149
154
struct
rte_crypto_rsa_priv_key_qt
{
155
rte_crypto_param
p
;
162
rte_crypto_param
q
;
169
rte_crypto_param
dP
;
177
rte_crypto_param
dQ
;
185
rte_crypto_param
qInv
;
192
};
193
200
struct
rte_crypto_rsa_xform
{
201
rte_crypto_param
n
;
207
rte_crypto_param
e
;
213
enum
rte_crypto_rsa_priv_key_type
key_type;
214
215
__extension__
216
union
{
217
rte_crypto_param
d
;
224
struct
rte_crypto_rsa_priv_key_qt
qt
;
226
};
227
};
228
235
struct
rte_crypto_modex_xform
{
236
rte_crypto_param
modulus
;
245
rte_crypto_param
exponent
;
250
};
251
258
struct
rte_crypto_modinv_xform
{
259
rte_crypto_param
modulus
;
271
};
272
279
struct
rte_crypto_dh_xform
{
280
enum
rte_crypto_asym_op_type
type
;
283
rte_crypto_param
p
;
289
rte_crypto_param
g
;
295
};
296
303
struct
rte_crypto_dsa_xform
{
304
rte_crypto_param
p
;
309
rte_crypto_param
q
;
315
rte_crypto_param
g
;
319
rte_crypto_param
x
;
327
};
328
334
struct
rte_crypto_mod_op_param
{
335
rte_crypto_param
base
;
345
rte_crypto_param
result
;
354
};
355
361
struct
rte_crypto_asym_xform
{
362
struct
rte_crypto_asym_xform
*
next
;
364
enum
rte_crypto_asym_xform_type
xform_type
;
367
__extension__
368
union
{
369
struct
rte_crypto_rsa_xform
rsa
;
372
struct
rte_crypto_modex_xform
modex
;
375
struct
rte_crypto_modinv_xform
modinv
;
378
struct
rte_crypto_dh_xform
dh
;
381
struct
rte_crypto_dsa_xform
dsa
;
383
};
384
};
385
386
struct
rte_cryptodev_asym_session
;
387
392
struct
rte_crypto_rsa_op_param
{
393
enum
rte_crypto_asym_op_type
op_type
;;
395
396
rte_crypto_param
message
;
405
rte_crypto_param
sign
;
415
enum
rte_crypto_rsa_padding_type
pad
;
418
enum
rte_crypto_auth_algorithm
md
;
425
enum
rte_crypto_auth_algorithm
mgf1md
;
433
};
434
439
struct
rte_crypto_dh_op_param
{
440
rte_crypto_param
pub_key
;
450
rte_crypto_param
priv_key
;
459
rte_crypto_param
shared_secret
;
466
};
467
472
struct
rte_crypto_dsa_op_param
{
473
enum
rte_crypto_asym_op_type
op_type
;
475
rte_crypto_param
message
;
477
rte_crypto_param
r
;
483
rte_crypto_param
s
;
489
rte_crypto_param
y
;
495
};
496
503
struct
rte_crypto_asym_op
{
504
struct
rte_cryptodev_asym_session
*
session
;
507
__extension__
508
union
{
509
struct
rte_crypto_rsa_op_param
rsa;
510
struct
rte_crypto_mod_op_param
modex;
511
struct
rte_crypto_mod_op_param
modinv;
512
struct
rte_crypto_dh_op_param
dh;
513
struct
rte_crypto_dsa_op_param
dsa;
514
};
515
};
516
517
#ifdef __cplusplus
518
}
519
#endif
520
521
#endif
/* _RTE_CRYPTO_ASYM_H_ */
Generated by
1.8.1.2