5238c2a214bf9fb305523065e2728da84981f6af
[trex.git] /
1 #ifndef crypto_sign_ed25519_H
2 #define crypto_sign_ed25519_H
3
4 #include <stddef.h>
5 #include "export.h"
6
7 #ifdef __cplusplus
8 # if __GNUC__
9 #  pragma GCC diagnostic ignored "-Wlong-long"
10 # endif
11 extern "C" {
12 #endif
13
14 #define crypto_sign_ed25519_BYTES 64U
15 SODIUM_EXPORT
16 size_t crypto_sign_ed25519_bytes(void);
17
18 #define crypto_sign_ed25519_SEEDBYTES 32U
19 SODIUM_EXPORT
20 size_t crypto_sign_ed25519_seedbytes(void);
21
22 #define crypto_sign_ed25519_PUBLICKEYBYTES 32U
23 SODIUM_EXPORT
24 size_t crypto_sign_ed25519_publickeybytes(void);
25
26 #define crypto_sign_ed25519_SECRETKEYBYTES (32U + 32U)
27 SODIUM_EXPORT
28 size_t crypto_sign_ed25519_secretkeybytes(void);
29
30 SODIUM_EXPORT
31 int crypto_sign_ed25519(unsigned char *sm, unsigned long long *smlen_p,
32                         const unsigned char *m, unsigned long long mlen,
33                         const unsigned char *sk);
34
35 SODIUM_EXPORT
36 int crypto_sign_ed25519_open(unsigned char *m, unsigned long long *mlen_p,
37                              const unsigned char *sm, unsigned long long smlen,
38                              const unsigned char *pk);
39
40 SODIUM_EXPORT
41 int crypto_sign_ed25519_detached(unsigned char *sig,
42                                  unsigned long long *siglen_p,
43                                  const unsigned char *m,
44                                  unsigned long long mlen,
45                                  const unsigned char *sk);
46
47 SODIUM_EXPORT
48 int crypto_sign_ed25519_verify_detached(const unsigned char *sig,
49                                         const unsigned char *m,
50                                         unsigned long long mlen,
51                                         const unsigned char *pk);
52
53 SODIUM_EXPORT
54 int crypto_sign_ed25519_keypair(unsigned char *pk, unsigned char *sk);
55
56 SODIUM_EXPORT
57 int crypto_sign_ed25519_seed_keypair(unsigned char *pk, unsigned char *sk,
58                                      const unsigned char *seed);
59
60 SODIUM_EXPORT
61 int crypto_sign_ed25519_pk_to_curve25519(unsigned char *curve25519_pk,
62                                          const unsigned char *ed25519_pk);
63
64 SODIUM_EXPORT
65 int crypto_sign_ed25519_sk_to_curve25519(unsigned char *curve25519_sk,
66                                          const unsigned char *ed25519_sk);
67
68 SODIUM_EXPORT
69 int crypto_sign_ed25519_sk_to_seed(unsigned char *seed,
70                                    const unsigned char *sk);
71
72 SODIUM_EXPORT
73 int crypto_sign_ed25519_sk_to_pk(unsigned char *pk, const unsigned char *sk);
74
75 #ifdef __cplusplus
76 }
77 #endif
78
79 #endif