The new RSA API has moved from long ad hoc argument lists to parameter(s) structs. What about using a similar approach for ECC as well? Things are a bit more complicated with ECC so one `..._opts` struct may not be enough. Here is the basic idea based on structs: ltc_ecc_sign_opts_v3, ltc_ecc_verify_opts_v3, ltc_ecc_recovery_opts_v3, and ltc_ecc_crypt_opts_v3 New public ECC functions: ``` int ecc_sign_hash_v3(const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen, const ltc_ecc_sign_opts_v3 *opts, int *recid_out, const ecc_key *key); int ecc_verify_hash_v3(const unsigned char *sig, unsigned long siglen, const unsigned char *hash, unsigned long hashlen, const ltc_ecc_verify_opts_v3 *opts, int *stat, const ecc_key *key); int ecc_recover_key_v3(const unsigned char *sig, unsigned long siglen, const unsigned char *hash, unsigned long hashlen, const ltc_ecc_recovery_opts_v3 *opts, ecc_key *key); int ecc_encrypt_key_v3(const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen, const ltc_ecc_crypt_opts_v3 *opts, const ecc_key *key); int ecc_decrypt_key_v3(const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen, const ltc_ecc_crypt_opts_v3 *opts, const ecc_key *key); ``` Deprecated (but still available) public ECC functions: ``` ecc_sign_hash ecc_sign_hash_v2 ecc_verify_hash ecc_verify_hash_v2 ecc_sign_hash_rfc7518 ecc_verify_hash_rfc7518 ecc_encrypt_key ecc_decrypt_key ecc_recover_key ``` @sjaeckel what do you think?