Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/sodium/crypto_core_ristretto255.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 #ifndef crypto_core_ristretto255_H
0002 #define crypto_core_ristretto255_H
0003 
0004 #include <stddef.h>
0005 #include "export.h"
0006 
0007 #ifdef __cplusplus
0008 extern "C" {
0009 #endif
0010 
0011 #define crypto_core_ristretto255_BYTES 32
0012 SODIUM_EXPORT
0013 size_t crypto_core_ristretto255_bytes(void);
0014 
0015 #define crypto_core_ristretto255_HASHBYTES 64
0016 SODIUM_EXPORT
0017 size_t crypto_core_ristretto255_hashbytes(void);
0018 
0019 #define crypto_core_ristretto255_SCALARBYTES 32
0020 SODIUM_EXPORT
0021 size_t crypto_core_ristretto255_scalarbytes(void);
0022 
0023 #define crypto_core_ristretto255_NONREDUCEDSCALARBYTES 64
0024 SODIUM_EXPORT
0025 size_t crypto_core_ristretto255_nonreducedscalarbytes(void);
0026 
0027 SODIUM_EXPORT
0028 int crypto_core_ristretto255_is_valid_point(const unsigned char *p)
0029             __attribute__ ((nonnull));
0030 
0031 SODIUM_EXPORT
0032 int crypto_core_ristretto255_add(unsigned char *r,
0033                                  const unsigned char *p, const unsigned char *q)
0034             __attribute__ ((nonnull));
0035 
0036 SODIUM_EXPORT
0037 int crypto_core_ristretto255_sub(unsigned char *r,
0038                                  const unsigned char *p, const unsigned char *q)
0039             __attribute__ ((nonnull));
0040 
0041 SODIUM_EXPORT
0042 int crypto_core_ristretto255_from_hash(unsigned char *p,
0043                                        const unsigned char *r)
0044             __attribute__ ((nonnull));
0045 
0046 SODIUM_EXPORT
0047 void crypto_core_ristretto255_random(unsigned char *p)
0048             __attribute__ ((nonnull));
0049 
0050 SODIUM_EXPORT
0051 void crypto_core_ristretto255_scalar_random(unsigned char *r)
0052             __attribute__ ((nonnull));
0053 
0054 SODIUM_EXPORT
0055 int crypto_core_ristretto255_scalar_invert(unsigned char *recip,
0056                                            const unsigned char *s)
0057             __attribute__ ((nonnull));
0058 
0059 SODIUM_EXPORT
0060 void crypto_core_ristretto255_scalar_negate(unsigned char *neg,
0061                                             const unsigned char *s)
0062             __attribute__ ((nonnull));
0063 
0064 SODIUM_EXPORT
0065 void crypto_core_ristretto255_scalar_complement(unsigned char *comp,
0066                                                 const unsigned char *s)
0067             __attribute__ ((nonnull));
0068 
0069 SODIUM_EXPORT
0070 void crypto_core_ristretto255_scalar_add(unsigned char *z,
0071                                          const unsigned char *x,
0072                                          const unsigned char *y)
0073             __attribute__ ((nonnull));
0074 
0075 SODIUM_EXPORT
0076 void crypto_core_ristretto255_scalar_sub(unsigned char *z,
0077                                          const unsigned char *x,
0078                                          const unsigned char *y)
0079             __attribute__ ((nonnull));
0080 
0081 SODIUM_EXPORT
0082 void crypto_core_ristretto255_scalar_mul(unsigned char *z,
0083                                          const unsigned char *x,
0084                                          const unsigned char *y)
0085             __attribute__ ((nonnull));
0086 
0087 /*
0088  * The interval `s` is sampled from should be at least 317 bits to ensure almost
0089  * uniformity of `r` over `L`.
0090  */
0091 SODIUM_EXPORT
0092 void crypto_core_ristretto255_scalar_reduce(unsigned char *r,
0093                                             const unsigned char *s)
0094             __attribute__ ((nonnull));
0095 
0096 #ifdef __cplusplus
0097 }
0098 #endif
0099 
0100 #endif