mbedtls aes加密算法C语言实现,在ESP32解密上使用MBEDTLS的AES128-GCM不工作

我目前正在进行一个项目,用ESP32和ESP-IDF工具链对来自智能仪表的字节流进行解密。(对于感兴趣的人员,此处提供智能仪表规范:

P1PortSpecification.pdf

第9页第2.6章)。

我使用状态机将流拆分为文档中找到的不同部分,并在将它们打印到终端时按预期获得结果,因此我认为当前输入是正确的。

到了解密有效负载的最后状态,我不确定是否正确地使用了MBEDTLS库,因为我无法使它正常工作。使用的加密是aes128-gcm,因此我使用gcm.h。下面是我的当前函数:

int decrypt_next_telegram(unsigned char *output) {

//Run the state machine, and get pointers to the IV, cipher and length, GCM tag

Encrypted_Data ed = get_next_telegram();

//Key specific to my smart meter I use for testing purposes and the Auth data

const unsigned char key[] = {0xD4, 0x91, 0x47, 0x0F, 0x47, 0x12, 0x63,

0x32, 0xB0, 0x7D, 0x19, 0x23, 0xB3, 0x50, 0x41, 0x88};

const unsigned char aad[] = {0x30, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,

0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF}

mbedtls_gcm_context ctx;

mbedtls_gcm_init(&ctx);

int er

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值