mirror of
https://codeberg.org/scip/pcp.git
synced 2025-12-17 03:50:57 +01:00
initial commit
This commit is contained in:
156
README.pod
Normal file
156
README.pod
Normal file
@@ -0,0 +1,156 @@
|
||||
=head1 DESCRIPTION
|
||||
|
||||
B<Pretty Curved Privacy> (pcp1) is a commandline utility which can
|
||||
be used to encrypt files. B<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.
|
||||
|
||||
B<Caution>: since CURVE25519 is no accepted standard, B<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 B<GNUPG>. So, if you already
|
||||
know how to use gpg, you'll feel almost home.
|
||||
|
||||
=head1 QUICKSTART
|
||||
|
||||
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 B<vault file> (by default ~/.pcpvault).
|
||||
|
||||
Now, both of them have to export the public key part of their key:
|
||||
|
||||
Alicia Bobby
|
||||
pcp1 -p -O alicia.pub pcp1 -p -O bobby.pub
|
||||
|
||||
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 bobby.pub pcp1 -P -I alicia.pub
|
||||
|
||||
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 bobby@foo.bar
|
||||
|
||||
pcp1 -d -I letter.z85 | less
|
||||
|
||||
And that's it.
|
||||
|
||||
Please note the big difference to B<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.
|
||||
|
||||
=head1 INSTALLATION
|
||||
|
||||
There are currently no packages available, so B<pcp> has to be
|
||||
compiled from source. Follow these steps:
|
||||
|
||||
First, you will need libsodium:
|
||||
|
||||
git clone git://github.com/jedisct1/libsodium.git
|
||||
cd libsodium
|
||||
./autogen.sh
|
||||
./configure && make check
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
cd ..
|
||||
|
||||
Next, pcp:
|
||||
|
||||
git clone git://github.com/tlinden/pcp.git
|
||||
cd pcp
|
||||
./configure
|
||||
sudo make install
|
||||
cd ..
|
||||
|
||||
Optionally, you might run the unit tests:
|
||||
|
||||
make test
|
||||
|
||||
=head1 DOCUMENTATION
|
||||
|
||||
To learn how to use B<pcp>, read the manpage:
|
||||
|
||||
man pcp1
|
||||
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright (c) 2013 by T.Linden <tom AT cpan DOT org>
|
||||
|
||||
=head1 ADDITIONAL COPYRIGHTS
|
||||
|
||||
=over
|
||||
|
||||
=item B<ZeroMQ Z85 encoding routine>
|
||||
|
||||
Copyright (c) 2007-2013 iMatix Corporation
|
||||
Copyright (c) 2009-2011 250bpm s.r.o.
|
||||
Copyright (c) 2010-2011 Miru Limited
|
||||
Copyright (c) 2011 VMware, Inc.
|
||||
Copyright (c) 2012 Spotify AB
|
||||
|
||||
=item B<Tarsnap readpass helpers>
|
||||
|
||||
Copyright 2009 Colin Percival
|
||||
|
||||
=item B<jen_hash() hash algorithm>
|
||||
|
||||
Bob Jenkins, Public Domain.
|
||||
|
||||
=item B<UTHASH hashing macros>
|
||||
|
||||
Copyright (c) 2003-2013, Troy D. Hanson
|
||||
|
||||
=item B<Random art image from OpenSSH keygen>
|
||||
|
||||
Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
|
||||
|
||||
Comitted by Alexander von Gernler in rev 1.7.
|
||||
|
||||
=back
|
||||
|
||||
Every incorporated source code is opensource and licensed
|
||||
under the B<GPL> as well.
|
||||
|
||||
=head1 AUTHORS
|
||||
|
||||
I<T.Linden <tom AT cpan DOT org>>
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
Licensed under the GNU GENERAL PUBLIC LICENSE version 3.
|
||||
|
||||
=head1 HOME
|
||||
|
||||
The homepage of Pretty Curved Privacy can be found on
|
||||
http://www.daemon.de/PrettyCurvedPrivacy. The source is
|
||||
on Github: https://github.com/TLINDEN/pcp
|
||||
|
||||
=cut
|
||||
Reference in New Issue
Block a user