Status C++ API for Pretty Curved Privacy

While I'm waiting for Frank to fix the AIX libsodium issue I thought it would be a good idea to start with a C++ API for Pretty Curved Privacy. And I've to admit, that it is really fun to do that. Working with the C++ API makes the whole thing a LOT easier. Here's an example of how to generate some keys and encrypt some data:

#include <pcp++.h>
#include <string>
#include <iostream>

using namespace pcp; using namespace std;

int main() { try { /* generate 2 secret keys */ Key A = Key("a", "alicia", "alicia@local"); Key B = Key("b", "bobby", "bobby@local");

/* extract the public parts of them */ PubKey PA = A.get_public(); PubKey PB = B.get_public();

/* decrypt the secret keys */ A.decrypt("a"); B.decrypt("b");

/* create crypto objects (1st for the sender, 2nd for the recipient) */ Crypto A2B(A, PB); Crypto B2A(B, PA);

/* actually encrypt something (alicia to bobby) */ string cipher = A2B.encrypt("Hallo");

/* and decrypt it (bobby from alicia) */ ResultSet res = B2A.decrypt(cipher);

/* see if it worked as expected */ if(res.String == "Hallo") cout << "ok" << endl; else throw pcp::exception("wtf - decryption failed (uncatched as well)"); } catch (pcp::exception &E) { cerr << "Catched exception: " << E.what() << endl; } return 0; }

Now, that's easy, isn't it? At least I like it. The API is not ready though, signing and derived keys are not done yet. More example code can be seen in the C++ unittest.

#source

↷ 02.12.2013