X-Git-Url: http://tinc-vpn.org/git/browse?a=blobdiff_plain;f=lib%2Fcertificate.h;h=02775225b04a5400e341a781d818b20267871801;hb=HEAD;hp=2a605ea77df66a0a47ed5c3cd998a8ca192b7c62;hpb=f36a11f15b1d75cf3d786cab06fefe0d50812c83;p=fides diff --git a/lib/certificate.h b/lib/certificate.h index 2a605ea..0277522 100644 --- a/lib/certificate.h +++ b/lib/certificate.h @@ -18,11 +18,13 @@ #ifndef __FIDES_CERTIFICATE_H__ #define __FIDES_CERTIFICATE_H__ -#include #include #include "publickey.h" #include "privatekey.h" +#ifdef __cplusplus +#include + namespace Fides { class Certificate { friend class Manager; @@ -43,4 +45,22 @@ namespace Fides { }; } +extern "C" { +typedef Fides::Certificate fides_certificate; +#else +typedef struct fides_certificate fides_certificate; +#endif + +extern fides_certificate *fides_certificate_new(const fides_publickey *pub, struct timeval timestamp, const char *statement, const char *signature); +extern fides_certificate *fides_certificate_new_priv(const fides_privatekey *priv, struct timeval timestamp, const char *statement); +extern void fides_certificate_free(fides_certificate *c); + +extern char *fides_certificate_to_string(fides_certificate *c); +extern char *fides_certificate_fingerprint(fides_certificate *c, unsigned int bits); +extern bool fides_certificate_validate(fides_certificate *c); + +#ifdef __cplusplus +} +#endif + #endif