mbedtls, почему я получаю сообщение об ошибке "Генератору случайных чисел не удалось создать ненулевые значения"

Я пытаюсь портировать AWS SDK, который использует mbedtls на плате Ameba. У меня есть функция для AWS: iot_tls_connect для инициализации mbedtls.

MCU имеет TRNG, но на первом этапе не важно использовать HW TRNG. А программный ГСЧ и энтропия могут подойти. Я пробовал много разных комбинаций и конфиг 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 );

Это может быть о моем файле конфигурации. Учебники не помогли. Это блокирует меня. Любая идея.

Спасибо.

1 ответ

Я использую Ameba SDK и обнаружил ошибку в их модификации для модуля HW Crypto в AES.c. Это была причина, поэтому не общая проблема.

Другие вопросы по тегам