tfe25519.h - sick - sign and check files using ed25519
 (HTM) git clone git://z3bra.org/sick
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       tfe25519.h (2299B)
       ---
            1 /*
            2  * Public Domain, Authors: Daniel J. Bernstein, Niels Duif, Tanja Lange,
            3  * Peter Schwabe, Bo-Yin Yang.
            4  * Adapted from supercop-20230530/crypto_sign/ed25519/ref/ge25519.h
            5  */
            6 
            7 #ifndef FE25519_H
            8 #define FE25519_H
            9 
           10 #include "crypto_api.h"
           11 
           12 #define fe25519              crypto_sign_ed25519_ref_fe25519
           13 #define fe25519_freeze       crypto_sign_ed25519_ref_fe25519_freeze
           14 #define fe25519_unpack       crypto_sign_ed25519_ref_fe25519_unpack
           15 #define fe25519_pack         crypto_sign_ed25519_ref_fe25519_pack
           16 #define fe25519_iszero       crypto_sign_ed25519_ref_fe25519_iszero
           17 #define fe25519_iseq_vartime crypto_sign_ed25519_ref_fe25519_iseq_vartime
           18 #define fe25519_cmov         crypto_sign_ed25519_ref_fe25519_cmov
           19 #define fe25519_setone       crypto_sign_ed25519_ref_fe25519_setone
           20 #define fe25519_setzero      crypto_sign_ed25519_ref_fe25519_setzero
           21 #define fe25519_neg          crypto_sign_ed25519_ref_fe25519_neg
           22 #define fe25519_getparity    crypto_sign_ed25519_ref_fe25519_getparity
           23 #define fe25519_add          crypto_sign_ed25519_ref_fe25519_add
           24 #define fe25519_sub          crypto_sign_ed25519_ref_fe25519_sub
           25 #define fe25519_mul          crypto_sign_ed25519_ref_fe25519_mul
           26 #define fe25519_square       crypto_sign_ed25519_ref_fe25519_square
           27 #define fe25519_invert       crypto_sign_ed25519_ref_fe25519_invert
           28 #define fe25519_pow2523      crypto_sign_ed25519_ref_fe25519_pow2523
           29 
           30 typedef struct 
           31 {
           32   crypto_uint32 v[32]; 
           33 }
           34 fe25519;
           35 
           36 void fe25519_freeze(fe25519 *r);
           37 
           38 void fe25519_unpack(fe25519 *r, const unsigned char x[32]);
           39 
           40 void fe25519_pack(unsigned char r[32], const fe25519 *x);
           41 
           42 int fe25519_iszero(const fe25519 *x);
           43 
           44 int fe25519_iseq_vartime(const fe25519 *x, const fe25519 *y);
           45 
           46 void fe25519_cmov(fe25519 *r, const fe25519 *x, unsigned char b);
           47 
           48 void fe25519_setone(fe25519 *r);
           49 
           50 void fe25519_setzero(fe25519 *r);
           51 
           52 void fe25519_neg(fe25519 *r, const fe25519 *x);
           53 
           54 unsigned char fe25519_getparity(const fe25519 *x);
           55 
           56 void fe25519_add(fe25519 *r, const fe25519 *x, const fe25519 *y);
           57 
           58 void fe25519_sub(fe25519 *r, const fe25519 *x, const fe25519 *y);
           59 
           60 void fe25519_mul(fe25519 *r, const fe25519 *x, const fe25519 *y);
           61 
           62 void fe25519_square(fe25519 *r, const fe25519 *x);
           63 
           64 void fe25519_invert(fe25519 *r, const fe25519 *x);
           65 
           66 void fe25519_pow2523(fe25519 *r, const fe25519 *x);
           67 
           68 #endif