首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mbedtls: mbedtls_ctr_drbg_seed错误

mbedtls: mbedtls_ctr_drbg_seed错误
EN

Stack Overflow用户
提问于 2018-02-19 13:36:37
回答 1查看 2.3K关注 0票数 4

我使用mbedtls运行SSL服务器。函数mbedtls_ctr_drbg_seed返回-34。我的代码如下:

代码语言:javascript
复制
const char *pers = "ssl_server2";
  mbedtls_havege_state hs;
  mbedtls_ssl_session ssn;
  mbedtls_entropy_context entropy;
  mbedtls_ctr_drbg_context ctr_drbg;
  // One HTTPS Request Handling
  memset( &ssn, 0, sizeof( mbedtls_ssl_session ) );
  /*
  * 4. Setup stuff
  */
  mbedtls_ssl_init( &ssl );
  mbedtls_ssl_config_init( &conf );
  mbedtls_ctr_drbg_init( &ctr_drbg );
  mbedtls_entropy_init( &entropy );
  printf( "  . Setting up the RNG and SSL data...." );
  if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, (const unsigned char *) pers, sizeof( pers ) ) ) != 0 )
  {
     printf( " failed\n  ! mbedtls_ctr_drbg_seed returned -0x%x\n", -ret );
     goto ExitFunction;
  }
  else
     printf( " mbedtls_ctr_drbg_seed returned 0x%x ok\n", ret );
EN

回答 1

Stack Overflow用户

发布于 2018-03-25 13:33:21

正如@Gille正确地说的那样,您正在接收的错误可能是-0x34,即MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED。当函数mbedtls_entropy_func()失败时,将返回此错误。请检查您使用的熵源是否足够强,这意味着您在添加mbedtls_entropy_add_source()时至少有一个强熵源。您还应该验证所使用的熵源是否能够收集足够的熵,并且超过设置到源的阈值。

还有一些mbedtls_entropy_func()可能会失败的地方,因此我建议您也检查这些位置。

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

https://stackoverflow.com/questions/48867423

复制
相关文章

相似问题

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