./security/dhbitty, Small public key ECDH encryption/decryption program

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 20120806, Package name: dhbitty-20120806, Maintainer: agc

dhbitty is a small public key encryption program written in C. It
uses elliptic curve Diffie-Hellman in the form of Curve25519 to
establish a shared secret between two users, and uses that secret to
symmetrically encrypt and authenticate messages.

There are no private key files; only passphrases. Never lose that
pesky thing again.

Both the sender and the receiver can decrypt a message. In fact,
there is no distinction between sender and receiver. Both passphrases
must be strong.

There is no signing. A similarly useful form of authentication occurs
using only DH. dhbitty attempts to be as simple as possible. It is
not optimized, but achieves a comfortable speed for most uses. It
does not use floating point numbers, or integers longer than 32 bits.
It does not contain more algorithms than are needed.


Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 16.738 KB

Version history: (Expand)


CVS history: (Expand)


   2021-10-26 13:18:07 by Nia Alarie | Files touched by this commit (605)
Log message:
security: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Unfetchable distfiles (fetched conditionally?):
./security/cyrus-sasl/distinfo \ 
cyrus-sasl-dedad73e5e7a75d01a5f3d5a6702ab8ccd2ff40d.patch.v2
   2021-10-07 16:54:50 by Nia Alarie | Files touched by this commit (606)
Log message:
security: Remove SHA1 hashes for distfiles
   2017-09-22 09:02:57 by Thomas Klausner | Files touched by this commit (1)
Log message:
dhbitty: follow redirects
   2015-11-04 02:18:12 by Alistair G. Crooks | Files touched by this commit (434)
Log message:
Add SHA512 digests for distfiles for security category

Problems found locating distfiles:
	Package f-prot-antivirus6-fs-bin: missing distfile fp-NetBSD.x86.32-fs-6.2.3.tar.gz
	Package f-prot-antivirus6-ws-bin: missing distfile fp-NetBSD.x86.32-ws-6.2.3.tar.gz
	Package libidea: missing distfile libidea-0.8.2b.tar.gz
	Package openssh: missing distfile openssh-7.1p1-hpn-20150822.diff.bz2
	Package uvscan: missing distfile vlp4510e.tar.Z

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
   2014-10-09 16:07:17 by Thomas Klausner | Files touched by this commit (1163)
Log message:
Remove pkgviews: don't set PKG_INSTALLATION_TYPES in Makefiles.
   2012-10-23 20:17:02 by Aleksej Saushev | Files touched by this commit (368)
Log message:
Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.
   2012-08-11 19:43:48 by Alistair G. Crooks | Files touched by this commit (5) | Imported package
Log message:
Import dhbitty-20120812 into the Packages Collection.

	dhbitty is a small public key encryption program written in C.  It
	uses elliptic curve Diffie-Hellman in the form of Curve25519 to
	establish a shared secret between two users, and uses that secret to
	symmetrically encrypt and authenticate messages.

	There are no private key files; only passphrases.  Never lose that
	pesky thing again.

	Both the sender and the receiver can decrypt a message.  In fact,
	there is no distinction between sender and receiver.  Both passphrases
	must be strong.

	There is no signing.  A similarly useful form of authentication occurs
	using only DH.  dhbitty attempts to be as simple as possible.  It is
	not optimized, but achieves a comfortable speed for most uses.  It
	does not use floating point numbers, or integers longer than 32 bits.
	It does not contain more algorithms than are needed.

Example                                                                          \ 
                                                      
                                                                                 \ 
                                                      
   This is how Alice generates her public key with dhbitty:
$ dhbitty generate alice_public_key.txt
username:passphrase (this is visible!): alice:Keyfiles be damned!
Done.

   Bob will do the same thing:
$ dhbitty generate bob_public_key.txt
username:passphrase (this is visible!): bob:Bob's Spectacular Passphrase
Done.
                                                                                 \ 
                                                      
   Alice will publish her alice_public_key.txt, and Bob will publish his \ 
bob_public_key.txt. They can now access each other's
   public keys. (But they should be careful that Eve cannot surreptitiously \ 
replace either public key with her own!)

   Alice wants to send files to Bob. She packages them into a .tar archive (or \ 
any other type of archive with timestamps), along
   with her message. Then she uses dhbitty:
$ dhbitty encrypt bob_public_key.txt files_to_bob.tar files_to_bob.tar.dhbt
username:passphrase (this is visible!): alice:Keyfiles be damned!
Done.

   Alice sends files_to_bob.tar.dhbt to Bob. Bob will use dhbitty to decrypt \ 
this archive:
$ dhbitty decrypt files_to_bob.tar.dhbt files_to_bob.tar
username:passphrase (this is visible!): bob:Bob's Spectacular Passphrase
This is the public key of file's secondary owner:
0002f02b318c307bac07f3148a33c975cea04b79a870f0a5c7771cd38cc1986e
Done.

   Bob can verify that the public key dhbitty just gave him indeed is Alice's \ 
public key. He unpacks the now-decrypted archive to
   access the files Alice sent to him.

   In practice, Alice and Bob should use a system like diceware to pick \ 
passphrases, in order to be confident of their strength.
   Seven words picked using diceware is a good choice.