1
我試圖移植在Ameba Board上使用mbedtls的AWS SDK。我有一個AWS的函數:iot_tls_connect來初始化mbedtls。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);
它可以關於我的配置文件。教程沒有幫助。它擋住了我。任何想法。
謝謝。