完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我目前正在尝试从我的 ANS.1 DER 签名中获取 r 和 s,由我的 ATECC608B 签名。我需要这些来构建 64 字节签名和 base64 编码以在我的 jwt 中使用。我已经尝试过这样做,但是我返回的 base-64 签名包含(无效?)字符/符号,例如/和+。以下是我对 32 字节 (MBEDTLS_MD_SHA256) 哈希进行签名的方式:
代码:全选 ret = mbedtls_pk_sign(&pkey, MBEDTLS_MD_SHA256, hash, 0, signature, MBEDTLS_MPI_MAX_SIZE, olen, mbedtls_ctr_drbg_random, &ctr_drbg); 这就是我初始化 r 和 s 的方式: 代码:全选 unsigned char *p = (unsigned char *)signature; const unsigned char *end = signature + *olen; size_t len; mbedtls_mpi r, s; mbedtls_mpi_init(&r); mbedtls_mpi_init(&s); if ((ret = mbedtls_asn1_get_tag(&p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { ret += MBEDTLS_ERR_ECP_BAD_INPUT_DATA; goto cleanup; } if (p + len != end) { ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; goto cleanup; } if ((ret = mbedtls_asn1_get_mpi(&p, end, &r)) != 0 || (ret = mbedtls_asn1_get_mpi(&p, end, &s)) != 0) { ret += MBEDTLS_ERR_ECP_BAD_INPUT_DATA; goto cleanup; } 这就是我分别检索 32 字节 r 和 s 的方式: 代码:全选 unsigned char r_str[32]; unsigned char s_str[32]; size_t r_len = 32; ret = mbedtls_mpi_write_binary(&r, r_str, r_len); ret = mbedtls_mpi_write_binary(&s, s_str, r_len); 最后,我将这些组合起来并将它们编码为 base 64,如下所示: 代码:全选 unsigned char r_s_bin[64]; size_t r_s_len = 0; memcpy(r_s_bin, r_str, 32); memcpy(r_s_bin + 32, s_str, 32); unsigned char r_s_b64[2048]; size_t r_s_b64_len = 2048; (void)atcab_base64encode((uint8_t *)r_s_bin, 64, (char *)r_s_b64, &r_s_b64_len); ESP_LOGI(TAG, "Base64 encoded ECDSA signature (%i): %s", r_s_b64_len, r_s_b64); 这是当前典型签名的样子(base-64 编码): 代码:全选 znSBPTFzIHZ7piKsjaHWEizMi/05ygIHBhmoM+lI8aumUrv5maz9lPaG2xxynF9WO6nLGk2fwCgQReARuOTF+A== |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
944 浏览 0 评论
1671 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5015 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1250浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2329浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2525浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 19:32 , Processed in 0.463459 second(s), Total 38, Slave 31 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1804
