X-Git-Url: http://tinc-vpn.org/git/browse?p=fides;a=blobdiff_plain;f=lib%2Fprivatekey.cc;fp=lib%2Fprivatekey.cc;h=4a3f530032a2e93793b674d02b1a01c3c947347e;hp=e990c2516f75fed89bdc5832b6167b6920eb00f5;hb=fa1153b4c3237d897a871331f0f9c0f8d30ca5a1;hpb=8f104b8742166c41e395375c1e740d7af6224699 diff --git a/lib/privatekey.cc b/lib/privatekey.cc index e990c25..4a3f530 100644 --- a/lib/privatekey.cc +++ b/lib/privatekey.cc @@ -124,3 +124,41 @@ namespace Fides { return string((const char *)sig.begin(), (size_t)sig.size()); } } + +// C bindings + +fides_privatekey *fides_privatekey_new() { + return new Fides::PrivateKey(); +} + +void fides_privatekey_free(fides_privatekey *k) { + delete k; +} + +void fides_privatekey_load_public(fides_privatekey *k, const char *filename) { + k->load(filename); +} + +void fides_privatekey_save_public(fides_privatekey *k, const char *filename) { + k->save(filename); +} + +void fides_privatekey_load(fides_privatekey *k, const char *filename) { + k->load_private(filename); +} + +void fides_privatekey_save(fides_privatekey *k, const char *filename) { + k->save_private(filename); +} + +void fides_privatekey_generate_field(fides_privatekey *k, const char *field) { + k->generate(field); +} + +void fides_privatekey_generate(fides_privatekey *k, unsigned int bits) { + k->generate(bits); +} + +char *fides_privatekey_sign(fides_privatekey *k, const char *data) { + return strdup(k->sign(data).c_str()); +}