libssh
0.10.6
The SSH library
Loading...
Searching...
No Matches
include
libssh
sc25519.h
1
/* $OpenBSD: sc25519.h,v 1.3 2013/12/09 11:03:45 markus Exp $ */
2
3
/*
4
* Public Domain, Authors: Daniel J. Bernstein, Niels Duif, Tanja Lange,
5
* Peter Schwabe, Bo-Yin Yang.
6
* Copied from supercop-20130419/crypto_sign/ed25519/ref/sc25519.h
7
*/
8
9
#ifndef SC25519_H
10
#define SC25519_H
11
12
#define sc25519 crypto_sign_ed25519_ref_sc25519
13
#define shortsc25519 crypto_sign_ed25519_ref_shortsc25519
14
#define sc25519_from32bytes crypto_sign_ed25519_ref_sc25519_from32bytes
15
#define shortsc25519_from16bytes crypto_sign_ed25519_ref_shortsc25519_from16bytes
16
#define sc25519_from64bytes crypto_sign_ed25519_ref_sc25519_from64bytes
17
#define sc25519_from_shortsc crypto_sign_ed25519_ref_sc25519_from_shortsc
18
#define sc25519_to32bytes crypto_sign_ed25519_ref_sc25519_to32bytes
19
#define sc25519_iszero_vartime crypto_sign_ed25519_ref_sc25519_iszero_vartime
20
#define sc25519_isshort_vartime crypto_sign_ed25519_ref_sc25519_isshort_vartime
21
#define sc25519_lt_vartime crypto_sign_ed25519_ref_sc25519_lt_vartime
22
#define sc25519_add crypto_sign_ed25519_ref_sc25519_add
23
#define sc25519_sub_nored crypto_sign_ed25519_ref_sc25519_sub_nored
24
#define sc25519_mul crypto_sign_ed25519_ref_sc25519_mul
25
#define sc25519_mul_shortsc crypto_sign_ed25519_ref_sc25519_mul_shortsc
26
#define sc25519_window3 crypto_sign_ed25519_ref_sc25519_window3
27
#define sc25519_window5 crypto_sign_ed25519_ref_sc25519_window5
28
#define sc25519_2interleave2 crypto_sign_ed25519_ref_sc25519_2interleave2
29
30
typedef
struct
{
31
uint32_t v[32];
32
}
sc25519
;
33
34
typedef
struct
{
35
uint32_t v[16];
36
}
shortsc25519
;
37
38
#ifdef __cplusplus
39
extern
"C"
{
40
#endif
41
42
void
sc25519_from32bytes(
sc25519
*r,
const
unsigned
char
x[32]);
43
44
void
shortsc25519_from16bytes(
shortsc25519
*r,
const
unsigned
char
x[16]);
45
46
void
sc25519_from64bytes(
sc25519
*r,
const
unsigned
char
x[64]);
47
48
void
sc25519_from_shortsc(
sc25519
*r,
const
shortsc25519
*x);
49
50
void
sc25519_to32bytes(
unsigned
char
r[32],
const
sc25519
*x);
51
52
int
sc25519_iszero_vartime(
const
sc25519
*x);
53
54
int
sc25519_isshort_vartime(
const
sc25519
*x);
55
56
int
sc25519_lt_vartime(
const
sc25519
*x,
const
sc25519
*y);
57
58
void
sc25519_add(
sc25519
*r,
const
sc25519
*x,
const
sc25519
*y);
59
60
void
sc25519_sub_nored(
sc25519
*r,
const
sc25519
*x,
const
sc25519
*y);
61
62
void
sc25519_mul(
sc25519
*r,
const
sc25519
*x,
const
sc25519
*y);
63
64
void
sc25519_mul_shortsc(
sc25519
*r,
const
sc25519
*x,
const
shortsc25519
*y);
65
66
/* Convert s into a representation of the form \sum_{i=0}^{84}r[i]2^3
67
* with r[i] in {-4,...,3}
68
*/
69
void
sc25519_window3(
signed
char
r[85],
const
sc25519
*s);
70
71
/* Convert s into a representation of the form \sum_{i=0}^{50}r[i]2^5
72
* with r[i] in {-16,...,15}
73
*/
74
void
sc25519_window5(
signed
char
r[51],
const
sc25519
*s);
75
76
void
sc25519_2interleave2(
unsigned
char
r[127],
const
sc25519
*s1,
const
sc25519
*s2);
77
78
#ifdef __cplusplus
79
}
80
#endif
81
82
#endif
sc25519
Definition
sc25519.h:30
shortsc25519
Definition
sc25519.h:34
Generated by
1.10.0