mbedTLS ECC操作

问题描述 投票:2回答:1

我已经在mbedtls的文档中搜索了我的问题,但没有明确的答案。

有没有办法用mbedTLS生成公钥和私钥ECC密钥?在教程的帮助下,我已经让sha256正常工作了,但似乎没有很好地记录ECC operations

有关于如何在NIST P-256曲线上生成私钥/公钥的示例吗?

谢谢你的帮助。

c elliptic-curve mbedtls
1个回答
2
投票

以下是生成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

© www.soinside.com 2019 - 2024. All rights reserved.