Home | History | Annotate | Line # | Download | only in sodium
      1 #ifndef crypto_kx_H
      2 #define crypto_kx_H
      3 
      4 #if 0
      5 #include <stddef.h>
      6 #endif
      7 #include "export.h"
      8 
      9 #ifdef __cplusplus
     10 # ifdef __GNUC__
     11 #  pragma GCC diagnostic ignored "-Wlong-long"
     12 # endif
     13 extern "C" {
     14 #endif
     15 
     16 #define crypto_kx_PUBLICKEYBYTES 32
     17 SODIUM_EXPORT
     18 size_t crypto_kx_publickeybytes(void);
     19 
     20 #define crypto_kx_SECRETKEYBYTES 32
     21 SODIUM_EXPORT
     22 size_t crypto_kx_secretkeybytes(void);
     23 
     24 #define crypto_kx_SEEDBYTES 32
     25 SODIUM_EXPORT
     26 size_t crypto_kx_seedbytes(void);
     27 
     28 #define crypto_kx_SESSIONKEYBYTES 32
     29 SODIUM_EXPORT
     30 size_t crypto_kx_sessionkeybytes(void);
     31 
     32 #define crypto_kx_PRIMITIVE "x25519blake2b"
     33 SODIUM_EXPORT
     34 const char *crypto_kx_primitive(void);
     35 
     36 SODIUM_EXPORT
     37 int crypto_kx_seed_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
     38                            unsigned char sk[crypto_kx_SECRETKEYBYTES],
     39                            const unsigned char seed[crypto_kx_SEEDBYTES]);
     40 
     41 SODIUM_EXPORT
     42 int crypto_kx_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
     43                       unsigned char sk[crypto_kx_SECRETKEYBYTES]);
     44 
     45 SODIUM_EXPORT
     46 int crypto_kx_client_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
     47                                   unsigned char tx[crypto_kx_SESSIONKEYBYTES],
     48                                   const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES],
     49                                   const unsigned char client_sk[crypto_kx_SECRETKEYBYTES],
     50                                   const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES])
     51             __attribute__ ((warn_unused_result));
     52 
     53 SODIUM_EXPORT
     54 int crypto_kx_server_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
     55                                   unsigned char tx[crypto_kx_SESSIONKEYBYTES],
     56                                   const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES],
     57                                   const unsigned char server_sk[crypto_kx_SECRETKEYBYTES],
     58                                   const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES])
     59             __attribute__ ((warn_unused_result));
     60 
     61 #ifdef __cplusplus
     62 }
     63 #endif
     64 
     65 #endif
     66 #ifndef crypto_kx_H
     67 #define crypto_kx_H
     68 
     69 #if 0
     70 #include <stddef.h>
     71 #endif
     72 #include "export.h"
     73 
     74 #ifdef __cplusplus
     75 # ifdef __GNUC__
     76 #  pragma GCC diagnostic ignored "-Wlong-long"
     77 # endif
     78 extern "C" {
     79 #endif
     80 
     81 #define crypto_kx_PUBLICKEYBYTES 32
     82 SODIUM_EXPORT
     83 size_t crypto_kx_publickeybytes(void);
     84 
     85 #define crypto_kx_SECRETKEYBYTES 32
     86 SODIUM_EXPORT
     87 size_t crypto_kx_secretkeybytes(void);
     88 
     89 #define crypto_kx_SEEDBYTES 32
     90 SODIUM_EXPORT
     91 size_t crypto_kx_seedbytes(void);
     92 
     93 #define crypto_kx_SESSIONKEYBYTES 32
     94 SODIUM_EXPORT
     95 size_t crypto_kx_sessionkeybytes(void);
     96 
     97 #define crypto_kx_PRIMITIVE "x25519blake2b"
     98 SODIUM_EXPORT
     99 const char *crypto_kx_primitive(void);
    100 
    101 SODIUM_EXPORT
    102 int crypto_kx_seed_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
    103                            unsigned char sk[crypto_kx_SECRETKEYBYTES],
    104                            const unsigned char seed[crypto_kx_SEEDBYTES]);
    105 
    106 SODIUM_EXPORT
    107 int crypto_kx_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
    108                       unsigned char sk[crypto_kx_SECRETKEYBYTES]);
    109 
    110 SODIUM_EXPORT
    111 int crypto_kx_client_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
    112                                   unsigned char tx[crypto_kx_SESSIONKEYBYTES],
    113                                   const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES],
    114                                   const unsigned char client_sk[crypto_kx_SECRETKEYBYTES],
    115                                   const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES])
    116             __attribute__ ((warn_unused_result));
    117 
    118 SODIUM_EXPORT
    119 int crypto_kx_server_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
    120                                   unsigned char tx[crypto_kx_SESSIONKEYBYTES],
    121                                   const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES],
    122                                   const unsigned char server_sk[crypto_kx_SECRETKEYBYTES],
    123                                   const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES])
    124             __attribute__ ((warn_unused_result));
    125 
    126 #ifdef __cplusplus
    127 }
    128 #endif
    129 
    130 #endif
    131 #ifndef crypto_kx_H
    132 #define crypto_kx_H
    133 
    134 #if 0
    135 #include <stddef.h>
    136 #endif
    137 #include "export.h"
    138 
    139 #ifdef __cplusplus
    140 # ifdef __GNUC__
    141 #  pragma GCC diagnostic ignored "-Wlong-long"
    142 # endif
    143 extern "C" {
    144 #endif
    145 
    146 #define crypto_kx_PUBLICKEYBYTES 32
    147 SODIUM_EXPORT
    148 size_t crypto_kx_publickeybytes(void);
    149 
    150 #define crypto_kx_SECRETKEYBYTES 32
    151 SODIUM_EXPORT
    152 size_t crypto_kx_secretkeybytes(void);
    153 
    154 #define crypto_kx_SEEDBYTES 32
    155 SODIUM_EXPORT
    156 size_t crypto_kx_seedbytes(void);
    157 
    158 #define crypto_kx_SESSIONKEYBYTES 32
    159 SODIUM_EXPORT
    160 size_t crypto_kx_sessionkeybytes(void);
    161 
    162 #define crypto_kx_PRIMITIVE "x25519blake2b"
    163 SODIUM_EXPORT
    164 const char *crypto_kx_primitive(void);
    165 
    166 SODIUM_EXPORT
    167 int crypto_kx_seed_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
    168                            unsigned char sk[crypto_kx_SECRETKEYBYTES],
    169                            const unsigned char seed[crypto_kx_SEEDBYTES]);
    170 
    171 SODIUM_EXPORT
    172 int crypto_kx_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
    173                       unsigned char sk[crypto_kx_SECRETKEYBYTES]);
    174 
    175 SODIUM_EXPORT
    176 int crypto_kx_client_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
    177                                   unsigned char tx[crypto_kx_SESSIONKEYBYTES],
    178                                   const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES],
    179                                   const unsigned char client_sk[crypto_kx_SECRETKEYBYTES],
    180                                   const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES])
    181             __attribute__ ((warn_unused_result));
    182 
    183 SODIUM_EXPORT
    184 int crypto_kx_server_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
    185                                   unsigned char tx[crypto_kx_SESSIONKEYBYTES],
    186                                   const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES],
    187                                   const unsigned char server_sk[crypto_kx_SECRETKEYBYTES],
    188                                   const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES])
    189             __attribute__ ((warn_unused_result));
    190 
    191 #ifdef __cplusplus
    192 }
    193 #endif
    194 
    195 #endif
    196 #ifndef crypto_kx_H
    197 #define crypto_kx_H
    198 
    199 #if 0
    200 #include <stddef.h>
    201 #endif
    202 #include "export.h"
    203 
    204 #ifdef __cplusplus
    205 # ifdef __GNUC__
    206 #  pragma GCC diagnostic ignored "-Wlong-long"
    207 # endif
    208 extern "C" {
    209 #endif
    210 
    211 #define crypto_kx_PUBLICKEYBYTES 32
    212 SODIUM_EXPORT
    213 size_t crypto_kx_publickeybytes(void);
    214 
    215 #define crypto_kx_SECRETKEYBYTES 32
    216 SODIUM_EXPORT
    217 size_t crypto_kx_secretkeybytes(void);
    218 
    219 #define crypto_kx_SEEDBYTES 32
    220 SODIUM_EXPORT
    221 size_t crypto_kx_seedbytes(void);
    222 
    223 #define crypto_kx_SESSIONKEYBYTES 32
    224 SODIUM_EXPORT
    225 size_t crypto_kx_sessionkeybytes(void);
    226 
    227 #define crypto_kx_PRIMITIVE "x25519blake2b"
    228 SODIUM_EXPORT
    229 const char *crypto_kx_primitive(void);
    230 
    231 SODIUM_EXPORT
    232 int crypto_kx_seed_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
    233                            unsigned char sk[crypto_kx_SECRETKEYBYTES],
    234                            const unsigned char seed[crypto_kx_SEEDBYTES]);
    235 
    236 SODIUM_EXPORT
    237 int crypto_kx_keypair(unsigned char pk[crypto_kx_PUBLICKEYBYTES],
    238                       unsigned char sk[crypto_kx_SECRETKEYBYTES]);
    239 
    240 SODIUM_EXPORT
    241 int crypto_kx_client_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
    242                                   unsigned char tx[crypto_kx_SESSIONKEYBYTES],
    243                                   const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES],
    244                                   const unsigned char client_sk[crypto_kx_SECRETKEYBYTES],
    245                                   const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES])
    246             __attribute__ ((warn_unused_result));
    247 
    248 SODIUM_EXPORT
    249 int crypto_kx_server_session_keys(unsigned char rx[crypto_kx_SESSIONKEYBYTES],
    250                                   unsigned char tx[crypto_kx_SESSIONKEYBYTES],
    251                                   const unsigned char server_pk[crypto_kx_PUBLICKEYBYTES],
    252                                   const unsigned char server_sk[crypto_kx_SECRETKEYBYTES],
    253                                   const unsigned char client_pk[crypto_kx_PUBLICKEYBYTES])
    254             __attribute__ ((warn_unused_result));
    255 
    256 #ifdef __cplusplus
    257 }
    258 #endif
    259 
    260 #endif
    261