我正在尝试使用英飞凌XMC4500 f100k1024生成RSA 1024位密钥对。 目前,我使用openssl在外部生成密钥对。然后,为了签名和验证数据,我使用mbedtls包没有问题。使用此软件包生成此RSA密钥对我没有成功。
我尝试使用mbedtls上可用的函数来生成密钥对(mbedtls_ctr_drbg_seed和mbedtls_rsa_gen_key),但是,在其中一个函数中(在mbedtls_rsa_gen_key上,当我找到Q素数时),该程序最终在一个困难的地方结束了故障情况。
#define KEY_SIZE 1024
#define EXPONENT 65537
void create_rsa_keys() {
uint8_t error_found = 0;
mbedtls_rsa_context rsa;
mbedtls_rsa_init( &rsa, MBEDTLS_RSA_PKCS_V15, 0 );
const char *pers = "rsa_genkey";
mbedtls_entropy_context entropy;
mbedtls_ctr_drbg_context ctr_drbg;
mbedtls_ctr_drbg_init( &ctr_drbg );
mbedtls_entropy_init( &entropy );
error_found = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
(const unsigned char *) pers, strlen( pers ));
if( error_found != 0 ){
error_found = 100;
}
error_found = mbedtls_rsa_gen_key( &rsa, mbedtls_ctr_drbg_random, &ctr_drbg, KEY_SIZE,
EXPONENT );
if( error_found != 0 ){
error_found = 100;
}
error_found = 1;
}
你能告诉我我做错了什么吗?还有更多可用于在微控制器单元上创建RSA密钥的软件包吗?
编辑:错误在我调用函数mbedtls_rsa_gen_key的行上发生。 KEY_SIZE为1024,指数为65537。
最好的问候, 里卡多