X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;ds=sidebyside;f=lib%2Fpublickey.cc;fp=lib%2Fpublickey.cc;h=3a91f499eceb0204308251271de19de061e0a613;hb=fa1153b4c3237d897a871331f0f9c0f8d30ca5a1;hp=4dd5b76d1326e130d944992c2d9c72a9b8c026bf;hpb=8f104b8742166c41e395375c1e740d7af6224699;p=fides diff --git a/lib/publickey.cc b/lib/publickey.cc index 4dd5b76..3a91f49 100644 --- a/lib/publickey.cc +++ b/lib/publickey.cc @@ -129,3 +129,47 @@ namespace Fides { return verifier->check_signature(sig); } } + +// C bindings + +fides_publickey *fides_publickey_new() { + return new Fides::PublicKey(); +} + +void fides_publickey_free(fides_publickey *k) { + delete k; +} + + +void fides_publickey_set_trust(fides_publickey *k, int trust) { + k->trust = trust; +} + +int fides_publickey_get_trust(fides_publickey *k) { + return k->trust; +} + + +void fides_publickey_load(fides_publickey *k, const char *filename) { + k->load(filename); +} + +void fides_publickey_save(fides_publickey *k, const char *filename) { + k->save(filename); +} + +bool fides_publickey_verify(fides_publickey *k, const char *data, const char *signature) { + return k->verify(data, signature); +} + +char *fides_publickey_to_string(fides_publickey *k) { + return strdup(k->to_string().c_str()); +} + +void fides_publickey_from_string(fides_publickey *k, const char *in) { + k->from_string(in); +} + +char *fides_publickey_fingerprint(fides_publickey *k, unsigned int bits) { + return strdup(k->fingerprint(bits).c_str()); +}