#ifndef KEY_STORE_H
#define KEY_STORE_H
#include "object_store.h"
#include "sa_types.h"
#include "stored_key.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef object_store_t key_store_t;
key_store_t* key_store_init(size_t size);
void key_store_shutdown(key_store_t* store);
sa_status key_store_import_stored_key(
sa_key* key,
key_store_t* store,
stored_key_t* stored_key,
const sa_uuid* caller_uuid);
sa_status key_store_import_exported(
sa_key* key,
key_store_t* store,
const void* exported,
size_t exported_length,
const sa_uuid* caller_uuid);
sa_status key_store_export(
void* out,
size_t* out_length,
key_store_t* store,
sa_key key,
const void* mixin,
size_t mixin_length,
const sa_uuid* caller_uuid);
sa_status key_store_unwrap(
stored_key_t** stored_key,
key_store_t* store,
sa_key key,
const sa_uuid* caller_uuid);
sa_status key_store_get_header(
sa_header* header,
key_store_t* store,
sa_key key,
const sa_uuid* caller_uuid);
sa_status key_store_remove(
key_store_t* store,
sa_key key,
const sa_uuid* caller_uuid);
#ifdef __cplusplus
}
#endif
#endif