首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED

MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED
EN

Stack Overflow用户
提问于 2018-05-24 22:04:15
回答 1查看 1.2K关注 0票数 0

我试图将Diffie-Hellman密钥交换(客户端)编码到XMC4500中,我正在使用ARMmbed库

这是我得到的代码(基于client.c):

int dhm (void) {

代码语言:javascript
复制
int ret;
size_t n, buflen;

unsigned char *p, *end;
unsigned char buf[512];
unsigned char hash[32];
const char *pers = "dh_client";

mbedtls_entropy_context entropy;
mbedtls_ctr_drbg_context ctr_drbg;
mbedtls_rsa_context rsa;
mbedtls_dhm_context dhm;
mbedtls_aes_context aes;

mbedtls_rsa_init( &rsa, MBEDTLS_RSA_PKCS_V15, MBEDTLS_MD_SHA256 );
mbedtls_dhm_init( &dhm );
mbedtls_aes_init( &aes );
mbedtls_ctr_drbg_init( &ctr_drbg );

/*
 * 1. Setup the RNG
 */

mbedtls_entropy_init( &entropy );
ret = mbedtls_ctr_drbg_seed( &ctr_drbg,
                            mbedtls_entropy_func,
                            &entropy,
                            (const unsigned char *) pers,
                            strlen( pers ) );

mbedtls_aes_free( &aes );
mbedtls_rsa_free( &rsa );
mbedtls_dhm_free( &dhm );
mbedtls_ctr_drbg_free( &ctr_drbg );
mbedtls_entropy_free( &entropy );

return ret;}

我没有尝试更进一步,因为它不起作用,而且它是dhm算法的开始。函数mbedtls_ctr_drbg_seed正在返回MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED.

MBEDTLS_CTR_DRBG_MAX_SEED_INPUT中,我还必须将drbg.h从384(默认)编辑到336,否则代码就会崩溃。其他一切都是默认的。

有人知道为什么要返回这个错误吗?提前谢谢。

注:我在main中调用这个函数。运行代码不会给出任何错误。

EN

回答 1

Stack Overflow用户

发布于 2018-06-07 14:49:49

当熵函数(mbedtls_entropy_func)失败时,将返回此错误。你有启用熵源吗?您可能没有在您的平台中配置任何强熵源,从而导致此故障。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50518826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档