加密算法类别
- 对称加密算法(Symmetric Ciphers):
AES-CBC
AES-CTR
AES-GCM
AES-XTS
3DES-CBC
3DES-CTR
ChaCha20 - 哈希算法(Hash Algorithms):
MD5
SHA1
SHA224
SHA256
SHA384
SHA512 - 消息认证码(MAC Algorithms):
HMAC-MD5
HMAC-SHA1
HMAC-SHA224
HMAC-SHA256
HMAC-SHA384
HMAC-SHA512
GMAC - 公钥加密算法(Asymmetric Ciphers):
RSA
DSA
DH
ECDH
ECDSA
rte_crypto_op 是描述加密操作的主要结构。它包含了加密操作的各个方面,如输入数据、输出数据、操作类型等。
struct rte_crypto_op {
enum rte_crypto_op_type type; // 操作类型(如对称加密、非对称加密等)
union {
struct rte_crypto_sym_op *sym; // 对称加密操作
struct rte_crypto_asym_op *asym; // 非对称加密操作
};
// 其他字段省略...
};
rte_crypto_sym_op 是对称加密操作的具体结构,包含了对称加密所需的所有信息。
struct rte_crypto_sym_op {
struct rte_mbuf *m_src; // 输入数据缓冲区
struct rte_mbuf *m_dst; // 输出数据缓冲区
struct rte_crypto_sym_xform *xform; // 加密转换信息
struct {
uint16_t offset;
uint16_t length;
} cipher;
struct {
uint8_t *data;
} iv;
// 其他字段省略...
};
rte_crypto_sym_xform 是对称加密转换的描述结构,定义了加密算法、密钥、IV 等信息。
struct rte_crypto_sym_xform {
struct rte_crypto_sym_xform *next; // 下一个转换操作(链表)
enum rte_crypto_sym_xform_type type; // 转换类型(如加密、解密)
union {
struct {
enum rte_crypto_cipher_algorithm algo; // 加密算法
enum rte_crypto_cipher_operation op; // 操作类型(加密或解密)
struct {
uint8_t *data;
uint16_t length;
} key;
struct {
uint16_t offset;
} iv;
} cipher;
// 其他字段省略...
};
};
rte_crypto_asym_op 结构包含了非对称加密操作的所有必要信息。
struct rte_crypto_asym_op {
enum rte_crypto_asym_op_type type; // 操作类型(如RSA加密、解密等)
union {
struct rte_crypto_rsa_op rsa; // RSA操作
struct rte_crypto_dh_op dh; // Diffie-Hellman操作
struct rte_crypto_dsa_op dsa; // DSA操作
struct rte_crypto_ec_op ec; // 椭圆曲线操作
};
struct rte_mbuf *m_src; // 输入数据缓冲区
struct rte_mbuf *m_dst; // 输出数据缓冲区
};
此枚举定义了支持的加密算法。
enum rte_crypto_cipher_algorithm {
RTE_CRYPTO_CIPHER_NULL, // 无操作
RTE_CRYPTO_CIPHER_3DES_CBC, // 3DES CBC模式
RTE_CRYPTO_CIPHER_3DES_CTR, // 3DES CTR模式
RTE_CRYPTO_CIPHER_AES_CBC, // AES CBC模式
RTE_CRYPTO_CIPHER_AES_CTR, // AES CTR模式
RTE_CRYPTO_CIPHER_AES_ECB, // AES ECB模式
RTE_CRYPTO_CIPHER_AES_F8, // AES F8模式
RTE_CRYPTO_CIPHER_AES_XTS, // AES XTS模式
RTE_CRYPTO_CIPHER_ARC4, // ARC4算法
RTE_CRYPTO_CIPHER_KASUMI_F8, // KASUMI F8算法
RTE_CRYPTO_CIPHER_SNOW3G_UEA2, // SNOW 3G UEA2算法
RTE_CRYPTO_CIPHER_ZUC_EEA3, // ZUC EEA3算法
RTE_CRYPTO_CIPHER_DES_CBC, // DES CBC模式
RTE_CRYPTO_CIPHER_DES_DOCSISBPI, // DES DOCSIS BPI模式
RTE_CRYPTO_CIPHER_AES_DOCSISBPI, // AES DOCSIS BPI模式
RTE_CRYPTO_CIPHER_NULL_DOCSISBPI,// NULL DOCSIS BPI模式
RTE_CRYPTO_CIPHER_LIST_END // 列表结束标志
};
此枚举定义了加密操作的类型(加密或解密)。
enum rte_crypto_cipher_operation {
RTE_CRYPTO_CIPHER_OP_ENCRYPT, // 加密操作
RTE_CRYPTO_CIPHER_OP_DECRYPT // 解密操作
};
此枚举定义了对称加密转换的类型,如加密、解密、散列等。
enum rte_crypto_sym_xform_type {
RTE_CRYPTO_SYM_XFORM_NOT_SPECIFIED, // 未指定
RTE_CRYPTO_SYM_XFORM_AEAD, // 认证加密
RTE_CRYPTO_SYM_XFORM_CIPHER, // 加密/解密
RTE_CRYPTO_SYM_XFORM_AUTH, // 认证
RTE_CRYPTO_SYM_XFORM_MAC, // 消息认证码
RTE_CRYPTO_SYM_XFORM_CHAIN // 链式转换
};
enum rte_crypto_asym_op_type 枚举定义了支持的非对称加密操作类型。
enum rte_crypto_asym_op_type {
RTE_CRYPTO_ASYM_OP_TYPE_UNSPECIFIED, // 未指定
RTE_CRYPTO_ASYM_OP_RSA_ENCRYPT, // RSA加密
RTE_CRYPTO_ASYM_OP_RSA_DECRYPT, // RSA解密
RTE_CRYPTO_ASYM_OP_RSA_SIGN, // RSA签名
RTE_CRYPTO_ASYM_OP_RSA_VERIFY, // RSA验证
RTE_CRYPTO_ASYM_OP_DH_GEN_KEY, // Diffie-Hellman生成密钥
RTE_CRYPTO_ASYM_OP_DH_COMPUTE_KEY, // Diffie-Hellman计算密钥
RTE_CRYPTO_ASYM_OP_DSA_SIGN, // DSA签名
RTE_CRYPTO_ASYM_OP_DSA_VERIFY, // DSA验证
RTE_CRYPTO_ASYM_OP_ECDSA_SIGN, // ECDSA签名
RTE_CRYPTO_ASYM_OP_ECDSA_VERIFY, // ECDSA验证
RTE_CRYPTO_ASYM_OP_ECDH_GEN_KEY, // ECDH生成密钥
RTE_CRYPTO_ASYM_OP_ECDH_COMPUTE_KEY, // ECDH计算密钥
};
rte_crypto_rsa_op 结构包含了执行 RSA 操作所需的所有信息。
struct rte_crypto_rsa_op {
struct rte_crypto_rsa_key *key; // RSA密钥
struct rte_crypto_rsa_padding pad; // 填充方案
struct {
uint16_t length; // 输入数据长度
uint8_t *data; // 输入数据
} input;
struct {
uint16_t length; // 输出数据长度
uint8_t *data; // 输出数据
} output;
};
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。