[BACK]Return to sc25519.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

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