crypto/nitrox: support 3DES-CBC
[dpdk.git] / drivers / crypto / nitrox / nitrox_sym_capabilities.c
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         RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
112 };
113
114 const struct rte_cryptodev_capabilities *
115 nitrox_get_sym_capabilities(void)
116 {
117         return nitrox_capabilities;
118 }