37struct cx_ecfp_public_key_s {
 
   44struct cx_ecfp_private_key_s {
 
   51struct cx_ecfp_256_public_key_s {
 
   57struct cx_ecfp_256_private_key_s {
 
   63struct cx_ecfp_256_extended_private_key_s {
 
   69typedef struct cx_ecfp_256_public_key_s cx_ecfp_256_public_key_t;
 
   71typedef struct cx_ecfp_256_private_key_s cx_ecfp_256_private_key_t;
 
   73typedef struct cx_ecfp_256_extended_private_key_s cx_ecfp_256_extended_private_key_t;
 
   76typedef struct cx_ecfp_256_public_key_s  cx_ecfp_public_key_t;
 
   77typedef struct cx_ecfp_256_private_key_s cx_ecfp_private_key_t;
 
   80struct cx_ecfp_384_public_key_s {
 
   86struct cx_ecfp_384_private_key_s {
 
   92typedef struct cx_ecfp_384_private_key_s cx_ecfp_384_private_key_t;
 
   94typedef struct cx_ecfp_384_public_key_s cx_ecfp_384_public_key_t;
 
   97struct cx_ecfp_512_public_key_s {
 
  103struct cx_ecfp_512_private_key_s {
 
  109struct cx_ecfp_512_extented_private_key_s {
 
  115typedef struct cx_ecfp_512_public_key_s cx_ecfp_512_public_key_t;
 
  117typedef struct cx_ecfp_512_private_key_s cx_ecfp_512_private_key_t;
 
  119typedef struct cx_ecfp_512_extented_private_key_s cx_ecfp_512_extented_private_key_t;
 
  122struct cx_ecfp_640_public_key_s {
 
  128struct cx_ecfp_640_private_key_s {
 
  134typedef struct cx_ecfp_640_public_key_s cx_ecfp_640_public_key_t;
 
  136typedef struct cx_ecfp_640_private_key_s cx_ecfp_640_private_key_t;
 
  163WARN_UNUSED_RESULT cx_err_t cx_ecfp_add_point_no_throw(cx_curve_t     curve,
 
  172DEPRECATED 
static inline size_t cx_ecfp_add_point(cx_curve_t           curve,
 
  174                                                  const unsigned char *P,
 
  175                                                  const unsigned char *Q,
 
  180    CX_THROW(cx_ecfp_add_point_no_throw(curve, R, P, Q));
 
  183    CX_THROW(cx_ecdomain_parameters_length(curve, &size));
 
  213WARN_UNUSED_RESULT cx_err_t cx_ecfp_scalar_mult_no_throw(cx_curve_t     curve,
 
  222DEPRECATED 
static inline size_t cx_ecfp_scalar_mult(cx_curve_t           curve,
 
  225                                                    const unsigned char *k,
 
  230    CX_THROW(cx_ecfp_scalar_mult_no_throw(curve, P, k, k_len));
 
  233    CX_THROW(cx_ecdomain_parameters_length(curve, &size));
 
  261WARN_UNUSED_RESULT cx_err_t cx_ecfp_init_public_key_no_throw(cx_curve_t            curve,
 
  262                                                             const uint8_t        *rawkey,
 
  264                                                             cx_ecfp_public_key_t *key);
 
  270DEPRECATED 
static inline size_t cx_ecfp_init_public_key(cx_curve_t            curve,
 
  271                                                        const unsigned char  *rawkey,
 
  272                                                        unsigned int          key_len,
 
  273                                                        cx_ecfp_public_key_t *key)
 
  275    CX_THROW(cx_ecfp_init_public_key_no_throw(curve, rawkey, key_len, key));
 
  299WARN_UNUSED_RESULT cx_err_t cx_ecfp_init_private_key_no_throw(cx_curve_t             curve,
 
  300                                                              const uint8_t         *rawkey,
 
  302                                                              cx_ecfp_private_key_t *pvkey);
 
  308DEPRECATED 
static inline size_t cx_ecfp_init_private_key(cx_curve_t             curve,
 
  309                                                         const unsigned char   *rawkey,
 
  311                                                         cx_ecfp_private_key_t *pvkey)
 
  313    CX_THROW(cx_ecfp_init_private_key_no_throw(curve, rawkey, key_len, pvkey));
 
  342WARN_UNUSED_RESULT cx_err_t cx_ecfp_generate_pair_no_throw(cx_curve_t             curve,
 
  343                                                           cx_ecfp_public_key_t  *pubkey,
 
  344                                                           cx_ecfp_private_key_t *privkey,
 
  351DEPRECATED 
static inline int cx_ecfp_generate_pair(cx_curve_t             curve,
 
  352                                                   cx_ecfp_public_key_t  *pubkey,
 
  353                                                   cx_ecfp_private_key_t *privkey,
 
  356    CX_THROW(cx_ecfp_generate_pair_no_throw(curve, pubkey, privkey, keepprivate));
 
  387WARN_UNUSED_RESULT cx_err_t cx_ecfp_generate_pair2_no_throw(cx_curve_t             curve,
 
  388                                                            cx_ecfp_public_key_t  *pubkey,
 
  389                                                            cx_ecfp_private_key_t *privkey,
 
  397DEPRECATED 
static inline int cx_ecfp_generate_pair2(cx_curve_t             curve,
 
  398                                                    cx_ecfp_public_key_t  *pubkey,
 
  399                                                    cx_ecfp_private_key_t *privkey,
 
  403    CX_THROW(cx_ecfp_generate_pair2_no_throw(curve, pubkey, privkey, keepprivate, hashID));
 
  407#ifdef HAVE_ECC_TWISTED_EDWARDS 
  443WARN_UNUSED_RESULT cx_err_t cx_eddsa_get_public_key_no_throw(
const cx_ecfp_private_key_t *pvkey,
 
  445                                                             cx_ecfp_public_key_t        *pukey,
 
  455DEPRECATED 
static inline void cx_eddsa_get_public_key(
const cx_ecfp_private_key_t *pvkey,
 
  457                                                      cx_ecfp_public_key_t        *pukey,
 
  463    CX_THROW(cx_eddsa_get_public_key_no_throw(pvkey, hashID, pukey, a, a_len, h, h_len));
 
  488WARN_UNUSED_RESULT cx_err_t cx_edwards_compress_point_no_throw(cx_curve_t curve,
 
  496DEPRECATED 
static inline void cx_edwards_compress_point(cx_curve_t curve, uint8_t *p, 
size_t p_len)
 
  498    CX_THROW(cx_edwards_compress_point_no_throw(curve, p, p_len));
 
  525WARN_UNUSED_RESULT cx_err_t cx_edwards_decompress_point_no_throw(cx_curve_t curve,
 
  533DEPRECATED 
static inline void cx_edwards_decompress_point(cx_curve_t curve,
 
  537    CX_THROW(cx_edwards_decompress_point_no_throw(curve, p, p_len));
 
  544DEPRECATED 
static inline void cx_edward_compress_point(cx_curve_t curve, uint8_t *p, 
size_t p_len)
 
  546    CX_THROW(cx_edwards_compress_point_no_throw(curve, p, p_len));
 
  553DEPRECATED 
static inline void cx_edward_decompress_point(cx_curve_t curve, uint8_t *p, 
size_t p_len)
 
  555    CX_THROW(cx_edwards_decompress_point_no_throw(curve, p, p_len));
 
  571size_t cx_ecfp_encode_sig_der(uint8_t       *sig,
 
  590int cx_ecfp_decode_sig_der(
const uint8_t  *sig,