Data Accelerator Offload
Loading...
Searching...
No Matches
dao_netlink_crypto.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: Marvell-MIT
2 * Copyright (c) 2023 Marvell.
3 */
4
14#ifndef _DAO_LIB_NETLINK_CRYPTO_H
15#define _DAO_LIB_NETLINK_CRYPTO_H
16
17#define DAO_NETLINK_CRYPTO_KEY_MAX_NAME_LEN 1024
18
23#define dao_netlink_foreach_crypto_cipher_algorithm \
24 _(CIPHER_NULL, 0, 0, 0, 0, "ecb(cipher_null)", "ecb-cipher-null") \
25 _(CIPHER_DES_CBC, 56, 8, 8, 8, "cbc(des)", "des-cbc") \
26 _(CIPHER_3DES_CBC, 192, 24, 8, 8, "cbc(des3-cede)", "3des-cbc") \
27 _(CIPHER_AES_CBC, 128, 16, 16, 16, "cbc(aes)", "aes-cbc-128") \
28 _(CIPHER_AES_CBC, 192, 24, 16, 16, "cbc(aes)", "aes-cbc-192") \
29 _(CIPHER_AES_CBC, 256, 32, 16, 16, "cbc(aes)", "aes-cbc-256") \
30 _(CIPHER_AES_CTR, 128, 16, 16, 16, "ctr(aes)", "aes-ctr-128") \
31 _(CIPHER_AES_CTR, 192, 24, 16, 16, "ctr(aes)", "aes-ctr-192") \
32 _(CIPHER_AES_CTR, 256, 32, 16, 16, "ctr(aes)", "aes-ctr-256")
33
39#define dao_netlink_foreach_crypto_cipher_aead_algorithm \
40 _(AEAD_AES_GCM, 128, 16, 12/*TODO*/, 16, 8, "rfc4106(gcm(aes))", "aes-gcm-128-aad8") \
41 _(AEAD_AES_GCM, 192, 24, 12, 16, 8, "rfc4106(gcm(aes))", "aes-gcm-19-aad8") \
42 _(AEAD_AES_GCM, 256, 32, 12, 16, 8, "rfc4106(gcm(aes))", "aes-gcm-256-aad8") \
43 _(AEAD_CHACHA20_POLY1305, 256, 32, 12, 16, 8, \
44 "rfc7539esp(chacha20,poly1305)", "chacha20-poly1305-aad8")
45
46/* @internal */
47#define __dao_netlink_foreach_crypto_auth_hash_alg \
48 _(AUTH_SHA1, 160, "sha-1") \
49 _(AUTH_SHA224, 224, "sha-224") \
50 _(AUTH_SHA256, 256, "sha-256") \
51 _(AUTH_SHA384, 384, "sha-384") \
52 _(AUTH_SHA512, 512, "sha-512")
53
54/* Auth enum, key bit length, iv, digest_len, ip-xfrm-name, simple-name */
55#define dao_netlink_foreach_crypto_auth_hmac_alg \
56 _(AUTH_NULL, 0, 0, 0, "digest_null", "digest-null") \
57 _(AUTH_MD5_HMAC, 128, 0, 12, "hmac(md5)", "hmac-md5") \
58 _(AUTH_SHA1_HMAC, 96, 0, 12, "hmac(sha1)", "hmac-sha1") \
59 _(AUTH_SHA1_HMAC, 160, 0, 16, "hmac(sha1)", "hmac-sha1") \
60 _(AUTH_SHA256_HMAC, 256, 0, 16, "hmac(sha256)", "hmac-sha2-256") \
61 _(AUTH_SHA384_HMAC, 384, 0, 24, "hmac(sha384)", "hmac-sha2-384") \
62 _(AUTH_SHA512_HMAC, 512, 0, 32, "hmac(sha512)", "hmac-sha2-512")
63
65typedef enum {
66#define _(macro, keybits, key, iv, blksize, xfrm_name, name) \
67 DAO_CRYPTO_##macro##_##keybits,
69#undef _
70#define _(cipher, keybits, key, iv, blksize, aad, xfrm_name, name) \
71 DAO_CRYPTO_##cipher##_##keybits,
73#undef _
74
75#define _(alg, keybits, iv, dig, xfrm_name, name) DAO_CRYPTO_##alg##_##keybits,
76 dao_netlink_foreach_crypto_auth_hmac_alg
77#undef _
79
81typedef struct dao_netlink_crypto_key {
83 uint32_t key_len;
84 union {
85 uint32_t trunc_len;
86 uint32_t icv_len;
87 };
88 char key[DAO_NETLINK_CRYPTO_KEY_MAX_NAME_LEN];
90
91#endif /* _DAO_LIB_NETLINK_CRYPTO_H */