1

我正在尝试移植在 Ameba Board 上使用 mbedtls 的 AWS SDK。我有一个 AWS 功能:iot_tls_connect 来初始化 mbedtls。

MCU 有一个 TRNG,但在第一阶段使用 HW TRNG 并不重要。软件 RNG 和熵可以很好。我尝试了很多不同的组合和 mbedtls 配置,但出现以下错误

iot_tls_connect: mbedtls_ssl_handshake(): RSA - 随机生成器无法生成非零 aws_iot_mqtt_connect 失败 SSL 握手错误

我最后的代码

mbedtls_net_init(&server_fd);
mbedtls_ssl_init(&ssl);
mbedtls_ssl_config_init(&conf);
mbedtls_ctr_drbg_init(&ctr_drbg);
mbedtls_x509_crt_init(&cacert);
mbedtls_x509_crt_init(&clicert);
mbedtls_pk_init(&pkey);
/*  my_random returns random values from HW TRNG */
mbedtls_ssl_conf_rng(&ssl, my_random, NULL);

IOT_DEBUG("Seeding the random number generator...");
mbedtls_entropy_init(&entropy);

/* Added to test */
ret = mbedtls_entropy_add_source(&entropy, entropy_dummy_source, NULL, 16, 1);

if((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, pers, strlen(pers))) != 0) { ... }

/* Added for test as suggested in tutorials */
mbedtls_ctr_drbg_set_prediction_resistance(&ctr_drbg, MBEDTLS_CTR_DRBG_PR_ON );

它可能与我的配置文件有关。教程没有帮助。它阻止了我。任何想法。

谢谢你。

4

1 回答 1

1

我正在使用 Ameba SDK,我在他们对 AES.c 中的 HW Crypto 模块的修改中发现了一个错误。这就是原因,所以不是一个普遍的问题。

于 2017-08-05T15:17:03.487 回答