]> git.siccegge.de Git - software/DIPE.git/blobdiff - include/DIPE.h
Code drop
[software/DIPE.git] / include / DIPE.h
diff --git a/include/DIPE.h b/include/DIPE.h
new file mode 100644 (file)
index 0000000..87ebab8
--- /dev/null
@@ -0,0 +1,25 @@
+#include <stdio.h>
+#include <pbc/pbc.h>
+
+extern "C" {
+       typedef struct dipe_param* dipe_param_t;
+       typedef struct dipe_master_publickey* dipe_master_publickey_t;
+       typedef struct dipe_master_secretkey* dipe_master_secretkey_t;
+       typedef struct dipe_secretkey* dipe_secretkey_t;
+       typedef struct dipe_ctxt* dipe_ctxt_t;
+       
+       void dipe_init(FILE* configfp, dipe_param_t* param);
+       pairing_t* dipe_get_pairing(dipe_param_t param);
+       
+       void dipe_master_keygen(dipe_param_t param, size_t dimension, dipe_master_publickey_t* pk, dipe_master_secretkey_t* sk);
+       void dipe_keygen(dipe_param_t param, dipe_master_secretkey_t msk, char* cid, element_t* y, dipe_secretkey_t* sk);
+       
+       void dipe_encrypt(dipe_param_t param, dipe_master_publickey_t mpk, element_t* x, element_t ptxt, dipe_ctxt_t* ctxt);
+       void dipe_decrypt(dipe_param_t param, dipe_secretkey_t sk, char* cid, element_t* y, dipe_ctxt_t ctxt, element_t ptxt);
+
+       void dipe_free_param(dipe_param_t param);
+       void dipe_free_master_secretkey(dipe_master_secretkey_t sk);
+       void dipe_free_master_publickey(dipe_master_publickey_t pk);
+       void dipe_free_secretkey(dipe_secretkey_t sk);
+       void dipe_free_ctxt(dipe_ctxt_t ctxt);
+}