Annotation of src/usr.bin/ssh/sc25519.h, Revision 1.1
1.1 ! markus 1: /* $OpenBSD: */
! 2:
! 3: /* Public Domain, from supercop-20130419/crypto_sign/ed25519/ref/sc25519.h */
! 4:
! 5: #ifndef SC25519_H
! 6: #define SC25519_H
! 7:
! 8: #include "crypto_api.h"
! 9:
! 10: #define sc25519 crypto_sign_ed25519_ref_sc25519
! 11: #define shortsc25519 crypto_sign_ed25519_ref_shortsc25519
! 12: #define sc25519_from32bytes crypto_sign_ed25519_ref_sc25519_from32bytes
! 13: #define shortsc25519_from16bytes crypto_sign_ed25519_ref_shortsc25519_from16bytes
! 14: #define sc25519_from64bytes crypto_sign_ed25519_ref_sc25519_from64bytes
! 15: #define sc25519_from_shortsc crypto_sign_ed25519_ref_sc25519_from_shortsc
! 16: #define sc25519_to32bytes crypto_sign_ed25519_ref_sc25519_to32bytes
! 17: #define sc25519_iszero_vartime crypto_sign_ed25519_ref_sc25519_iszero_vartime
! 18: #define sc25519_isshort_vartime crypto_sign_ed25519_ref_sc25519_isshort_vartime
! 19: #define sc25519_lt_vartime crypto_sign_ed25519_ref_sc25519_lt_vartime
! 20: #define sc25519_add crypto_sign_ed25519_ref_sc25519_add
! 21: #define sc25519_sub_nored crypto_sign_ed25519_ref_sc25519_sub_nored
! 22: #define sc25519_mul crypto_sign_ed25519_ref_sc25519_mul
! 23: #define sc25519_mul_shortsc crypto_sign_ed25519_ref_sc25519_mul_shortsc
! 24: #define sc25519_window3 crypto_sign_ed25519_ref_sc25519_window3
! 25: #define sc25519_window5 crypto_sign_ed25519_ref_sc25519_window5
! 26: #define sc25519_2interleave2 crypto_sign_ed25519_ref_sc25519_2interleave2
! 27:
! 28: typedef struct
! 29: {
! 30: crypto_uint32 v[32];
! 31: }
! 32: sc25519;
! 33:
! 34: typedef struct
! 35: {
! 36: crypto_uint32 v[16];
! 37: }
! 38: shortsc25519;
! 39:
! 40: void sc25519_from32bytes(sc25519 *r, const unsigned char x[32]);
! 41:
! 42: void shortsc25519_from16bytes(shortsc25519 *r, const unsigned char x[16]);
! 43:
! 44: void sc25519_from64bytes(sc25519 *r, const unsigned char x[64]);
! 45:
! 46: void sc25519_from_shortsc(sc25519 *r, const shortsc25519 *x);
! 47:
! 48: void sc25519_to32bytes(unsigned char r[32], const sc25519 *x);
! 49:
! 50: int sc25519_iszero_vartime(const sc25519 *x);
! 51:
! 52: int sc25519_isshort_vartime(const sc25519 *x);
! 53:
! 54: int sc25519_lt_vartime(const sc25519 *x, const sc25519 *y);
! 55:
! 56: void sc25519_add(sc25519 *r, const sc25519 *x, const sc25519 *y);
! 57:
! 58: void sc25519_sub_nored(sc25519 *r, const sc25519 *x, const sc25519 *y);
! 59:
! 60: void sc25519_mul(sc25519 *r, const sc25519 *x, const sc25519 *y);
! 61:
! 62: void sc25519_mul_shortsc(sc25519 *r, const sc25519 *x, const shortsc25519 *y);
! 63:
! 64: /* Convert s into a representation of the form \sum_{i=0}^{84}r[i]2^3
! 65: * with r[i] in {-4,...,3}
! 66: */
! 67: void sc25519_window3(signed char r[85], const sc25519 *s);
! 68:
! 69: /* Convert s into a representation of the form \sum_{i=0}^{50}r[i]2^5
! 70: * with r[i] in {-16,...,15}
! 71: */
! 72: void sc25519_window5(signed char r[51], const sc25519 *s);
! 73:
! 74: void sc25519_2interleave2(unsigned char r[127], const sc25519 *s1, const sc25519 *s2);
! 75:
! 76: #endif