VNET_CRYPTO_OP_STATUS_PENDING,
VNET_CRYPTO_OP_STATUS_COMPLETED,
VNET_CRYPTO_OP_STATUS_FAIL_NO_HANDLER,
+ VNET_CRYPTO_OP_STATUS_FAIL_BAD_HMAC,
} vnet_crypto_op_status_t;
typedef struct
{
CLIB_CACHE_LINE_ALIGN_MARK (cacheline0);
- vnet_crypto_op_type_t op:16;
+ vnet_crypto_op_type_t op:8;
vnet_crypto_op_status_t status:8;
u8 key_len, hmac_trunc_len;
u16 flags;
-#define VNET_CRYPTO_OP_FLAG_INIT_IV 1
+#define VNET_CRYPTO_OP_FLAG_INIT_IV (1 << 0)
+#define VNET_CRYPTO_OP_FLAG_HMAC_CHECK (1 << 1)
u32 len;
u8 *key;
u8 *iv;
format_function_t format_vnet_crypto_engine;
format_function_t format_vnet_crypto_op;
+
+static_always_inline void
+vnet_crypto_op_init (vnet_crypto_op_t * op, vnet_crypto_op_type_t type)
+{
+ if (CLIB_DEBUG > 0)
+ clib_memset (op, 0xfe, sizeof (*op));
+ op->op = type;
+ op->flags = 0;
+}
+
#endif /* included_vnet_crypto_crypto_h */
/*