gnunet-android

GNUnet for Android
Log | Files | Refs | README

crypto_box_curve25519xsalsa20poly1305.h (4697B)


      1 #ifndef crypto_box_curve25519xsalsa20poly1305_H
      2 #define crypto_box_curve25519xsalsa20poly1305_H
      3 
      4 #include <stddef.h>
      5 #include "crypto_stream_xsalsa20.h"
      6 #include "export.h"
      7 
      8 #ifdef __cplusplus
      9 # ifdef __GNUC__
     10 #  pragma GCC diagnostic ignored "-Wlong-long"
     11 # endif
     12 extern "C" {
     13 #endif
     14 
     15 #define crypto_box_curve25519xsalsa20poly1305_SEEDBYTES 32U
     16 SODIUM_EXPORT
     17 size_t crypto_box_curve25519xsalsa20poly1305_seedbytes(void);
     18 
     19 #define crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES 32U
     20 SODIUM_EXPORT
     21 size_t crypto_box_curve25519xsalsa20poly1305_publickeybytes(void);
     22 
     23 #define crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES 32U
     24 SODIUM_EXPORT
     25 size_t crypto_box_curve25519xsalsa20poly1305_secretkeybytes(void);
     26 
     27 #define crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES 32U
     28 SODIUM_EXPORT
     29 size_t crypto_box_curve25519xsalsa20poly1305_beforenmbytes(void);
     30 
     31 #define crypto_box_curve25519xsalsa20poly1305_NONCEBYTES 24U
     32 SODIUM_EXPORT
     33 size_t crypto_box_curve25519xsalsa20poly1305_noncebytes(void);
     34 
     35 #define crypto_box_curve25519xsalsa20poly1305_MACBYTES 16U
     36 SODIUM_EXPORT
     37 size_t crypto_box_curve25519xsalsa20poly1305_macbytes(void);
     38 
     39 /* Only for the libsodium API - The NaCl compatibility API would require BOXZEROBYTES extra bytes */
     40 #define crypto_box_curve25519xsalsa20poly1305_MESSAGEBYTES_MAX \
     41     (crypto_stream_xsalsa20_MESSAGEBYTES_MAX - crypto_box_curve25519xsalsa20poly1305_MACBYTES)
     42 SODIUM_EXPORT
     43 size_t crypto_box_curve25519xsalsa20poly1305_messagebytes_max(void);
     44 
     45 SODIUM_EXPORT
     46 int crypto_box_curve25519xsalsa20poly1305_seed_keypair(unsigned char *pk,
     47                                                        unsigned char *sk,
     48                                                        const unsigned char *seed)
     49             __attribute__ ((nonnull));
     50 
     51 SODIUM_EXPORT
     52 int crypto_box_curve25519xsalsa20poly1305_keypair(unsigned char *pk,
     53                                                   unsigned char *sk)
     54             __attribute__ ((nonnull));
     55 
     56 SODIUM_EXPORT
     57 int crypto_box_curve25519xsalsa20poly1305_beforenm(unsigned char *k,
     58                                                    const unsigned char *pk,
     59                                                    const unsigned char *sk)
     60             __attribute__ ((warn_unused_result)) __attribute__ ((nonnull));
     61 
     62 /* -- NaCl compatibility interface ; Requires padding -- */
     63 
     64 #define crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES 16U
     65 SODIUM_EXPORT
     66 size_t crypto_box_curve25519xsalsa20poly1305_boxzerobytes(void);
     67 
     68 #define crypto_box_curve25519xsalsa20poly1305_ZEROBYTES \
     69     (crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES + \
     70      crypto_box_curve25519xsalsa20poly1305_MACBYTES)
     71 SODIUM_EXPORT
     72 size_t crypto_box_curve25519xsalsa20poly1305_zerobytes(void);
     73 
     74 SODIUM_EXPORT
     75 int crypto_box_curve25519xsalsa20poly1305(unsigned char *c,
     76                                           const unsigned char *m,
     77                                           unsigned long long mlen,
     78                                           const unsigned char *n,
     79                                           const unsigned char *pk,
     80                                           const unsigned char *sk)
     81             __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(1, 4, 5, 6)));
     82 
     83 SODIUM_EXPORT
     84 int crypto_box_curve25519xsalsa20poly1305_open(unsigned char *m,
     85                                                const unsigned char *c,
     86                                                unsigned long long clen,
     87                                                const unsigned char *n,
     88                                                const unsigned char *pk,
     89                                                const unsigned char *sk)
     90             __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5, 6)));
     91 
     92 SODIUM_EXPORT
     93 int crypto_box_curve25519xsalsa20poly1305_afternm(unsigned char *c,
     94                                                   const unsigned char *m,
     95                                                   unsigned long long mlen,
     96                                                   const unsigned char *n,
     97                                                   const unsigned char *k)
     98             __attribute__ ((nonnull(1, 4, 5)));
     99 
    100 SODIUM_EXPORT
    101 int crypto_box_curve25519xsalsa20poly1305_open_afternm(unsigned char *m,
    102                                                        const unsigned char *c,
    103                                                        unsigned long long clen,
    104                                                        const unsigned char *n,
    105                                                        const unsigned char *k)
    106             __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(2, 4, 5)));
    107 
    108 #ifdef __cplusplus
    109 }
    110 #endif
    111 
    112 #endif