mirror of https://github.com/F-Stack/f-stack.git
75 lines
1.7 KiB
C
75 lines
1.7 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(c) 2021 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _PMD_CHACHA_POLY_PRIV_H_
|
|
#define _PMD_CHACHA_POLY_PRIV_H_
|
|
|
|
#include "ipsec_mb_private.h"
|
|
|
|
#define CHACHA20_POLY1305_IV_LENGTH 12
|
|
#define CHACHA20_POLY1305_DIGEST_LENGTH 16
|
|
#define CHACHA20_POLY1305_KEY_SIZE 32
|
|
|
|
static const
|
|
struct rte_cryptodev_capabilities chacha20_poly1305_capabilities[] = {
|
|
{/* CHACHA20-POLY1305 */
|
|
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
|
|
{.sym = {
|
|
.xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
|
|
{.aead = {
|
|
.algo = RTE_CRYPTO_AEAD_CHACHA20_POLY1305,
|
|
.block_size = 64,
|
|
.key_size = {
|
|
.min = 32,
|
|
.max = 32,
|
|
.increment = 0},
|
|
.digest_size = {
|
|
.min = 16,
|
|
.max = 16,
|
|
.increment = 0},
|
|
.aad_size = {
|
|
.min = 0,
|
|
.max = 240,
|
|
.increment = 1},
|
|
.iv_size = {
|
|
.min = 12,
|
|
.max = 12,
|
|
.increment = 0},
|
|
},
|
|
}
|
|
},}
|
|
},
|
|
RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
|
|
};
|
|
|
|
uint8_t pmd_driver_id_chacha20_poly1305;
|
|
|
|
/** CHACHA20 POLY1305 private session structure */
|
|
struct chacha20_poly1305_session {
|
|
struct {
|
|
uint16_t length;
|
|
uint16_t offset;
|
|
} iv;
|
|
/**< IV parameters */
|
|
uint16_t aad_length;
|
|
/**< AAD length */
|
|
uint16_t req_digest_length;
|
|
/**< Requested digest length */
|
|
uint16_t gen_digest_length;
|
|
/**< Generated digest length */
|
|
uint8_t key[CHACHA20_POLY1305_KEY_SIZE];
|
|
enum ipsec_mb_operation op;
|
|
} __rte_cache_aligned;
|
|
|
|
struct chacha20_poly1305_qp_data {
|
|
struct chacha20_poly1305_context_data chacha20_poly1305_ctx_data;
|
|
uint8_t temp_digest[CHACHA20_POLY1305_DIGEST_LENGTH];
|
|
/**< Buffer used to store the digest generated
|
|
* by the driver when verifying a digest provided
|
|
* by the user (using authentication verify operation)
|
|
*/
|
|
};
|
|
|
|
#endif /* _PMD_CHACHA_POLY_PRIV_H_ */
|