#ifndef included_unittest_crypto_crypto_h
#define included_unittest_crypto_crypto_h
+#define CRYPTO_TEST_MAX_OP_CHUNKS 8
+
typedef struct
{
u32 length;
typedef struct unittest_crypto_test_registration
{
char *name;
- vnet_crypto_alg_t alg:8;
- vnet_crypto_op_type_t op:8;
- unittest_crypto_test_data_t iv, key, data, expected;
+ vnet_crypto_alg_t alg;
+ unittest_crypto_test_data_t iv, key, digest, plaintext, ciphertext, aad,
+ tag;
+ u32 plaintext_incremental;
+ u8 is_chained;
+
+ /* plaintext and cipher text data used for testing chained buffers */
+ unittest_crypto_test_data_t pt_chunks[CRYPTO_TEST_MAX_OP_CHUNKS + 1];
+ unittest_crypto_test_data_t ct_chunks[CRYPTO_TEST_MAX_OP_CHUNKS + 1];
/* next */
struct unittest_crypto_test_registration *next;
typedef struct
{
int verbose;
+ u8 *inc_data;
+
+ /* perf */
+ vnet_crypto_alg_t alg;
+ u32 warmup_rounds;
+ u32 rounds;
+ u32 buffer_size;
+ u32 n_buffers;
+
unittest_crypto_test_registration_t *test_registrations;
} crypto_test_main_t;
extern crypto_test_main_t crypto_test_main;
#define TEST_DATA(n) { .data = (u8 *) n, .length = sizeof (n)}
+#define TEST_DATA_CHUNK(s,off,n) { .data = (u8 *) s + off, .length = n}
#define UNITTEST_REGISTER_CRYPTO_TEST(x) \
unittest_crypto_test_registration_t __unittest_crypto_test_##x; \