#include "crypto.h" #include "system.h" #include #include #include #include #include #include #include /* * Uncomment to force use of a specific curve */ #define ECPARAMS MBEDTLS_ECP_DP_SECP256R1 bool crypto_gen_priv_key() { int ret = 1; const char *pers = "ecdsa"; mbedtls_entropy_context entropy; mbedtls_entropy_init(&entropy); mbedtls_ecdsa_context ctx_sign; mbedtls_ecdsa_init(&ctx_sign); mbedtls_ctr_drbg_context ctr_drbg; if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, (const unsigned char *)pers, strlen(pers))) != 0) { mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); reboot(); } // Generate private key if ((ret = mbedtls_ecdsa_genkey(&ctx_sign, ECPARAMS, mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { mbedtls_printf(" failed\n ! mbedtls_ecdsa_genkey returned %d\n", ret); reboot(); } mbedtls_pk_context key_ctx; mbedtls_ecp_gen_keypair mbedtls_pk_write_key_pem() }