aboutsummaryrefslogtreecommitdiff
path: root/libcmix-crypto/keymanagement.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcmix-crypto/keymanagement.h')
-rw-r--r--libcmix-crypto/keymanagement.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/libcmix-crypto/keymanagement.h b/libcmix-crypto/keymanagement.h
new file mode 100644
index 0000000..1db0ce6
--- /dev/null
+++ b/libcmix-crypto/keymanagement.h
@@ -0,0 +1,28 @@
+#pragma once
+
+#include "curve25519.h"
+
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct KeyPair(*CmixKeyPairCreator)();
+typedef struct KeyPair(*CmixKeyPairLoader)(char*, char*);
+
+struct CmixKeyManagementImpl {
+ CmixKeyPairCreator create_new_keypair;
+ CmixKeyPairLoader load_keypair;
+};
+
+struct CmixKeyManagementImpl get_curve25519_key_management_implementation() {
+ return (struct CmixKeyManagementImpl) {\
+ &curve25519_create_keypair,
+ NULL
+ };\
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif