1cafd2703SNagadheeraj Rottela /* SPDX-License-Identifier: BSD-3-Clause
2cafd2703SNagadheeraj Rottela * Copyright(C) 2019 Marvell International Ltd.
3cafd2703SNagadheeraj Rottela */
4cafd2703SNagadheeraj Rottela
5cafd2703SNagadheeraj Rottela #include "nitrox_sym_capabilities.h"
6cafd2703SNagadheeraj Rottela
7cafd2703SNagadheeraj Rottela static const struct rte_cryptodev_capabilities nitrox_capabilities[] = {
8cafd2703SNagadheeraj Rottela { /* SHA1 HMAC */
9cafd2703SNagadheeraj Rottela .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
10cafd2703SNagadheeraj Rottela {.sym = {
11cafd2703SNagadheeraj Rottela .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
12cafd2703SNagadheeraj Rottela {.auth = {
13cafd2703SNagadheeraj Rottela .algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
14cafd2703SNagadheeraj Rottela .block_size = 64,
15cafd2703SNagadheeraj Rottela .key_size = {
16cafd2703SNagadheeraj Rottela .min = 1,
17cafd2703SNagadheeraj Rottela .max = 64,
18cafd2703SNagadheeraj Rottela .increment = 1
19cafd2703SNagadheeraj Rottela },
20cafd2703SNagadheeraj Rottela .digest_size = {
21cafd2703SNagadheeraj Rottela .min = 1,
22cafd2703SNagadheeraj Rottela .max = 20,
23cafd2703SNagadheeraj Rottela .increment = 1
24cafd2703SNagadheeraj Rottela },
25cafd2703SNagadheeraj Rottela .iv_size = { 0 }
26cafd2703SNagadheeraj Rottela }, }
27cafd2703SNagadheeraj Rottela }, }
28cafd2703SNagadheeraj Rottela },
29cafd2703SNagadheeraj Rottela { /* SHA224 HMAC */
30cafd2703SNagadheeraj Rottela .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
31cafd2703SNagadheeraj Rottela {.sym = {
32cafd2703SNagadheeraj Rottela .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
33cafd2703SNagadheeraj Rottela {.auth = {
34cafd2703SNagadheeraj Rottela .algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
35cafd2703SNagadheeraj Rottela .block_size = 64,
36cafd2703SNagadheeraj Rottela .key_size = {
37cafd2703SNagadheeraj Rottela .min = 1,
38cafd2703SNagadheeraj Rottela .max = 64,
39cafd2703SNagadheeraj Rottela .increment = 1
40cafd2703SNagadheeraj Rottela },
41cafd2703SNagadheeraj Rottela .digest_size = {
42cafd2703SNagadheeraj Rottela .min = 1,
43cafd2703SNagadheeraj Rottela .max = 28,
44cafd2703SNagadheeraj Rottela .increment = 1
45cafd2703SNagadheeraj Rottela },
46cafd2703SNagadheeraj Rottela .iv_size = { 0 }
47cafd2703SNagadheeraj Rottela }, }
48cafd2703SNagadheeraj Rottela }, }
49cafd2703SNagadheeraj Rottela },
50cafd2703SNagadheeraj Rottela { /* SHA256 HMAC */
51cafd2703SNagadheeraj Rottela .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
52cafd2703SNagadheeraj Rottela {.sym = {
53cafd2703SNagadheeraj Rottela .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
54cafd2703SNagadheeraj Rottela {.auth = {
55cafd2703SNagadheeraj Rottela .algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
56cafd2703SNagadheeraj Rottela .block_size = 64,
57cafd2703SNagadheeraj Rottela .key_size = {
58cafd2703SNagadheeraj Rottela .min = 1,
59cafd2703SNagadheeraj Rottela .max = 64,
60cafd2703SNagadheeraj Rottela .increment = 1
61cafd2703SNagadheeraj Rottela },
62cafd2703SNagadheeraj Rottela .digest_size = {
63cafd2703SNagadheeraj Rottela .min = 1,
64cafd2703SNagadheeraj Rottela .max = 32,
65cafd2703SNagadheeraj Rottela .increment = 1
66cafd2703SNagadheeraj Rottela },
67cafd2703SNagadheeraj Rottela .iv_size = { 0 }
68cafd2703SNagadheeraj Rottela }, }
69cafd2703SNagadheeraj Rottela }, }
70cafd2703SNagadheeraj Rottela },
71cafd2703SNagadheeraj Rottela { /* AES CBC */
72cafd2703SNagadheeraj Rottela .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
73cafd2703SNagadheeraj Rottela {.sym = {
74cafd2703SNagadheeraj Rottela .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
75cafd2703SNagadheeraj Rottela {.cipher = {
76cafd2703SNagadheeraj Rottela .algo = RTE_CRYPTO_CIPHER_AES_CBC,
77cafd2703SNagadheeraj Rottela .block_size = 16,
78cafd2703SNagadheeraj Rottela .key_size = {
79cafd2703SNagadheeraj Rottela .min = 16,
80cafd2703SNagadheeraj Rottela .max = 32,
81cafd2703SNagadheeraj Rottela .increment = 8
82cafd2703SNagadheeraj Rottela },
83cafd2703SNagadheeraj Rottela .iv_size = {
84cafd2703SNagadheeraj Rottela .min = 16,
85cafd2703SNagadheeraj Rottela .max = 16,
86cafd2703SNagadheeraj Rottela .increment = 0
87cafd2703SNagadheeraj Rottela }
88cafd2703SNagadheeraj Rottela }, }
89cafd2703SNagadheeraj Rottela }, }
90cafd2703SNagadheeraj Rottela },
912a41db75SNagadheeraj Rottela { /* 3DES CBC */
922a41db75SNagadheeraj Rottela .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
932a41db75SNagadheeraj Rottela {.sym = {
942a41db75SNagadheeraj Rottela .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
952a41db75SNagadheeraj Rottela {.cipher = {
962a41db75SNagadheeraj Rottela .algo = RTE_CRYPTO_CIPHER_3DES_CBC,
972a41db75SNagadheeraj Rottela .block_size = 8,
982a41db75SNagadheeraj Rottela .key_size = {
992a41db75SNagadheeraj Rottela .min = 24,
1002a41db75SNagadheeraj Rottela .max = 24,
1012a41db75SNagadheeraj Rottela .increment = 0
1022a41db75SNagadheeraj Rottela },
1032a41db75SNagadheeraj Rottela .iv_size = {
1042a41db75SNagadheeraj Rottela .min = 8,
1052a41db75SNagadheeraj Rottela .max = 8,
1062a41db75SNagadheeraj Rottela .increment = 0
1072a41db75SNagadheeraj Rottela }
1082a41db75SNagadheeraj Rottela }, }
1092a41db75SNagadheeraj Rottela }, }
1102a41db75SNagadheeraj Rottela },
11193ba4a6eSNagadheeraj Rottela { /* AES GCM */
11293ba4a6eSNagadheeraj Rottela .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
11393ba4a6eSNagadheeraj Rottela {.sym = {
11493ba4a6eSNagadheeraj Rottela .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
11593ba4a6eSNagadheeraj Rottela {.aead = {
11693ba4a6eSNagadheeraj Rottela .algo = RTE_CRYPTO_AEAD_AES_GCM,
11793ba4a6eSNagadheeraj Rottela .block_size = 16,
11893ba4a6eSNagadheeraj Rottela .key_size = {
11993ba4a6eSNagadheeraj Rottela .min = 16,
12093ba4a6eSNagadheeraj Rottela .max = 32,
12193ba4a6eSNagadheeraj Rottela .increment = 8
12293ba4a6eSNagadheeraj Rottela },
12393ba4a6eSNagadheeraj Rottela .digest_size = {
12493ba4a6eSNagadheeraj Rottela .min = 1,
12593ba4a6eSNagadheeraj Rottela .max = 16,
12693ba4a6eSNagadheeraj Rottela .increment = 1
12793ba4a6eSNagadheeraj Rottela },
12893ba4a6eSNagadheeraj Rottela .aad_size = {
12993ba4a6eSNagadheeraj Rottela .min = 0,
13093ba4a6eSNagadheeraj Rottela .max = 512,
13193ba4a6eSNagadheeraj Rottela .increment = 1
13293ba4a6eSNagadheeraj Rottela },
13393ba4a6eSNagadheeraj Rottela .iv_size = {
13493ba4a6eSNagadheeraj Rottela .min = 12,
13593ba4a6eSNagadheeraj Rottela .max = 16,
13693ba4a6eSNagadheeraj Rottela .increment = 4
13793ba4a6eSNagadheeraj Rottela },
13893ba4a6eSNagadheeraj Rottela }, }
13993ba4a6eSNagadheeraj Rottela }, }
14093ba4a6eSNagadheeraj Rottela },
141*60531a2cSNagadheeraj Rottela { /* AES CCM */
142*60531a2cSNagadheeraj Rottela .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
143*60531a2cSNagadheeraj Rottela {.sym = {
144*60531a2cSNagadheeraj Rottela .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
145*60531a2cSNagadheeraj Rottela {.aead = {
146*60531a2cSNagadheeraj Rottela .algo = RTE_CRYPTO_AEAD_AES_CCM,
147*60531a2cSNagadheeraj Rottela .block_size = 16,
148*60531a2cSNagadheeraj Rottela .key_size = {
149*60531a2cSNagadheeraj Rottela .min = 16,
150*60531a2cSNagadheeraj Rottela .max = 32,
151*60531a2cSNagadheeraj Rottela .increment = 8
152*60531a2cSNagadheeraj Rottela },
153*60531a2cSNagadheeraj Rottela .digest_size = {
154*60531a2cSNagadheeraj Rottela .min = 4,
155*60531a2cSNagadheeraj Rottela .max = 16,
156*60531a2cSNagadheeraj Rottela .increment = 2
157*60531a2cSNagadheeraj Rottela },
158*60531a2cSNagadheeraj Rottela .aad_size = {
159*60531a2cSNagadheeraj Rottela .min = 0,
160*60531a2cSNagadheeraj Rottela .max = 512,
161*60531a2cSNagadheeraj Rottela .increment = 1
162*60531a2cSNagadheeraj Rottela },
163*60531a2cSNagadheeraj Rottela .iv_size = {
164*60531a2cSNagadheeraj Rottela .min = 7,
165*60531a2cSNagadheeraj Rottela .max = 13,
166*60531a2cSNagadheeraj Rottela .increment = 1
167*60531a2cSNagadheeraj Rottela },
168*60531a2cSNagadheeraj Rottela }, }
169*60531a2cSNagadheeraj Rottela }, }
170*60531a2cSNagadheeraj Rottela },
171cafd2703SNagadheeraj Rottela RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
172cafd2703SNagadheeraj Rottela };
173cafd2703SNagadheeraj Rottela
174cafd2703SNagadheeraj Rottela const struct rte_cryptodev_capabilities *
nitrox_get_sym_capabilities(void)175cafd2703SNagadheeraj Rottela nitrox_get_sym_capabilities(void)
176cafd2703SNagadheeraj Rottela {
177cafd2703SNagadheeraj Rottela return nitrox_capabilities;
178cafd2703SNagadheeraj Rottela }
179