CSP is a Perl class and script for running multiple CAs. OpenSSL is used
for all operations. CSP can also generate a small CA website used to
distribute certificates and CRLs.
This code appears to have only cursory resemblance to Bruce Schneier's
blowfish and twofish algorithms in that it too has a table-based decoder.
Derivation from FairKeys code by Jon Lech Johanson at nanocrew.net.
If you don't know what that is, don't bother looking here further. This is
a Pure Perl implementation. I doubt there is any need for xs coding for
what would mainly be processing 16 bytes at a time. This code is part of an
ongoing effort to clone portions of the Apple iTMS in Perl for portability.
See www.hymn-project.org for prior efforts by others.
his is Crypt::Blowfish, an XS-based implementation of the
Blowfish cryptography algorithm designed by Bruce Schneier. It's designed
to take full advantage of Crypt::CBC when desired. Blowfish keys may be
up to 448 bits (56 bytes) long.
This module is just a helper for Crypt::CBC to make simple and usual jobs just
one-liners.
Crypt::CipherSaber is a Perl module providing an object oriented interface to
CipherSaber-1 and CipherSaber-2 encryption.
Crypt::Cracklib is a perl interface to Alec Muffet's cracklib library.
Generic Counter Mode implementation in pure Perl. The Counter Mode module
constructs a stream cipher from a block cipher or cryptographic hash funtion
and returns it as an object. Any block cipher in the Crypt:: class can be
used, as long as it supports the blocksize and keysize methods. Any hash
function in the Digest:: class can be used, as long as it supports
the add method.
Curve25519 is a state-of-the-art Diffie-Hellman function suitable for a wide
variety of applications.
Given a user's 32-byte secret key, Curve25519 computes the user's 32-byte public
key. Given the user's 32-byte secret key and another user's 32-byte public key,
Curve25519 computes a 32-byte secret shared by the two users. This secret can
then be used to authenticate and encrypt messages between the two users.
Crypt::DSA is an implementation of the DSA (Digital Signature Algorithm)
signature verification system. The implementation itself is pure Perl,
although the heavy-duty mathematics underneath are provided by the
Math::Pari library.
This package provides DSA signing, signature verification, and key generation.
The dining cryptographers' protocol is documented in Bruce Schneier's book
as a kind of "cryptographic ouija board". It works as follows:
A number of cryptographers are dining at a circular table. At the end of
the meal, the waiter is summoned and asked for the bill. He replies,
"Thank you, sir. The bill has been paid." The cryptographers now have the
problem of working out whether someone at the table paid the bill, or
whether the NSA has paid it as some sort of veiled threat. The protocol
proceeds.
Each cryptographer flips a coin, and shows the result ONLY to the
participant on his RIGHT. Each cryptographer then compares his coin with
that on his LEFT, and raises his hand if they show different faces. If any
participant paid the bill, he "cheats" and does the opposite, that is, he
raises his hand if the coins show the same face. Now, the hands are
counted. An odd number means that someone at the table paid the bill. An
even number means that the NSA paid.