Операции mbedTLS ECC - PullRequest
       22

Операции mbedTLS ECC

0 голосов
/ 26 февраля 2019

Я уже искал свой вопрос в документации mbedtls, но явного ответа не было.

Можно ли с помощью mbedTLS генерировать открытые и закрытые ключи ECC?У меня уже есть sha256, работающий должным образом, с помощью учебника, но кажется, что ECC operations плохо документированы.

Есть ли пример того, как генерировать закрытый / открытый ключна кривой NIST P-256?

Спасибо за помощь.

1 Ответ

0 голосов
/ 26 февраля 2019

Вот пример кода для генерации ключей ECC (но без проверки возвращаемого значения):

    mbedtls_pk_context key;
    mbedtls_entropy_context entropy;
    mbedtls_ctr_drbg_context ctr_drbg;

    mbedtls_pk_type_t pk_alg = MBEDTLS_PK_ECKEY;

    mbedtls_pk_init(&key);
    mbedtls_entropy_init( &entropy );
    mbedtls_ctr_drbg_init(&ctr_drbg);


    ret = mbedtls_pk_setup(&key, mbedtls_pk_info_from_type(pk_alg));

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

    ret = mbedtls_ecp_gen_key(<KEY TYPE>,
                              mbedtls_pk_ec(key),
                              mbedtls_ctr_drbg_random,
                              &ctr_drbg
    );

Где <KEY_TYPE> можно найти по адресу: https://tls.mbed.org/api/ecp_8h.html#af79e530ea8f8416480f805baa20b1a2d и в вашемдело должно быть MBEDTLS_ECP_DP_SECP256R1.

...