#ifndef DH_H
#define DH_H
#include "stored_key.h"
#ifdef __cplusplus
#include <cstdbool>
#include <cstddef>
#include <cstdint>
extern "C" {
#else
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#endif
sa_status dh_get_public(
void* out,
size_t* out_length,
const stored_key_t* stored_key);
sa_status dh_compute_shared_secret(
stored_key_t** stored_key_shared_secret,
const sa_rights* rights,
const void* other_public,
size_t other_public_length,
const stored_key_t* stored_key);
sa_status dh_generate_key(
stored_key_t** stored_key,
const sa_rights* rights,
const void* p,
size_t p_length,
const void* g,
size_t g_length);
#ifdef __cplusplus
}
#endif
#endif