octeon: fix invalid mac length in chacha poly 87/42487/2
authorNithinsen Kaithakadan <[email protected]>
Sun, 9 Mar 2025 13:16:01 +0000 (18:46 +0530)
committerDamjan Marion <[email protected]>
Tue, 1 Apr 2025 14:10:36 +0000 (14:10 +0000)
This patch fixes invalid mac length to resolve crash in Chacha Poly.

Type: fix

Signed-off-by: Nithinsen Kaithakadan <[email protected]>
Change-Id: Ia940a721b5cb47f7b5fe68adbea78adaaa0f54f0

src/plugins/dev_octeon/crypto.c

index 800f24a..cc0b073 100644 (file)
@@ -1354,7 +1354,7 @@ oct_crypto_aead_session_update (vlib_main_t *vm, oct_crypto_sess_t *sess,
   vnet_crypto_key_t *key = vnet_crypto_get_key (key_index);
   roc_se_cipher_type enc_type = 0;
   roc_se_auth_type auth_type = 0;
-  u32 digest_len = ~0;
+  u32 digest_len = 16;
   i32 rv = 0;
 
   switch (key->alg)
@@ -1366,9 +1366,6 @@ oct_crypto_aead_session_update (vlib_main_t *vm, oct_crypto_sess_t *sess,
       sess->aes_gcm = 1;
       sess->iv_offset = 0;
       sess->iv_length = 16;
-      sess->cpt_ctx.mac_len = 16;
-      sess->cpt_op = type;
-      digest_len = 16;
       break;
     case VNET_CRYPTO_ALG_CHACHA20_POLY1305:
       enc_type = ROC_SE_CHACHA20;
@@ -1381,6 +1378,9 @@ oct_crypto_aead_session_update (vlib_main_t *vm, oct_crypto_sess_t *sess,
       return -1;
     }
 
+  sess->cpt_ctx.mac_len = digest_len;
+  sess->cpt_op = type;
+
   rv = roc_se_ciph_key_set (&sess->cpt_ctx, enc_type, key->data, key->length);
   if (rv)
     {