1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2019 Marvell International Ltd.
3 */
4
5 #include "nitrox_sym_capabilities.h"
6
7 static const struct rte_cryptodev_capabilities nitrox_capabilities[] = {
8 { /* SHA1 HMAC */
9 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
10 {.sym = {
11 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
12 {.auth = {
13 .algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
14 .block_size = 64,
15 .key_size = {
16 .min = 1,
17 .max = 64,
18 .increment = 1
19 },
20 .digest_size = {
21 .min = 1,
22 .max = 20,
23 .increment = 1
24 },
25 .iv_size = { 0 }
26 }, }
27 }, }
28 },
29 { /* SHA224 HMAC */
30 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
31 {.sym = {
32 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
33 {.auth = {
34 .algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
35 .block_size = 64,
36 .key_size = {
37 .min = 1,
38 .max = 64,
39 .increment = 1
40 },
41 .digest_size = {
42 .min = 1,
43 .max = 28,
44 .increment = 1
45 },
46 .iv_size = { 0 }
47 }, }
48 }, }
49 },
50 { /* SHA256 HMAC */
51 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
52 {.sym = {
53 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
54 {.auth = {
55 .algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
56 .block_size = 64,
57 .key_size = {
58 .min = 1,
59 .max = 64,
60 .increment = 1
61 },
62 .digest_size = {
63 .min = 1,
64 .max = 32,
65 .increment = 1
66 },
67 .iv_size = { 0 }
68 }, }
69 }, }
70 },
71 { /* AES CBC */
72 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
73 {.sym = {
74 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
75 {.cipher = {
76 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
77 .block_size = 16,
78 .key_size = {
79 .min = 16,
80 .max = 32,
81 .increment = 8
82 },
83 .iv_size = {
84 .min = 16,
85 .max = 16,
86 .increment = 0
87 }
88 }, }
89 }, }
90 },
91 { /* 3DES CBC */
92 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
93 {.sym = {
94 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
95 {.cipher = {
96 .algo = RTE_CRYPTO_CIPHER_3DES_CBC,
97 .block_size = 8,
98 .key_size = {
99 .min = 24,
100 .max = 24,
101 .increment = 0
102 },
103 .iv_size = {
104 .min = 8,
105 .max = 8,
106 .increment = 0
107 }
108 }, }
109 }, }
110 },
111 { /* AES GCM */
112 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
113 {.sym = {
114 .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
115 {.aead = {
116 .algo = RTE_CRYPTO_AEAD_AES_GCM,
117 .block_size = 16,
118 .key_size = {
119 .min = 16,
120 .max = 32,
121 .increment = 8
122 },
123 .digest_size = {
124 .min = 1,
125 .max = 16,
126 .increment = 1
127 },
128 .aad_size = {
129 .min = 0,
130 .max = 512,
131 .increment = 1
132 },
133 .iv_size = {
134 .min = 12,
135 .max = 16,
136 .increment = 4
137 },
138 }, }
139 }, }
140 },
141 { /* AES CCM */
142 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
143 {.sym = {
144 .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
145 {.aead = {
146 .algo = RTE_CRYPTO_AEAD_AES_CCM,
147 .block_size = 16,
148 .key_size = {
149 .min = 16,
150 .max = 32,
151 .increment = 8
152 },
153 .digest_size = {
154 .min = 4,
155 .max = 16,
156 .increment = 2
157 },
158 .aad_size = {
159 .min = 0,
160 .max = 512,
161 .increment = 1
162 },
163 .iv_size = {
164 .min = 7,
165 .max = 13,
166 .increment = 1
167 },
168 }, }
169 }, }
170 },
171 RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
172 };
173
174 const struct rte_cryptodev_capabilities *
nitrox_get_sym_capabilities(void)175 nitrox_get_sym_capabilities(void)
176 {
177 return nitrox_capabilities;
178 }
179