X-Git-Url: https://www.tinc-vpn.org/git/browse?p=fides;a=blobdiff_plain;f=lib%2Fprivatekey.h;fp=lib%2Fprivatekey.h;h=6270a2af33337376681b62ff8b2ced3851f20556;hp=a6486044b40e086b468a585ad7708b425edf5fe5;hb=fa1153b4c3237d897a871331f0f9c0f8d30ca5a1;hpb=8f104b8742166c41e395375c1e740d7af6224699 diff --git a/lib/privatekey.h b/lib/privatekey.h index a648604..6270a2a 100644 --- a/lib/privatekey.h +++ b/lib/privatekey.h @@ -18,10 +18,12 @@ #ifndef __FIDES_PRIVATEKEY_H__ #define __FIDES_PRIVATEKEY_H__ +#include "publickey.h" + +#ifdef __cplusplus #include #include #include -#include "publickey.h" namespace Fides { class PrivateKey: public PublicKey { @@ -41,4 +43,24 @@ namespace Fides { }; } +extern "C" { +typedef Fides::PrivateKey fides_privatekey; +#else +typedef struct fides_privatekey fides_privatekey; +#endif + +extern fides_privatekey *fides_privatekey_new(); +extern void fides_privatekey_free(fides_privatekey *k); + +extern void fides_privatekey_load_public(fides_privatekey *k, const char *filename); +extern void fides_privatekey_save_public(fides_privatekey *k, const char *filename); +extern void fides_privatekey_load(fides_privatekey *k, const char *filename); +extern void fides_privatekey_save(fides_privatekey *k, const char *filename); +extern void fides_privatekey_generate_field(fides_privatekey *k, const char *field); +extern void fides_privatekey_generate(fides_privatekey *k, unsigned int bits); +extern char *fides_privatekey_sign(fides_privatekey *k, const char *data); +#ifdef __cplusplus +} +#endif + #endif