libsodium (1.0.19)
1
2 #ifndef crypto_scalarmult_ristretto255_H
3 #define crypto_scalarmult_ristretto255_H
4
5 #include <stddef.h>
6
7 #include "export.h"
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 #define crypto_scalarmult_ristretto255_BYTES 32U
14 SODIUM_EXPORT
15 size_t crypto_scalarmult_ristretto255_bytes(void);
16
17 #define crypto_scalarmult_ristretto255_SCALARBYTES 32U
18 SODIUM_EXPORT
19 size_t crypto_scalarmult_ristretto255_scalarbytes(void);
20
21 /*
22 * NOTE: Do not use the result of this function directly for key exchange.
23 *
24 * Hash the result with the public keys in order to compute a shared
25 * secret key: H(q || client_pk || server_pk)
26 *
27 * Or unless this is not an option, use the crypto_kx() API instead.
28 */
29 SODIUM_EXPORT
30 int crypto_scalarmult_ristretto255(unsigned char *q, const unsigned char *n,
31 const unsigned char *p)
32 __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));
33
34 SODIUM_EXPORT
35 int crypto_scalarmult_ristretto255_base(unsigned char *q,
36 const unsigned char *n)
37 __attribute__ ((nonnull));
38
39 #ifdef __cplusplus
40 }
41 #endif
42
43 #endif