如何使用XMC4500正确生成1024位rsa密钥对?

时间:2019-05-13 10:03:45

标签: cryptography rsa mbedtls infineon

我正在尝试使用英飞凌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。

最好的问候, 里卡多

0 个答案:

没有答案