Skip to content


Repository files navigation

cpgb is a project to create a replacement for gpg that use Elliptic
Curve Cryptography. cpgb aims to be secure, fast, and usable for many
purposes. The cryptographic components are from the NaCL project,

Currently CPGP compiles a few programs: keygen, encrypt, decrypt, sign,
verify, sign-detached, verify-detached, hex, unhex, lookup.

keygen -s spub spriv
-creates a signing key, putting the public part in spub
and the private part in spriv

keygen -e pub priv
-creates an encryption key, putting the public part in pub
and the private part in priv.

encrypt pub priv file
-outputs an ecrypted form of file to standard output,
with pub the public key of the recipient and priv the private key of the

decrypt pub priv file
-outputs a decrypted form of file to standard output
and exits normally if file is encrypted with the private key corresponding
to pub, and the public key corresponding to priv

sign spriv file
-outputs a signed form of file on standard output

verify spub file
-if file was signed with the private key corresponding to spub then
the original file is output to standard output.

sign-detached spriv file
-outputs a short signature for file

verify-detached spub file sig
-prints "Verify Succeeded!" to standard output if sig is a short signature
generated by sign-detached for file, with the private key corresponding
to spub. If sig is not a short signautre, prints "Verification Failed" and
exits with nonzero status.

encrypt-passphrase in out
Prompts for a user provided passphrase then encrypts in and places the
result in out.

decryp-passphrase in out
Prompts for a passphrase, decrypts in with it, places result in out. If
in was not encrypted with that passphrase nothing happens.

The key derivation function is iterated sha512. This is not a terribly good
design, and at some point I will implement ROMIX or rip it from scrypt.

hex takes its standard input and converts it to hex

unhex reverses what hex did.

lookup file key value

Lookup examines a list of a-lists in Lips format in file and prints out all
with (key . "value"). Chicken is required to compile it. Adding to file is
easy with a text editor.


CPGB is the Curve Privacy Guard B, a secure replacement for GPG using ECC.







No packages published