这个报错的意思,大概就是生成伪随机数的函数不可用,可以自己写个伪随机数的生成函数,然后传入的时候替换。但是这办法太不优雅啦。 在RTL87xx平台上,最终发现是 MBEDTLS_ENTROPY_HARDWARE_ALT 这个宏没有打开。…
state->net_ctx.fd = fd;if(mbedtls_ctr_drbg_seed(&state->ctr_drbg, mbedtls_entropy_func, &state->entropy, (constunsignedchar*)pers,strlen(pers)) !=0)gotoerror;#ifdefined(MBEDTLS_X509_CRT_PARSE_C)if(mbedtls_x509_crt_parse(&state->ca, (constunsignedchar*)cacert_pem,sizeof(cacert_pem)...
* #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT * - #MBEDTLS_CTR_DRBG_ENTROPY_LEN. * * \return \c 0 on success. * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on failure. */ int mbedtls_ctr_drbg_seed( mbedtls_ctr_drbg_context *ctx, int (*f_entropy)(void *, unsigned char *, size_...
mbedtls_ecp_point_init(&server_pub); /* 2. update seed with we own interface ported */ printf( "\n . Seeding the random number generator..." ); ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, (const unsigned char *) pers, strlen(pers)); if(ret != 0)...
可设置为任意值constchar*personalization ="RLOSLEFOS-DRBG-11";mbedtls_entropy_init(&entropy_context);mbedtls_ctr_drbg_init(ctr_drbg_context);//第一次播种,无TRNG作为种子intresult =mbedtls_ctr_drbg_seed(ctr_drbg_context, mbedtls_entropy_func, &entropy_context, personalization,strlen(personalization)...
{logMsg( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); } //配置证书信息,单向认证如果不需要客户端检查证书,可不配置进行证书 ret = mbedtls_x509_crt_parse( &cacert, (const unsigned char *) mbedtls_test_cas_pem, mbedtls_test_cas_pem_len ); ...
其中mebdtls_ctr_drbg_seed()可以指定熵函数。如果回调使用默认的mbedtls_entropy_func的话,可以传入一个初始的熵seed,也可以NULL Connect 阶段 mbedtls_net_connect():参数是server和端口,均为字符串。server可以使域名或者IP字符串。最后一个参数使用MBEDTLS_NET_PROTO_TCP即可。端口号不仅仅可以传入数字字符串,也可...
mbedtls使用CTR_DRBG(Counter-Mode Deterministic Random Byte Generator)作为伪随机数生成器。CTR_DRBG基于分组密码算法的计数器模式,通常使用AES作为底层加密算法。CTR_DRBG通过结合一个种子(seed)和一个个性化字符串(personalization string)来初始化,并在需要时从熵源(entropy source)获取额外的熵以增强随机性。
printf("failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); }//MBEDTLS_SSL_IS_CLIENT 表示配置为客户端//MBEDTLS_SSL_TRANSPORT_STREAM 表示传输方式为TLS//设置版本, MBEDTLS_SSL_PRESET_DEFAULT 表示 TLS1.0if( ( ret = mbedtls_ssl_config_defaults( &conf, ...
CRT_DRBG:使用分组密码算法的计数器模式作为随机数生成的基础算法(重点)。 CRT_DRBG 可以理解为一个AES加密过程,加密结果为期望随机数序列。 二、自定义熵源接口 mbedtls中可以通过开启宏定义 MBEDTLS_ENTROPY_HARDWARE_ALT 来开启熵源接口,用户可以在熵源接口中实现自己的硬件获取真随机数代码。