aboutsummaryrefslogtreecommitdiff
path: root/libcmix-crypto/keymanagement.h
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2016-08-30 11:07:18 +0200
committerDennis Brentjes <d.brentjes@gmail.com>2016-08-30 11:07:18 +0200
commit825fc3d44eb6a3837bb922815c4351aa011a213c (patch)
tree825ec81fd14aa07d8621513ceb6c2b7e1aa95620 /libcmix-crypto/keymanagement.h
parent8dbc565edee65b31db68f47d41f569d9e52fef14 (diff)
downloadcmix-825fc3d44eb6a3837bb922815c4351aa011a213c.tar.gz
cmix-825fc3d44eb6a3837bb922815c4351aa011a213c.tar.bz2
cmix-825fc3d44eb6a3837bb922815c4351aa011a213c.zip
Proof of concept skeleton, linktime algorithm implementation selection.
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