Install a pkg-config file.
[fides] / lib / privatekey.h
index 9e95859..6270a2a 100644 (file)
@@ -1,4 +1,4 @@
-/* privatekey.h - Fides private key class
+/* PrivateKey.h - Fides private key class
    Copyright (C) 2008-2009  Guus Sliepen <guus@tinc-vpn.org>
   
    Fides is free software; you can redistribute it and/or modify
 #ifndef __FIDES_PRIVATEKEY_H__
 #define __FIDES_PRIVATEKEY_H__
 
+#include "publickey.h"
+
+#ifdef __cplusplus
 #include <string>
 #include <botan/botan.h>
 #include <botan/ecdsa.h>
-#include "publickey.h"
 
-namespace fides {
-       class privatekey: public publickey {
+namespace Fides {
+       class PrivateKey: public PublicKey {
                Botan::ECDSA_PrivateKey *priv;
 
                public:
-               privatekey();
-               ~privatekey();
+               PrivateKey();
+               ~PrivateKey();
 
                void load_private(std::istream &in);
                void save_private(std::ostream &out) const;
@@ -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