int err;
ecc_key key;
const ltc_ecc_set_type* dp;
unsigned char buf[32];
/* generate a new key + export the private key to buf[] */
if ((err = ecc_get_set_by_name("SECP256K1", &dp)) != CRYPT_OK) return err;
if ((err = ecc_make_key_ex(&yarrow_prng, find_prng("yarrow"), &key, dp)) != CRYPT_OK) return err;
len = sizeof(buf);
if ((err = ecc_get_key(buf, &len, PK_PRIVATE, &key)) != CRYPT_OK) return err;
ecc_free(&key);
/* load existing private key from buf[] */
if ((err = ecc_get_set_by_name("SECP256K1", &dp)) != CRYPT_OK) return err;
if ((err = ecc_set_dp(dp, &key)) != CRYPT_OK) return err;
if ((err = ecc_set_key(buf, len, PK_PRIVATE, &key)) != CRYPT_OK) return err;
ecc_free(&key);