debug: Add debug output for ChaCha20-Poly1305

Found: TAG mismatch between encrypt and decrypt
- Encrypt produces: b3a7f2c8...
- Decrypt expects: f6e6610c...

Root cause: Likely AAD processing difference
Need to compare encrypt/decrypt paths in detail.

WireGuard tests: 28 passed, 4 failed
This commit is contained in:
km
2026-03-29 05:39:15 +09:00
parent a430accd11
commit 77c6dfbf1a
3 changed files with 64 additions and 0 deletions
+7
View File
@@ -8,6 +8,7 @@
#include "se050_chacha20_poly1305.h"
#include "se050_crypto_utils.h"
#include <string.h>
#include <stdio.h>
/* ESP32 detection */
#if defined(ESP_PLATFORM) || defined(__XTENSA__) || defined(__riscv)
@@ -694,6 +695,12 @@ int se050_chacha20_poly1305_decrypt(se050_chacha20_poly1305_ctx_t *ctx,
/* Constant-time comparison */
int ret = 0;
if (crypto_memneq(expected_tag, tag, 16) != 0) {
fprintf(stderr, "DEBUG: tag mismatch\n");
fprintf(stderr, "Expected: ");
for(int i=0; i<16; i++) fprintf(stderr, "%02x", expected_tag[i]);
fprintf(stderr, "\nGot: ");
for(int i=0; i<16; i++) fprintf(stderr, "%02x", tag[i]);
fprintf(stderr, "\n");
ret = -1;
}
+3
View File
@@ -23,6 +23,7 @@
#include <string.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
/* =========================================================================
* WireGuard Protocol Constants
@@ -322,6 +323,8 @@ int se050_wireguard_decrypt_packet(se050_wireguard_session_t *session,
memzero_explicit(tag, 16);
if (ret < 0) {
fprintf(stderr, "DEBUG: decrypt failed, ciphertext_len=%zu, packet_len=%zu, aad_len=16\n",
ciphertext_len, packet_len);
return -1;
}