summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/dev_octeon/crypto.c24
-rw-r--r--src/plugins/dev_octeon/crypto.h2
2 files changed, 16 insertions, 10 deletions
diff --git a/src/plugins/dev_octeon/crypto.c b/src/plugins/dev_octeon/crypto.c
index df6670e2eab..7333da1119e 100644
--- a/src/plugins/dev_octeon/crypto.c
+++ b/src/plugins/dev_octeon/crypto.c
@@ -1181,7 +1181,7 @@ oct_crypto_link_session_update (vlib_main_t *vm, oct_crypto_sess_t *sess,
key = vnet_crypto_get_key (key_index);
- switch (key->async_alg)
+ switch (key->alg)
{
case VNET_CRYPTO_ALG_AES_128_CBC_SHA1_TAG12:
case VNET_CRYPTO_ALG_AES_192_CBC_SHA1_TAG12:
@@ -1264,8 +1264,8 @@ oct_crypto_link_session_update (vlib_main_t *vm, oct_crypto_sess_t *sess,
break;
default:
clib_warning (
- "Cryptodev: Undefined link algo %u specified. Key index %u",
- key->async_alg, key_index);
+ "Cryptodev: Undefined link algo %u specified. Key index %u", key->alg,
+ key_index);
return -1;
}
@@ -1279,7 +1279,7 @@ oct_crypto_link_session_update (vlib_main_t *vm, oct_crypto_sess_t *sess,
crypto_key = vnet_crypto_get_key (key->index_crypto);
rv = roc_se_ciph_key_set (&sess->cpt_ctx, enc_type, crypto_key->data,
- vec_len (crypto_key->data));
+ crypto_key->length);
if (rv)
{
clib_warning ("Cryptodev: Error in setting cipher key for enc type %u",
@@ -1290,7 +1290,7 @@ oct_crypto_link_session_update (vlib_main_t *vm, oct_crypto_sess_t *sess,
auth_key = vnet_crypto_get_key (key->index_integ);
rv = roc_se_auth_key_set (&sess->cpt_ctx, auth_type, auth_key->data,
- vec_len (auth_key->data), digest_len);
+ auth_key->length, digest_len);
if (rv)
{
clib_warning ("Cryptodev: Error in setting auth key for auth type %u",
@@ -1311,7 +1311,7 @@ oct_crypto_aead_session_update (vlib_main_t *vm, oct_crypto_sess_t *sess,
u32 digest_len = ~0;
i32 rv = 0;
- switch (key->async_alg)
+ switch (key->alg)
{
case VNET_CRYPTO_ALG_AES_128_GCM:
case VNET_CRYPTO_ALG_AES_192_GCM:
@@ -1331,7 +1331,7 @@ oct_crypto_aead_session_update (vlib_main_t *vm, oct_crypto_sess_t *sess,
default:
clib_warning (
"Cryptodev: Undefined cipher algo %u specified. Key index %u",
- key->async_alg, key_index);
+ key->alg, key_index);
return -1;
}
@@ -1422,7 +1422,7 @@ oct_crypto_enqueue_enc_dec (vlib_main_t *vm, vnet_crypto_async_frame_t *frame,
oct_crypto_key_t *key;
vlib_buffer_t *buffer;
u16 adj_len;
- int ret;
+ int ret = 0;
/* GCM packets having 8 bytes of aad and 8 bytes of iv */
u8 aad_iv = 8 + 8;
@@ -1458,7 +1458,13 @@ oct_crypto_enqueue_enc_dec (vlib_main_t *vm, vnet_crypto_async_frame_t *frame,
sess = key->sess;
if (PREDICT_FALSE (!sess->initialised))
- oct_crypto_session_init (vm, sess, elts->key_index, type);
+ ret = oct_crypto_session_init (vm, sess, elts->key_index, type);
+ if (ret)
+ {
+ oct_crypto_update_frame_error_status (
+ frame, i, VNET_CRYPTO_OP_STATUS_FAIL_ENGINE_ERR);
+ return -1;
+ }
crypto_dev = sess->crypto_dev;
diff --git a/src/plugins/dev_octeon/crypto.h b/src/plugins/dev_octeon/crypto.h
index 0a3b796d3dd..bee2db8f9ed 100644
--- a/src/plugins/dev_octeon/crypto.h
+++ b/src/plugins/dev_octeon/crypto.h
@@ -143,7 +143,7 @@ typedef struct
typedef struct
{
oct_crypto_dev_t *crypto_dev[OCT_MAX_N_CPT_DEV];
- oct_crypto_key_t *keys[VNET_CRYPTO_ASYNC_OP_N_TYPES];
+ oct_crypto_key_t *keys[VNET_CRYPTO_OP_N_TYPES];
oct_crypto_pending_queue_t *pend_q;
int n_cpt;
u8 started;