numam-dpdk/app/test/test_cryptodev_blockcipher.h
Pablo de Lara b4c469ec4f test/crypto: do not check for PMD
Remove PMD bitmask, which selects the PMD to be tested
for each test case. Instead, all PMDs are eligible
to run all tests, and capability checking discards
the PMDs which do not support each test case.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Tested-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
2020-04-19 22:45:40 +02:00

101 lines
2.7 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2016-2017 Intel Corporation
*/
#ifndef TEST_CRYPTODEV_BLOCKCIPHER_H_
#define TEST_CRYPTODEV_BLOCKCIPHER_H_
#ifndef BLOCKCIPHER_TEST_MSG_LEN
#define BLOCKCIPHER_TEST_MSG_LEN 256
#endif
#define BLOCKCIPHER_TEST_OP_ENCRYPT 0x01
#define BLOCKCIPHER_TEST_OP_DECRYPT 0x02
#define BLOCKCIPHER_TEST_OP_AUTH_GEN 0x04
#define BLOCKCIPHER_TEST_OP_AUTH_VERIFY 0x08
#define BLOCKCIPHER_TEST_FEATURE_OOP 0x01
#define BLOCKCIPHER_TEST_FEATURE_SESSIONLESS 0x02
#define BLOCKCIPHER_TEST_FEATURE_STOPPER 0x04 /* stop upon failing */
#define BLOCKCIPHER_TEST_FEATURE_SG 0x08 /* Scatter Gather */
#define BLOCKCIPHER_TEST_OP_CIPHER (BLOCKCIPHER_TEST_OP_ENCRYPT | \
BLOCKCIPHER_TEST_OP_DECRYPT)
#define BLOCKCIPHER_TEST_OP_AUTH (BLOCKCIPHER_TEST_OP_AUTH_GEN | \
BLOCKCIPHER_TEST_OP_AUTH_VERIFY)
#define BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN (BLOCKCIPHER_TEST_OP_ENCRYPT | \
BLOCKCIPHER_TEST_OP_AUTH_GEN)
#define BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC (BLOCKCIPHER_TEST_OP_DECRYPT | \
BLOCKCIPHER_TEST_OP_AUTH_VERIFY)
enum blockcipher_test_type {
BLKCIPHER_AES_CHAIN_TYPE, /* use aes_chain_test_cases[] */
BLKCIPHER_AES_CIPHERONLY_TYPE, /* use aes_cipheronly_test_cases[] */
BLKCIPHER_AES_DOCSIS_TYPE, /* use aes_docsis_test_cases[] */
BLKCIPHER_3DES_CHAIN_TYPE, /* use triple_des_chain_test_cases[] */
BLKCIPHER_3DES_CIPHERONLY_TYPE, /* triple_des_cipheronly_test_cases[] */
BLKCIPHER_AUTHONLY_TYPE, /* use hash_test_cases[] */
BLKCIPHER_DES_CIPHERONLY_TYPE, /* use des_cipheronly_test_cases[] */
BLKCIPHER_DES_DOCSIS_TYPE /* use des_docsis_test_cases[] */
};
struct blockcipher_test_case {
const char *test_descr; /* test description */
const struct blockcipher_test_data *test_data;
uint8_t op_mask; /* operation mask */
uint8_t feature_mask;
};
struct blockcipher_test_data {
enum rte_crypto_cipher_algorithm crypto_algo;
struct {
uint8_t data[64];
unsigned int len;
} cipher_key;
struct {
uint8_t data[64] __rte_aligned(16);
unsigned int len;
} iv;
struct {
const uint8_t *data;
unsigned int len;
} plaintext;
struct {
const uint8_t *data;
unsigned int len;
} ciphertext;
enum rte_crypto_auth_algorithm auth_algo;
struct {
uint8_t data[128];
unsigned int len;
} auth_key;
struct {
uint8_t data[128];
unsigned int len; /* for qat */
unsigned int truncated_len; /* for mb */
} digest;
unsigned int cipher_offset;
unsigned int auth_offset;
};
int
test_blockcipher_all_tests(struct rte_mempool *mbuf_pool,
struct rte_mempool *op_mpool,
struct rte_mempool *sess_mpool,
struct rte_mempool *sess_priv_mpool,
uint8_t dev_id,
enum blockcipher_test_type test_type);
#endif /* TEST_CRYPTODEV_BLOCKCIPHER_H_ */