Pretty Curved Privacy

Finally, I'm done wit the first working version of "Pretty Curved Privacy". It's late, so for today only an ASCII-Cast about how to use it.

Meanwhile, here are the install instructions, intro and quickstart:


Pretty Curved Privacy (pcp1) is a commandline utility which can be used to encrypt files. pcp1 uses eliptc curve cryptography for encryption (CURVE25519 by Dan J. Bernstein). While CURVE25519 is no worldwide accepted standard it hasn't been compromised by the NSA - which might be better, depending on your point of view.

Caution: since CURVE25519 is no accepted standard, pcp1 has to be considered as experimental software. In fact, I wrote it just to learn about the curve and see how it works.

Beside some differences it works like GNUPG. So, if you already know how to use gpg, you'll feel almost home.


Lets say, Alicia and Bobby want to exchange encrypted messages. Here's what the've got to do.

First, both have create a secret key:

 Alicia                             Bobby
 pcp1 -k                            pcp1 -k

After entering their name, email address and a passphrase to protect the key, it will be stored in their vault file (by default ~/.pcpvault).

Now, both of them have to export the public key part of their key:

 Alicia                             Bobby
 pcp1 -p -O              pcp1 -p -O

They've to exchange the public key somehow (which is not my problem at the moment, use ssh, encrypted mail, whatever). Once exchanged, they have to import it:

 Alicia                             Bobby
 pcp1 -P -I               pcp1 -P -I

They will see a response as this when done:

 key 0x29A323A2C295D391 added to .pcpvault.

Now, Alicia finally writes the secret message, encrypts it and sends it to Bobby, who in turn decrypts it:

 Alicia                             Bobby
 echo "Love you, honey" > letter
 pcp1 -e -i 0x29A323A2C295D391 -I letter -O letter.z85
 cat letter.z85 | mail

                                    pcp1 -d -I letter.z85 | less

And that's it.

Please note the big difference to GPG though: both Alicia AND Bobby have to enter the passphrase for their secret key! That's the way CURVE25519 works: you encrypt a message using your secret key and the recipients public key and the recipient does the opposite, he uses his secret key and your public key to actually decrypt the message.

Oh - and if you're wondering why I named them Alicia and Bobby: I was just sick of Alice and Bob. We're running NSA-free, so we're using other sample names as well.


There are currently no packages available, so pcp has to be compiled from source. Follow these steps:

First, you will need libsodium:

 git clone git://
 cd libsodium
 ./configure && make check
 sudo make install
 sudo ldconfig
 cd ..

Next, pcp:

 git clone git://
 cd pcp
 sudo make install
 cd ..

Optionally, you might run the unit tests:

 make test