X-Git-Url: https://git.siccegge.de//index.cgi?p=software%2FDIPE.git;a=blobdiff_plain;f=include%2FDIPE.h;fp=include%2FDIPE.h;h=87ebab808cc0ec8ef473f1a433366e53609a0085;hp=0000000000000000000000000000000000000000;hb=006e87bc592a4e6eabea4f7f9caab8e218ebfd85;hpb=5cb1a82c4ddb3fd578e6b99cce46406e1a6b357f diff --git a/include/DIPE.h b/include/DIPE.h new file mode 100644 index 0000000..87ebab8 --- /dev/null +++ b/include/DIPE.h @@ -0,0 +1,25 @@ +#include +#include + +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); +}