cosmopolitan/third_party/mbedtls/ecdh_everest.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

44 lines
1.9 KiB
C
Raw Normal View History

#ifndef COSMOPOLITAN_THIRD_PARTY_MBEDTLS_X25519_H_
#define COSMOPOLITAN_THIRD_PARTY_MBEDTLS_X25519_H_
#include "third_party/mbedtls/config.h"
#include "third_party/mbedtls/ecp.h"
COSMOPOLITAN_C_START_
#define MBEDTLS_ECP_TLS_CURVE25519 0x1d
#define MBEDTLS_X25519_KEY_SIZE_BYTES 32
typedef enum {
MBEDTLS_EVEREST_ECDH_OURS,
MBEDTLS_EVEREST_ECDH_THEIRS,
} mbedtls_everest_ecdh_side;
typedef struct {
unsigned char our_secret[MBEDTLS_X25519_KEY_SIZE_BYTES];
unsigned char peer_point[MBEDTLS_X25519_KEY_SIZE_BYTES];
} mbedtls_ecdh_context_everest;
int mbedtls_everest_setup(mbedtls_ecdh_context_everest *, int);
void mbedtls_everest_free(mbedtls_ecdh_context_everest *);
int mbedtls_everest_make_params(mbedtls_ecdh_context_everest *, size_t *,
unsigned char *, size_t,
int (*)(void *, unsigned char *, size_t),
void *);
int mbedtls_everest_read_params(mbedtls_ecdh_context_everest *,
const unsigned char **, const unsigned char *);
int mbedtls_everest_get_params(mbedtls_ecdh_context_everest *,
const mbedtls_ecp_keypair *,
mbedtls_everest_ecdh_side);
int mbedtls_everest_make_public(mbedtls_ecdh_context_everest *, size_t *,
unsigned char *, size_t,
int (*)(void *, unsigned char *, size_t),
void *);
int mbedtls_everest_read_public(mbedtls_ecdh_context_everest *,
const unsigned char *, size_t);
int mbedtls_everest_calc_secret(mbedtls_ecdh_context_everest *, size_t *,
unsigned char *, size_t,
int (*)(void *, unsigned char *, size_t),
void *);
COSMOPOLITAN_C_END_
#endif /* COSMOPOLITAN_THIRD_PARTY_MBEDTLS_X25519_H_ */