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