diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/libuecc/ecc.h | 98 |
1 files changed, 65 insertions, 33 deletions
diff --git a/include/libuecc/ecc.h b/include/libuecc/ecc.h index f8e3dfe..2f2c0d9 100644 --- a/include/libuecc/ecc.h +++ b/include/libuecc/ecc.h @@ -27,12 +27,17 @@ #ifndef _LIBUECC_ECC_H_ #define _LIBUECC_ECC_H_ -typedef union _ecc_int_256 { +#ifndef DEPRECATED +#define DEPRECATED __attribute__((deprecated)) +#endif + + +typedef union _ecc_int256 { unsigned char p[32]; /* old name */ - unsigned char s[32]; -} ecc_int_256, ecc_secret_key_256, ecc_public_key_256; + unsigned char s[32] DEPRECATED; +} ecc_int256_t; /* a point on the curve unpacked for efficient calculation */ typedef struct _ecc_25519_work { @@ -40,41 +45,68 @@ typedef struct _ecc_25519_work { unsigned int Y[32]; unsigned int Z[32]; unsigned int T[32]; -} ecc_25519_work; +} ecc_25519_work_t; -void ecc_25519_load_xy(ecc_25519_work *out, const ecc_int_256 *x, const ecc_int_256 *y); -void ecc_25519_store_xy(ecc_int_256 *x, ecc_int_256 *y, const ecc_25519_work *in); +void ecc_25519_load_xy(ecc_25519_work_t *out, const ecc_int256_t *x, const ecc_int256_t *y); +void ecc_25519_store_xy(ecc_int256_t *x, ecc_int256_t *y, const ecc_25519_work_t *in); -void ecc_25519_load_packed(ecc_25519_work *out, const ecc_int_256 *in); -void ecc_25519_store_packed(ecc_int_256 *out, const ecc_25519_work *in); +void ecc_25519_load_packed(ecc_25519_work_t *out, const ecc_int256_t *in); +void ecc_25519_store_packed(ecc_int256_t *out, const ecc_25519_work_t *in); -int ecc_25519_is_identity(const ecc_25519_work *in); -void ecc_25519_add(ecc_25519_work *out, const ecc_25519_work *in1, const ecc_25519_work *in2); -void ecc_25519_double(ecc_25519_work *out, const ecc_25519_work *in); -void ecc_25519_scalarmult(ecc_25519_work *out, const ecc_int_256 *n, const ecc_25519_work *base); -void ecc_25519_scalarmult_base(ecc_25519_work *out, const ecc_int_256 *n); +int ecc_25519_is_identity(const ecc_25519_work_t *in); +void ecc_25519_add(ecc_25519_work_t *out, const ecc_25519_work_t *in1, const ecc_25519_work_t *in2); +void ecc_25519_double(ecc_25519_work_t *out, const ecc_25519_work_t *in); +void ecc_25519_scalarmult(ecc_25519_work_t *out, const ecc_int256_t *n, const ecc_25519_work_t *base); +void ecc_25519_scalarmult_base(ecc_25519_work_t *out, const ecc_int256_t *n); /* operations on elements of the prime field F_q for q = 2^252 + 27742317777372353535851937790883648493 */ -extern const ecc_int_256 ecc_25519_gf_order; -int ecc_25519_gf_is_zero(const ecc_int_256 *in); -void ecc_25519_gf_add(ecc_int_256 *out, const ecc_int_256 *in1, const ecc_int_256 *in2); -void ecc_25519_gf_sub(ecc_int_256 *out, const ecc_int_256 *in1, const ecc_int_256 *in2); -void ecc_25519_gf_reduce(ecc_int_256 *out, const ecc_int_256 *in); -void ecc_25519_gf_mult(ecc_int_256 *out, const ecc_int_256 *in1, const ecc_int_256 *in2); -void ecc_25519_gf_recip(ecc_int_256 *out, const ecc_int_256 *in); - -void ecc_25519_gf_sanitize_secret(ecc_int_256 *out, const ecc_int_256 *in); - -/* defines for the old names */ -#define ecc_25519_load ecc_25519_load_packed -#define ecc_25519_store ecc_25519_store_packed - -#define ecc_25519_secret_is_zero ecc_25519_gf_is_zero -#define ecc_25519_secret_add ecc_25519_gf_add -#define ecc_25519_secret_sub ecc_25519_gf_sub -#define ecc_25519_secret_reduce ecc_25519_gf_reduce -#define ecc_25519_secret_mult ecc_25519_gf_mult -#define ecc_25519_secret_sanitize ecc_25519_gf_sanitize_secret +extern const ecc_int256_t ecc_25519_gf_order; + +int ecc_25519_gf_is_zero(const ecc_int256_t *in); +void ecc_25519_gf_add(ecc_int256_t *out, const ecc_int256_t *in1, const ecc_int256_t *in2); +void ecc_25519_gf_sub(ecc_int256_t *out, const ecc_int256_t *in1, const ecc_int256_t *in2); +void ecc_25519_gf_reduce(ecc_int256_t *out, const ecc_int256_t *in); +void ecc_25519_gf_mult(ecc_int256_t *out, const ecc_int256_t *in1, const ecc_int256_t *in2); +void ecc_25519_gf_recip(ecc_int256_t *out, const ecc_int256_t *in); + +void ecc_25519_gf_sanitize_secret(ecc_int256_t *out, const ecc_int256_t *in); + +/* declarations for the old names */ +typedef ecc_int256_t ecc_secret_key_256 DEPRECATED; +typedef ecc_int256_t ecc_public_key_256 DEPRECATED; +typedef ecc_25519_work_t ecc_25519_work DEPRECATED; + +DEPRECATED static inline void ecc_25519_load(ecc_25519_work_t *out, const ecc_int256_t *in) { + ecc_25519_load_packed(out, in); +} + +DEPRECATED static inline void ecc_25519_store(ecc_int256_t *out, const ecc_25519_work_t *in) { + ecc_25519_store_packed(out, in); +} + +DEPRECATED static inline int ecc_25519_secret_is_zero(const ecc_int256_t *in) { + return ecc_25519_gf_is_zero(in); +} + +DEPRECATED static inline void ecc_25519_secret_add(ecc_int256_t *out, const ecc_int256_t *in1, const ecc_int256_t *in2) { + ecc_25519_gf_add(out, in1, in2); +} + +DEPRECATED static inline void ecc_25519_secret_sub(ecc_int256_t *out, const ecc_int256_t *in1, const ecc_int256_t *in2) { + ecc_25519_gf_sub(out, in1, in2); +} + +DEPRECATED static inline void ecc_25519_secret_reduce(ecc_int256_t *out, const ecc_int256_t *in) { + ecc_25519_gf_reduce(out, in); +} + +DEPRECATED static inline void ecc_25519_secret_mult(ecc_int256_t *out, const ecc_int256_t *in1, const ecc_int256_t *in2) { + ecc_25519_gf_mult(out, in1, in2); +} + +DEPRECATED static inline void ecc_25519_secret_sanitize(ecc_int256_t *out, const ecc_int256_t *in) { + ecc_25519_gf_sanitize_secret(out, in); +} #endif /* _LIBUECC_ECC_H_ */ |