14#ifndef _DAO_LIB_NETLINK_CRYPTO_H
15#define _DAO_LIB_NETLINK_CRYPTO_H
17#define DAO_NETLINK_CRYPTO_KEY_MAX_NAME_LEN 1024
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")
39#define dao_netlink_foreach_crypto_cipher_aead_algorithm \
40 _(AEAD_AES_GCM, 128, 16, 12, 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")
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")
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")
66#define _(macro, keybits, key, iv, blksize, xfrm_name, name) \
67 DAO_CRYPTO_##macro##_##keybits,
70#define _(cipher, keybits, key, iv, blksize, aad, xfrm_name, name) \
71 DAO_CRYPTO_##cipher##_##keybits,
75#define _(alg, keybits, iv, dig, xfrm_name, name) DAO_CRYPTO_##alg##_##keybits,
76 dao_netlink_foreach_crypto_auth_hmac_alg
88 char key[DAO_NETLINK_CRYPTO_KEY_MAX_NAME_LEN];
#define dao_netlink_foreach_crypto_cipher_algorithm
struct dao_netlink_crypto_key dao_netlink_crypto_key_t
dao_netlink_crypto_algo_t
#define dao_netlink_foreach_crypto_cipher_aead_algorithm
dao_netlink_crypto_algo_t algo
char key[DAO_NETLINK_CRYPTO_KEY_MAX_NAME_LEN]