crypto
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 48
Crypto++ 5.5
Crypto++ project is a free C++ class library of cryptographic schemes. more>>
Crypto++ project is a free C++ class library of cryptographic schemes.
Main features:
- a class hierarchy with an API defined by abstract base classes
- AES (Rijndael) and AES candidates: RC6, MARS, Twofish, Serpent, CAST-256
- other symmetric block ciphers: IDEA, DES, Triple-DES (DES-EDE2 and DES-EDE3), DESX (DES-XEX3), RC2, RC5, Blowfish, Diamond2, TEA, SAFER, 3-WAY, GOST, SHARK, CAST-128, Square, Skipjack, Camellia, SHACAL-2
- generic cipher modes: ECB, CBC, CBC ciphertext stealing (CTS), CFB, OFB, counter mode (CTR)
- stream ciphers: Panama, ARC4, SEAL, WAKE, WAKE-OFB, BlumBlumShub
- public-key cryptography: RSA, DSA, ElGamal, Nyberg-Rueppel (NR), Rabin, Rabin-Williams (RW), LUC, LUCELG, DLIES (variants of DHAES), ESIGN
- padding schemes for public-key systems: PKCS#1 v2.0, OAEP, PSS, PSSR, IEEE P1363 EMSA2 and EMSA5
- key agreement schemes: Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, XTR-DH
- elliptic curve cryptography: ECDSA, ECNR, ECIES, ECDH, ECMQV
- one-way hash functions: SHA-1, MD2, MD4, MD5, HAVAL, RIPEMD-128, RIPEMD-256, RIPEMD-160, RIPEMD-320, Tiger, SHA-2 (SHA-224, SHA-256, SHA-384, and SHA-512), Panama, Whirlpool
- message authentication codes: MD5-MAC, HMAC, XOR-MAC, CBC-MAC, DMAC, Two-Track-MAC
- cipher constructions based on hash functions: Luby-Rackoff, MDC
- pseudo random number generators (PRNG): ANSI X9.17 appendix C, PGPs RandPool
- password based key derivation functions: PBKDF1 and PBKDF2 from PKCS #5
- Shamirs secret sharing scheme and Rabins information dispersal algorithm (IDA)
- DEFLATE (RFC 1951) compression/decompression with gzip (RFC 1952) and zlib (RFC 1950) format support
- fast multi-precision integer (bignum) and polynomial operations, with SSE2 optimizations for Pentium 4 processors, and support for 64-bit CPUs
- finite field arithmetics, including GF(p) and GF(2^n)
- prime number generation and verification
- various miscellaneous modules such as base 64 coding and 32-bit CRC
- class wrappers for these operating system features (optional):
- high resolution timers on Windows, Unix, and MacOS
- Berkeley and Windows style sockets
- Windows named pipes
- /dev/random and /dev/urandom on Linux and FreeBSD
- Microsofts CryptGenRandom on Windows
- A high level interface for most of the above, using a filter/pipeline metaphor
- benchmarks and validation testing
- FIPS 140-2 Validated
Enhancements:
- This release added VMAC and Sosemanuk, and improved the speed of several other algorithms using x86/x86-64/MMX/SSE2 assembly.
- Random number generators and DSA-like signature algorithms were modified to reduce the risk of reusing random numbers and IVs after virtual machine state rollback.
<<lessMain features:
- a class hierarchy with an API defined by abstract base classes
- AES (Rijndael) and AES candidates: RC6, MARS, Twofish, Serpent, CAST-256
- other symmetric block ciphers: IDEA, DES, Triple-DES (DES-EDE2 and DES-EDE3), DESX (DES-XEX3), RC2, RC5, Blowfish, Diamond2, TEA, SAFER, 3-WAY, GOST, SHARK, CAST-128, Square, Skipjack, Camellia, SHACAL-2
- generic cipher modes: ECB, CBC, CBC ciphertext stealing (CTS), CFB, OFB, counter mode (CTR)
- stream ciphers: Panama, ARC4, SEAL, WAKE, WAKE-OFB, BlumBlumShub
- public-key cryptography: RSA, DSA, ElGamal, Nyberg-Rueppel (NR), Rabin, Rabin-Williams (RW), LUC, LUCELG, DLIES (variants of DHAES), ESIGN
- padding schemes for public-key systems: PKCS#1 v2.0, OAEP, PSS, PSSR, IEEE P1363 EMSA2 and EMSA5
- key agreement schemes: Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, XTR-DH
- elliptic curve cryptography: ECDSA, ECNR, ECIES, ECDH, ECMQV
- one-way hash functions: SHA-1, MD2, MD4, MD5, HAVAL, RIPEMD-128, RIPEMD-256, RIPEMD-160, RIPEMD-320, Tiger, SHA-2 (SHA-224, SHA-256, SHA-384, and SHA-512), Panama, Whirlpool
- message authentication codes: MD5-MAC, HMAC, XOR-MAC, CBC-MAC, DMAC, Two-Track-MAC
- cipher constructions based on hash functions: Luby-Rackoff, MDC
- pseudo random number generators (PRNG): ANSI X9.17 appendix C, PGPs RandPool
- password based key derivation functions: PBKDF1 and PBKDF2 from PKCS #5
- Shamirs secret sharing scheme and Rabins information dispersal algorithm (IDA)
- DEFLATE (RFC 1951) compression/decompression with gzip (RFC 1952) and zlib (RFC 1950) format support
- fast multi-precision integer (bignum) and polynomial operations, with SSE2 optimizations for Pentium 4 processors, and support for 64-bit CPUs
- finite field arithmetics, including GF(p) and GF(2^n)
- prime number generation and verification
- various miscellaneous modules such as base 64 coding and 32-bit CRC
- class wrappers for these operating system features (optional):
- high resolution timers on Windows, Unix, and MacOS
- Berkeley and Windows style sockets
- Windows named pipes
- /dev/random and /dev/urandom on Linux and FreeBSD
- Microsofts CryptGenRandom on Windows
- A high level interface for most of the above, using a filter/pipeline metaphor
- benchmarks and validation testing
- FIPS 140-2 Validated
Enhancements:
- This release added VMAC and Sosemanuk, and improved the speed of several other algorithms using x86/x86-64/MMX/SSE2 assembly.
- Random number generators and DSA-like signature algorithms were modified to reduce the risk of reusing random numbers and IVs after virtual machine state rollback.
Download (0.98MB)
Added: 2007-05-06 License: BSD License Price:
921 downloads
M2Crypto 0.18
M2Crypto project is a crypto and SSL toolkit for Python. more>>
M2Crypto project is a crypto and SSL toolkit for Python.
Main features:
- RSA, DSA, DH, HMACs, message digests, symmetric ciphers (including AES).
- SSL functionality to implement clients and servers.
- HTTPS extensions to Pythons httplib, urllib, and xmlrpclib.
- Unforgeable HMACing AuthCookies for web session management.
- FTP/TLS client and server.
- S/MIME.
- ZServerSSL: A HTTPS server for Zope.
- ZSmime: An S/MIME messenger for Zope.
<<lessMain features:
- RSA, DSA, DH, HMACs, message digests, symmetric ciphers (including AES).
- SSL functionality to implement clients and servers.
- HTTPS extensions to Pythons httplib, urllib, and xmlrpclib.
- Unforgeable HMACing AuthCookies for web session management.
- FTP/TLS client and server.
- S/MIME.
- ZServerSSL: A HTTPS server for Zope.
- ZSmime: An S/MIME messenger for Zope.
Download (0.36MB)
Added: 2007-07-27 License: BSD License Price:
819 downloads
CryptoFS 0.6.0
CryptoFS is an encryption filesystem for LUFS. more>>
CryptoFS project is a encrypted filesystem for the Linux Userland FileSystem.
CryptoFS will use a normal directory to store files encrypted. The mountpoint will contain the decrypted files. Every file stored in this mountpoint will be written encrypted (data and filename) to the directory that was mounted.
If you unmount the directory the encrypted data can only be access by mounting the directory with the correct key again. Like other LUFS filesystems it does not need root access or any complicated setup like creating a filesystem on a encrypted disk using the loop device.
This package will create a shared library that can be used by LUFSs lufsd to mount a directory containing encrypted data to another directory.
I first used the evfs kernel patch that does nearly the same thing as CryptoFS. But it seems that it has been abandoned. The last patch was available for kernel 2.4.20 and has not been updated for newer kernels since then.
When I found LUFS I thought I could be a good base for a crypto filesystem that works like evfs and allows a user to mount any directory as an encrypted storage without having root access and creating a crypto filesystem using the loop device. So when I found no other program that offers this posibilities I started to write my own filesystem for LUFS.
Usage
Put the shared library into a directory where the system linker can find it (this will usually be done by "make install") or add the directory to the search path by setting the LD_LIBRARY_PATH environment varibale.
First you have to set up the source directory by copying the file cryptofs.conf to /.cryptofs. You can adjust the values in the file, but the default should work fine.
After that you can mount the source directory with lufsmount cryptofs://
You will be asked for the password you want to use for this filesystem. It will be used to generate the cipher key.
After that you should be able to use the directory like any other directory, but all data will be read and written to the directory in an encrypted form.
Encryption
When a filesystem is mounted CryptoFS first generates a key for the requested cipher algorithm (CRYPTOFS::cipher) using the message digest function (CRYPTOFS::md). Every algorithm has a specific key size and every message digest function has a specific length of the generated message digest. If the message digest size is smaller then the keysize the message digest will be repeated until the key size is reached.
After they primary key has been generated CRYPTOFS::salts subkeys (initialization vectors) will be generated by encrypting 0 bytes with a 0 initialization vector. These will later be used to encrypt blocks with different subkeys to make sure the cipher text will first repeat after (salts * blocksize) bytes (If the same data is encrypted).
When files or links are created or renamed the name will be encoded with the selected cipher, the primary key and the first subkey. The result will then be encoded using a modified Base64 algorithm because the encrypted filename could contain characters that are not allowed by the target filesystem. (The original Base64 algorithm uses / for encoding. This is the directory delimiter so it was replaced by _)
When files are written the data will be encrypted. CryptoFS always has to write full blocks. So if only a part of a block should be written the original block will first be read, decrypted, the part replaced and then the result then written encrypted back to disk. To keep this performant that block size must not be too large.
But to make sure the cipher text does not repeat to early, CryptoFS uses salts to encrypt blocks. Every block will be encoded with the (blocknumber module salts)th salt. (NOTE: Linux always reads or writes "pages" of size 4096 bytes, these writes will be forwarded by lufsd to CryptoFS. So if you use a blocksize of 4096 bytes reading the old block before writing can be omitted and writing should be faster).
<<lessCryptoFS will use a normal directory to store files encrypted. The mountpoint will contain the decrypted files. Every file stored in this mountpoint will be written encrypted (data and filename) to the directory that was mounted.
If you unmount the directory the encrypted data can only be access by mounting the directory with the correct key again. Like other LUFS filesystems it does not need root access or any complicated setup like creating a filesystem on a encrypted disk using the loop device.
This package will create a shared library that can be used by LUFSs lufsd to mount a directory containing encrypted data to another directory.
I first used the evfs kernel patch that does nearly the same thing as CryptoFS. But it seems that it has been abandoned. The last patch was available for kernel 2.4.20 and has not been updated for newer kernels since then.
When I found LUFS I thought I could be a good base for a crypto filesystem that works like evfs and allows a user to mount any directory as an encrypted storage without having root access and creating a crypto filesystem using the loop device. So when I found no other program that offers this posibilities I started to write my own filesystem for LUFS.
Usage
Put the shared library into a directory where the system linker can find it (this will usually be done by "make install") or add the directory to the search path by setting the LD_LIBRARY_PATH environment varibale.
First you have to set up the source directory by copying the file cryptofs.conf to /.cryptofs. You can adjust the values in the file, but the default should work fine.
After that you can mount the source directory with lufsmount cryptofs://
You will be asked for the password you want to use for this filesystem. It will be used to generate the cipher key.
After that you should be able to use the directory like any other directory, but all data will be read and written to the directory in an encrypted form.
Encryption
When a filesystem is mounted CryptoFS first generates a key for the requested cipher algorithm (CRYPTOFS::cipher) using the message digest function (CRYPTOFS::md). Every algorithm has a specific key size and every message digest function has a specific length of the generated message digest. If the message digest size is smaller then the keysize the message digest will be repeated until the key size is reached.
After they primary key has been generated CRYPTOFS::salts subkeys (initialization vectors) will be generated by encrypting 0 bytes with a 0 initialization vector. These will later be used to encrypt blocks with different subkeys to make sure the cipher text will first repeat after (salts * blocksize) bytes (If the same data is encrypted).
When files or links are created or renamed the name will be encoded with the selected cipher, the primary key and the first subkey. The result will then be encoded using a modified Base64 algorithm because the encrypted filename could contain characters that are not allowed by the target filesystem. (The original Base64 algorithm uses / for encoding. This is the directory delimiter so it was replaced by _)
When files are written the data will be encrypted. CryptoFS always has to write full blocks. So if only a part of a block should be written the original block will first be read, decrypted, the part replaced and then the result then written encrypted back to disk. To keep this performant that block size must not be too large.
But to make sure the cipher text does not repeat to early, CryptoFS uses salts to encrypt blocks. Every block will be encoded with the (blocknumber module salts)th salt. (NOTE: Linux always reads or writes "pages" of size 4096 bytes, these writes will be forwarded by lufsd to CryptoFS. So if you use a blocksize of 4096 bytes reading the old block before writing can be omitted and writing should be faster).
Download (0.30MB)
Added: 2007-02-04 License: GPL (GNU General Public License) Price:
1000 downloads
Filter::Crypto 1.18
Filter::Crypto is a Perl module that can create runnable Perl files encrypted with OpenSSL libcrypto. more>>
Filter::Crypto is a Perl module that can create runnable Perl files encrypted with OpenSSL libcrypto.
SYNOPSIS
# Encrypt a Perl script using the crypt_file script; run it as usual:
$ crypt_file --in-place hello.pl
$ hello.pl
# Create a PAR archive containing an encrypted Perl script; run it as usual:
# (This example assumes that you also have PAR installed)
$ pp -f Crypto -M Filter::Crypto::Decrypt -o hello hello.pl
$ hello
# Display the Filter-Crypto distribution version number:
use Filter::Crypto;
print "This is Filter-Crypto $Filter::Crypto::VERSIONn";
The Filter-Crypto distribution provides the means to convert your Perl files into an encrypted, yet still runnable, format to hide the source code from casual prying eyes.
This is achieved using a Perl source code filter. The encrypted files, produced using the Filter::Crypto::CryptFile module, automatically have one (unencrypted) line added to the start of them that loads the Filter::Crypto::Decrypt module. The latter is a Perl source code filter that decrypts the remaining (encrypted) part of the Perl file on the fly when it is run. See perlfilter if you want to know more about how Perl source code filters work.
Encrypted files can also be produced more conveniently using the crypt_file script, or (if you also have the PAR module available) using the PAR::Filter::Crypto module. The latter can be utilized by the standard PAR tools to produce PAR archives in which your Perl files are encrypted.
The actual encryption and decryption is performed using one of the symmetric cipher algorithms provided by the OpenSSL libcrypto library. The EVP library high-level interface functions to the various cipher algorithms themselves are used so that your choice of algorithm (and also what password or key to use) is made simply by answering some questions when building this distribution. See the INSTALL file for more details.
This module itself only contains this documentation and the version number of the Filter-Crypto distribution as a whole.
<<lessSYNOPSIS
# Encrypt a Perl script using the crypt_file script; run it as usual:
$ crypt_file --in-place hello.pl
$ hello.pl
# Create a PAR archive containing an encrypted Perl script; run it as usual:
# (This example assumes that you also have PAR installed)
$ pp -f Crypto -M Filter::Crypto::Decrypt -o hello hello.pl
$ hello
# Display the Filter-Crypto distribution version number:
use Filter::Crypto;
print "This is Filter-Crypto $Filter::Crypto::VERSIONn";
The Filter-Crypto distribution provides the means to convert your Perl files into an encrypted, yet still runnable, format to hide the source code from casual prying eyes.
This is achieved using a Perl source code filter. The encrypted files, produced using the Filter::Crypto::CryptFile module, automatically have one (unencrypted) line added to the start of them that loads the Filter::Crypto::Decrypt module. The latter is a Perl source code filter that decrypts the remaining (encrypted) part of the Perl file on the fly when it is run. See perlfilter if you want to know more about how Perl source code filters work.
Encrypted files can also be produced more conveniently using the crypt_file script, or (if you also have the PAR module available) using the PAR::Filter::Crypto module. The latter can be utilized by the standard PAR tools to produce PAR archives in which your Perl files are encrypted.
The actual encryption and decryption is performed using one of the symmetric cipher algorithms provided by the OpenSSL libcrypto library. The EVP library high-level interface functions to the various cipher algorithms themselves are used so that your choice of algorithm (and also what password or key to use) is made simply by answering some questions when building this distribution. See the INSTALL file for more details.
This module itself only contains this documentation and the version number of the Filter-Crypto distribution as a whole.
Download (0.13MB)
Added: 2006-10-03 License: Perl Artistic License Price:
1119 downloads
twocrypt 2
twocrypt provides a crypto tool with a deniable encryption option. more>>
twocrypt provides a crypto tool with a deniable encryption option.
twocrypt (2c) is a tool for the ultra-paranoid, providing a traditional crypto, but also an option of deniable (subpoena-proof) encryption. It encrypts one or two files at once.
Each file can be recovered with its respective passphrase, but the presence of more than one file cannot be demonstrated, and the presence of this option alone should not be a credible argument for data hiding.
2c2 is a simple symmetric file encryption utility. It comes with an
interesting optional feature - it is capable to embed an additional file
within an encrypted data. This is done in a way that cannot be detected
without knowing the passphrase protecting the "hidden" file, even if the
password for the primary file is disclosed. The design is such that the
fact of using this method alone does not constitute a credible evidence of
data hiding (IANALBMSUTDO). This kind of encryption is also called
"subpoena-proof" or "deniable".
There is some previous work in this area. There are two popular approaches,
one is to throw away the encryption key, but store some information that
can be used to recover the key with a considerable computation effort
(several years or so). The concept seems to be risky for obvious reasons,
and is also impractical if the data has to remain accessible before the
projected cracking date.
The other approach is to have a number of containers protected with a number of passwords, of which some but not all might be encrypted data (rubberhose does that). I think its needlessly complex, and usually applied to a storage such as a disk drive.
As such, 2c would be the first tool to implement this functionality in a
reasonable and practical fasion, at least I think so.
Enhancements:
- It was possible to tell a two-file result from a single-file output,
_statistically_. This does not mean the question can be answered for a
particular archive, but single-file archives had a tendency to result
in a slightly larger file, and if you have a number of 2c-protected
files for which the primary password has been obtained, it can be
told how you use 2c. The reason for that was slightly broken compressed
pad length logic.
Severity: medium
- As a cryptographic safeguard, the random pad stream now consists of
a random, compressed file of a random length, followed by true garbage.
This is to mimick second file scenario more closely, so that if the
encryption proves weaker than originally thought, and some statistical
properties of a stream can be deduced, theres no exposure. Version
1 always used a full-length compressed pad, which was silly in that
its not that common to store perfectly-fit secondary files.
Severity: hypotetical issue
- In v1, random chunk would seldom get compressed, because the compression
algorithm resorted to storing uncompressed data if compression would
result in output bigger than input. This is not a flaw per se, but
defeats a minor safeguard intended to mimick a file that would often
be compressible. Now, encryption of all blocks is forced, even though
it might be less efficient.
Severity: hypotetical issue
- Input blocks are now split randomly to avoid placing compression
headers and other known structures at constant locations. This is just
another arbitrary safeguard for the algorithm.
Severity: hypotetical issue
- per Jamess suggestion, I added a counter to the PRNG generator
internal state. This prevents a hypotetical (although *extremely*
unlikely) generator stall scenario. This spectacularly breaks v1
compatibility, blame James ;-)
Severity: low
<<lesstwocrypt (2c) is a tool for the ultra-paranoid, providing a traditional crypto, but also an option of deniable (subpoena-proof) encryption. It encrypts one or two files at once.
Each file can be recovered with its respective passphrase, but the presence of more than one file cannot be demonstrated, and the presence of this option alone should not be a credible argument for data hiding.
2c2 is a simple symmetric file encryption utility. It comes with an
interesting optional feature - it is capable to embed an additional file
within an encrypted data. This is done in a way that cannot be detected
without knowing the passphrase protecting the "hidden" file, even if the
password for the primary file is disclosed. The design is such that the
fact of using this method alone does not constitute a credible evidence of
data hiding (IANALBMSUTDO). This kind of encryption is also called
"subpoena-proof" or "deniable".
There is some previous work in this area. There are two popular approaches,
one is to throw away the encryption key, but store some information that
can be used to recover the key with a considerable computation effort
(several years or so). The concept seems to be risky for obvious reasons,
and is also impractical if the data has to remain accessible before the
projected cracking date.
The other approach is to have a number of containers protected with a number of passwords, of which some but not all might be encrypted data (rubberhose does that). I think its needlessly complex, and usually applied to a storage such as a disk drive.
As such, 2c would be the first tool to implement this functionality in a
reasonable and practical fasion, at least I think so.
Enhancements:
- It was possible to tell a two-file result from a single-file output,
_statistically_. This does not mean the question can be answered for a
particular archive, but single-file archives had a tendency to result
in a slightly larger file, and if you have a number of 2c-protected
files for which the primary password has been obtained, it can be
told how you use 2c. The reason for that was slightly broken compressed
pad length logic.
Severity: medium
- As a cryptographic safeguard, the random pad stream now consists of
a random, compressed file of a random length, followed by true garbage.
This is to mimick second file scenario more closely, so that if the
encryption proves weaker than originally thought, and some statistical
properties of a stream can be deduced, theres no exposure. Version
1 always used a full-length compressed pad, which was silly in that
its not that common to store perfectly-fit secondary files.
Severity: hypotetical issue
- In v1, random chunk would seldom get compressed, because the compression
algorithm resorted to storing uncompressed data if compression would
result in output bigger than input. This is not a flaw per se, but
defeats a minor safeguard intended to mimick a file that would often
be compressible. Now, encryption of all blocks is forced, even though
it might be less efficient.
Severity: hypotetical issue
- Input blocks are now split randomly to avoid placing compression
headers and other known structures at constant locations. This is just
another arbitrary safeguard for the algorithm.
Severity: hypotetical issue
- per Jamess suggestion, I added a counter to the PRNG generator
internal state. This prevents a hypotetical (although *extremely*
unlikely) generator stall scenario. This spectacularly breaks v1
compatibility, blame James ;-)
Severity: low
Download (0.013MB)
Added: 2007-02-28 License: GPL (GNU General Public License) Price:
969 downloads
dm-crypt 0.1
dm-crypt is a device-mapper crypto target. more>>
dm-crypt is a device-mapper crypto target.
Device-mapper is a new infrastructure in the Linux 2.6 kernel that provides a generic way to create virtual layers of block devices that can do different things on top of real block devices like striping, concatenation, mirroring, snapshotting, etc... The device-mapper is used by the LVM2 and EVMS 2.x tools.
dm-crypt is such a device-mapper target that provides transparent encryption of block devices using the new Linux 2.6 cryptoapi. The user can basically specify one of the symmetric ciphers, a key (of any allowed size), an iv generation mode and then he can create a new block device in /dev. Writes to this device will be encrypted and reads decrypted. You can mount your filesystem on it as usual. But without the key you cant access your data.
It does basically the same as cryptoloop only that its a much cleaner code and better suits the need of a block device and has a more flexible configuration interface. The on-disk format is also compatible. In the future you will be able to specify other iv generation modes for enhanced security (youll have to reencrypt your filesystem though).
There is support for dm-crypt in the latest official kernel 2.6.4 which you can find on kernel.org. Please use the mirrors for downloads.
There is a HIGHMEM cryptoapi bug in kernels before 2.6.4-rc2, please upgrade if you were using such a kernel.
<<lessDevice-mapper is a new infrastructure in the Linux 2.6 kernel that provides a generic way to create virtual layers of block devices that can do different things on top of real block devices like striping, concatenation, mirroring, snapshotting, etc... The device-mapper is used by the LVM2 and EVMS 2.x tools.
dm-crypt is such a device-mapper target that provides transparent encryption of block devices using the new Linux 2.6 cryptoapi. The user can basically specify one of the symmetric ciphers, a key (of any allowed size), an iv generation mode and then he can create a new block device in /dev. Writes to this device will be encrypted and reads decrypted. You can mount your filesystem on it as usual. But without the key you cant access your data.
It does basically the same as cryptoloop only that its a much cleaner code and better suits the need of a block device and has a more flexible configuration interface. The on-disk format is also compatible. In the future you will be able to specify other iv generation modes for enhanced security (youll have to reencrypt your filesystem though).
There is support for dm-crypt in the latest official kernel 2.6.4 which you can find on kernel.org. Please use the mirrors for downloads.
There is a HIGHMEM cryptoapi bug in kernels before 2.6.4-rc2, please upgrade if you were using such a kernel.
Download (0.23MB)
Added: 2006-03-01 License: GPL (GNU General Public License) Price:
1334 downloads
Crypt::Util 0.02
Crypt::Util is a lightweight Crypt/Digest convenience API. more>>
Crypt::Util is a lightweight Crypt/Digest convenience API.
SYNOPSIS
use Crypto::Util; # also has a Sub::Exporter to return functions wrapping a default instance
my $util = Crypto::Util->new;
$util->default_key("my secret");
# MAC or cipher+digest based tamper resistent encapsulation
# (uses Storable on $data if necessary)
my $tamper_resistent_string = $util->tamper_proof( $data );
my $verified = $util->thaw_tamper_proof( $untrusted_string, key => "another secret" );
# If the encoding is unspecified, base32 is used
# (hex if base32 is unavailable)
my $encoded = $util->encode_string( $bytes );
my $hash = $util->digest( $bytes, digest => "md5" );
die "baaaad" unless $util->verify_hash(
hash => $hash,
data => $bytes,
digest => "md5",
);
<<lessSYNOPSIS
use Crypto::Util; # also has a Sub::Exporter to return functions wrapping a default instance
my $util = Crypto::Util->new;
$util->default_key("my secret");
# MAC or cipher+digest based tamper resistent encapsulation
# (uses Storable on $data if necessary)
my $tamper_resistent_string = $util->tamper_proof( $data );
my $verified = $util->thaw_tamper_proof( $untrusted_string, key => "another secret" );
# If the encoding is unspecified, base32 is used
# (hex if base32 is unavailable)
my $encoded = $util->encode_string( $bytes );
my $hash = $util->digest( $bytes, digest => "md5" );
die "baaaad" unless $util->verify_hash(
hash => $hash,
data => $bytes,
digest => "md5",
);
Download (0.036MB)
Added: 2007-02-16 License: Perl Artistic License Price:
980 downloads
Crypt::PBC 0.7.20.0-0.4.9
Crypt::PBC is a OO interface for the Stanford PBC library. more>>
Crypt::PBC is a OO interface for the Stanford PBC library.
SYNOPSIS
use Crypt::PBC;
my $pairing = new Crypt::PBC("params_d.txt");
my $G1 = $pairing->init_G1->random;
my $G2 = $pairing->init_G2->random->double->square;
my $GT = $pairing->init_GT->pairing_apply( $G1, $G2 );
The PBC library is a free portable C library designed to make it easy to implement pairing-based cryptosystems. It provides an abstract interface to a cyclic group with a bilinear pairing, and the programmer does not need to worry about, or even know about elliptic curves.
It is built on top of GMP, another C library which performs arbitrary precision arithmetic on integers, rationals and floats with strong emphasis on portability and speed.
Perl Module Methods
The Perl Module methods implement an OO interface that the author (Paul) highly recommends using. The only Perl Module OO function in the Crypt::PBC package is new(). Please see Crypt::PBC::Pairing and Crypt::PBC::Element for the guts of the intended OO interface.
Crypt::PBC::new()
Returns a new PBC pairing object. new() takes, as arguments, either the name of a file, a file stream (e.g., new Crypt::PBC(*STDIN)), or the params for a curve as a string. Ben Lynn provides a zip file of d-type curves:
MNT curve parameters for embedding degree 6 (which I
call type D curves), for all D less than a million, and
for subgroup sizes at least 80 bits and less than 300
bits long. Generated using test programs bundled with
PBC library.
http://crypto.stanford.edu/pbc/download.html
XS Loaded Functions
This section is basically a listing of the PBC functions as they are imported. You can use them directly if youre already comfortable with the layout of PBC. If youre starting from scratch and arent much of a C coder, youll have an easier time using the Perl Module methods because they implement a little type-safety to protect perl coders from segfaults.
Mixing and matching direct calls with the Perl Module methods is a sure way to run into trouble, since the Perl Module methods tag the PBC elements with a type.
+++ NOTE +++
You can use these functions successfully, but the intended interface was described above. Crypt::PBC::Element describes that interface in detail.
+++ /NOTE +++
Pairing Functions
# Initialize a pairing from an open file handle
my $pairing = &Crypt::PBC::pairing_init_stream(*STDIN);
# Initialize a pairing from a a $string
my $pairing = &Crypt::PBC::pairing_init_str($string);
# Clear the memory malloced for the pairing
&Crypt::PBC::pairing_clear($pairing);
# Apply the pairing. Be careful here. If you pass the wrong type of
# elements, GT = apply(G1, G2), this will segmentation fault! Please
# see the PBC documentation for further information:
# http://crypto.stanford.edu/pbc/manual/
&Crypt::PBC::pairing_apply($LHS, $RHS1, $RHS2, $pairing);
Element Initializer and Assignment Functions
my $element_in_G1 = &Crypt::PBC::element_init_G1($pairing);
my $element_in_G2 = &Crypt::PBC::element_init_G2($pairing);
my $element_in_GT = &Crypt::PBC::element_init_GT($pairing);
my $element_in_Zr = &Crypt::PBC::element_init_Zr($pairing);
# Do not forget to clear your memory!
&Crypt::PBC::element_clear( $element ); # in any group
# assign some random to $element
# (uses /dev/urandom if possible, or rand() if necessary)
&Crypt::PBC::element_random( $element );
&Crypt::PBC::element_set0( $element ); # set to 0
&Crypt::PBC::element_set1( $element ); # set to 1
&Crypt::PBC::element_set( $a, $b ); # a=b
&Crypt::PBC::element_set_si( $a, 5 ); # a=5
&Crypt::PBC::element_set_mpz( $a, $bigint );
# For this one, construct a Math::BigInt::GMP and pass that for
# $bigint. Alternatively, you can construct a $i=Math::BigInt and
# pass the $i->{value}. (That interface is probably not well
# supported but is the only one of which the author is aware.)
&Crypt::PBC::element_from_hash( $element, $hash );
# Set $element based on the bytes in $hash. You must use some kind
# of hashing algorithm (e.g., Digest::SHA1) to map data to an
# element:
#
# "In general you cannot feed it plaintext. You should only give it
# short strings of bytes (e.g. 160 bits if G1 has order around 2^160,
# which is the case for most of the bundled pairing parameters)."
# -- Lynn
&Crypt::PBC::element_from_bytes( $element, $bytes );
# Set $element based on the bytes in $bytes. this probably isnt useful
# unless $bytes is like $spewed_result from element_export() below.
Arithmetic Functions
# lhs=rhs1+rhs2 -- make sure these are all the same type ...
&Crypt::PBC::element_add($lhs, $rhs1, $rhs2);
&Crypt::PBC::element_sub($lhs, $rhs1, $rhs2); # lhs=rhs1-rhs2
&Crypt::PBC::element_mul($lhs, $rhs1, $rhs2);
&Crypt::PBC::element_div($lhs, $rhs1, $rhs2);
# (whatever these mean is in the context of the $pairing)
&Crypt::PBC::element_double($lhs, $rhs); # lhs = 2*rhs
&Crypt::PBC::element_halve( $lhs, $rhs); # lhs = rhs/2
&Crypt::PBC::element_square($lhs, $rhs); # lhs = rhs^2
&Crypt::PBC::element_neg( $lhs, $rhs); # (please see the PBC docs)
&Crypt::PBC::element_invert($lhs, $rhs); # lhs = 1/rhs
# Heres a few other choices for mul
&Crypt::PBC::element_mul_zn( $lhs, $rhs1, $rhs2 );
# $rhs1 and $lhs should be of the same type, but here $rhs2 should be
# in Zr instead of being in the same group like in element_mul()
# above
&Crypt::PBC::element_mul_mpz( $lhs, $rhs1, $rhs2 );
# For this one, construct a Math::BigInt::GMP and pass that for
# $rhs2 or pass $i->{value} from a Math::BigInt.
&Crypt::PBC::element_mul_si( $lhs, $rhs1, $rhs2 );
# Here, $rhs2 is a regular old integer...
&Crypt::PBC::element_pow_zn( $lhs, $a, $n); # lhs = a^n
&Crypt::PBC::element_pow2_zn($lhs, $a1, $n1, $a2, $n2); # a1^n1 * a2^n2
&Crypt::PBC::element_pow3_zn($lhs, $a1, $n1, $a2, $n2, $a3, $n3);
# in the above, the lhs and ad+ should be in the same group, nd+ in Zr
&Crypt::PBC::element_pow_mpz( $lhs, $a, $n);
&Crypt::PBC::element_pow2_mpz($lhs, $a1, $n1, $a2, $n2);
&Crypt::PBC::element_pow3_mpz($lhs, $a1, $n1, $a2, $n2, $a3, $n3);
# like the _zn functions, but nd+ should be Math::BigInt::GMP
# or pass $i->{value} from a Math::BigInt.
Comparison Functions
&Crypt::PBC::element_is0( $a ); # 1 when $a is 0
&Crypt::PBC::element_is1( $a ); # 1 when $a is 1
&Crypt::PBC::element_cmp( $a,$b ); # paradoxically, false when $a == $b
&Crypt::PBC::element_is_sqr( $a ); # 1 when $a is a perfect square ...
# see the PBC docs for words like "residue"
Export and Output
# Please check the PBC docs ...
&Crypt::PBC::element_fprintf(*OUTFILE, $format, $element);
&Crypt::PBC::element_fprintf(*STDOUT, "example element=%Bn", $element);
# (You may be surprised how many bigints are in these group elements.)
my $spewed_result = &Crypt::PBC::export_element($element);
# These are bytes, dumped from the $element, that can be used to
# reconstruct the element or used for interacting with real life data.
# Example:
my $cipher = new Crypt::CBC({
header => "randomiv",
key => &Crypt::PBC::export_element($element),
cipher => Blowfish, # hehe
});
my $big = &Crypt::PBC::element_to_mpz( $element );
# Returns a Math::BigInt::GMP, not a Math::BigInt! WARNING: the
# DESTROY() method from Math::BigInt::GMP will be missing unless you
# require that package into your program. Youll want to do that or youll
# have a memory leak... Lastly, this is really only useful for elements in
# Zr -- element_fprintf() to see what I mean.
<<lessSYNOPSIS
use Crypt::PBC;
my $pairing = new Crypt::PBC("params_d.txt");
my $G1 = $pairing->init_G1->random;
my $G2 = $pairing->init_G2->random->double->square;
my $GT = $pairing->init_GT->pairing_apply( $G1, $G2 );
The PBC library is a free portable C library designed to make it easy to implement pairing-based cryptosystems. It provides an abstract interface to a cyclic group with a bilinear pairing, and the programmer does not need to worry about, or even know about elliptic curves.
It is built on top of GMP, another C library which performs arbitrary precision arithmetic on integers, rationals and floats with strong emphasis on portability and speed.
Perl Module Methods
The Perl Module methods implement an OO interface that the author (Paul) highly recommends using. The only Perl Module OO function in the Crypt::PBC package is new(). Please see Crypt::PBC::Pairing and Crypt::PBC::Element for the guts of the intended OO interface.
Crypt::PBC::new()
Returns a new PBC pairing object. new() takes, as arguments, either the name of a file, a file stream (e.g., new Crypt::PBC(*STDIN)), or the params for a curve as a string. Ben Lynn provides a zip file of d-type curves:
MNT curve parameters for embedding degree 6 (which I
call type D curves), for all D less than a million, and
for subgroup sizes at least 80 bits and less than 300
bits long. Generated using test programs bundled with
PBC library.
http://crypto.stanford.edu/pbc/download.html
XS Loaded Functions
This section is basically a listing of the PBC functions as they are imported. You can use them directly if youre already comfortable with the layout of PBC. If youre starting from scratch and arent much of a C coder, youll have an easier time using the Perl Module methods because they implement a little type-safety to protect perl coders from segfaults.
Mixing and matching direct calls with the Perl Module methods is a sure way to run into trouble, since the Perl Module methods tag the PBC elements with a type.
+++ NOTE +++
You can use these functions successfully, but the intended interface was described above. Crypt::PBC::Element describes that interface in detail.
+++ /NOTE +++
Pairing Functions
# Initialize a pairing from an open file handle
my $pairing = &Crypt::PBC::pairing_init_stream(*STDIN);
# Initialize a pairing from a a $string
my $pairing = &Crypt::PBC::pairing_init_str($string);
# Clear the memory malloced for the pairing
&Crypt::PBC::pairing_clear($pairing);
# Apply the pairing. Be careful here. If you pass the wrong type of
# elements, GT = apply(G1, G2), this will segmentation fault! Please
# see the PBC documentation for further information:
# http://crypto.stanford.edu/pbc/manual/
&Crypt::PBC::pairing_apply($LHS, $RHS1, $RHS2, $pairing);
Element Initializer and Assignment Functions
my $element_in_G1 = &Crypt::PBC::element_init_G1($pairing);
my $element_in_G2 = &Crypt::PBC::element_init_G2($pairing);
my $element_in_GT = &Crypt::PBC::element_init_GT($pairing);
my $element_in_Zr = &Crypt::PBC::element_init_Zr($pairing);
# Do not forget to clear your memory!
&Crypt::PBC::element_clear( $element ); # in any group
# assign some random to $element
# (uses /dev/urandom if possible, or rand() if necessary)
&Crypt::PBC::element_random( $element );
&Crypt::PBC::element_set0( $element ); # set to 0
&Crypt::PBC::element_set1( $element ); # set to 1
&Crypt::PBC::element_set( $a, $b ); # a=b
&Crypt::PBC::element_set_si( $a, 5 ); # a=5
&Crypt::PBC::element_set_mpz( $a, $bigint );
# For this one, construct a Math::BigInt::GMP and pass that for
# $bigint. Alternatively, you can construct a $i=Math::BigInt and
# pass the $i->{value}. (That interface is probably not well
# supported but is the only one of which the author is aware.)
&Crypt::PBC::element_from_hash( $element, $hash );
# Set $element based on the bytes in $hash. You must use some kind
# of hashing algorithm (e.g., Digest::SHA1) to map data to an
# element:
#
# "In general you cannot feed it plaintext. You should only give it
# short strings of bytes (e.g. 160 bits if G1 has order around 2^160,
# which is the case for most of the bundled pairing parameters)."
# -- Lynn
&Crypt::PBC::element_from_bytes( $element, $bytes );
# Set $element based on the bytes in $bytes. this probably isnt useful
# unless $bytes is like $spewed_result from element_export() below.
Arithmetic Functions
# lhs=rhs1+rhs2 -- make sure these are all the same type ...
&Crypt::PBC::element_add($lhs, $rhs1, $rhs2);
&Crypt::PBC::element_sub($lhs, $rhs1, $rhs2); # lhs=rhs1-rhs2
&Crypt::PBC::element_mul($lhs, $rhs1, $rhs2);
&Crypt::PBC::element_div($lhs, $rhs1, $rhs2);
# (whatever these mean is in the context of the $pairing)
&Crypt::PBC::element_double($lhs, $rhs); # lhs = 2*rhs
&Crypt::PBC::element_halve( $lhs, $rhs); # lhs = rhs/2
&Crypt::PBC::element_square($lhs, $rhs); # lhs = rhs^2
&Crypt::PBC::element_neg( $lhs, $rhs); # (please see the PBC docs)
&Crypt::PBC::element_invert($lhs, $rhs); # lhs = 1/rhs
# Heres a few other choices for mul
&Crypt::PBC::element_mul_zn( $lhs, $rhs1, $rhs2 );
# $rhs1 and $lhs should be of the same type, but here $rhs2 should be
# in Zr instead of being in the same group like in element_mul()
# above
&Crypt::PBC::element_mul_mpz( $lhs, $rhs1, $rhs2 );
# For this one, construct a Math::BigInt::GMP and pass that for
# $rhs2 or pass $i->{value} from a Math::BigInt.
&Crypt::PBC::element_mul_si( $lhs, $rhs1, $rhs2 );
# Here, $rhs2 is a regular old integer...
&Crypt::PBC::element_pow_zn( $lhs, $a, $n); # lhs = a^n
&Crypt::PBC::element_pow2_zn($lhs, $a1, $n1, $a2, $n2); # a1^n1 * a2^n2
&Crypt::PBC::element_pow3_zn($lhs, $a1, $n1, $a2, $n2, $a3, $n3);
# in the above, the lhs and ad+ should be in the same group, nd+ in Zr
&Crypt::PBC::element_pow_mpz( $lhs, $a, $n);
&Crypt::PBC::element_pow2_mpz($lhs, $a1, $n1, $a2, $n2);
&Crypt::PBC::element_pow3_mpz($lhs, $a1, $n1, $a2, $n2, $a3, $n3);
# like the _zn functions, but nd+ should be Math::BigInt::GMP
# or pass $i->{value} from a Math::BigInt.
Comparison Functions
&Crypt::PBC::element_is0( $a ); # 1 when $a is 0
&Crypt::PBC::element_is1( $a ); # 1 when $a is 1
&Crypt::PBC::element_cmp( $a,$b ); # paradoxically, false when $a == $b
&Crypt::PBC::element_is_sqr( $a ); # 1 when $a is a perfect square ...
# see the PBC docs for words like "residue"
Export and Output
# Please check the PBC docs ...
&Crypt::PBC::element_fprintf(*OUTFILE, $format, $element);
&Crypt::PBC::element_fprintf(*STDOUT, "example element=%Bn", $element);
# (You may be surprised how many bigints are in these group elements.)
my $spewed_result = &Crypt::PBC::export_element($element);
# These are bytes, dumped from the $element, that can be used to
# reconstruct the element or used for interacting with real life data.
# Example:
my $cipher = new Crypt::CBC({
header => "randomiv",
key => &Crypt::PBC::export_element($element),
cipher => Blowfish, # hehe
});
my $big = &Crypt::PBC::element_to_mpz( $element );
# Returns a Math::BigInt::GMP, not a Math::BigInt! WARNING: the
# DESTROY() method from Math::BigInt::GMP will be missing unless you
# require that package into your program. Youll want to do that or youll
# have a memory leak... Lastly, this is really only useful for elements in
# Zr -- element_fprintf() to see what I mean.
Download (0.052MB)
Added: 2007-07-23 License: Perl Artistic License Price:
827 downloads
SRP 2.1.1
The Secure Remote Password protocol is the core technology behind the Stanford SRP Authentication Project. more>>
The Secure Remote Password protocol is the core technology behind the Stanford SRP Authentication Project. The Project is an Open Source initiative that integrates secure password authentication into existing networking applications.
The Projects primary purpose is to improve password security by making strong password authentication technology a standard part of deployed real-world systems. This is accomplished by making this technology an easy-to-use, hassle-free alternative to weak and vulnerable legacy password authentication schemes. SRP makes these objectives possible because it offers a unique combination of password security, user convenience, and freedom from restrictive licenses.
This site serves as the semi-official home of the SRP distribution, which contains secure versions of Telnet and FTP. In addition, it contains links to a number of SRP-related projects, products (both commercial and non-commercial), and research on the Web.
SRP is a secure password-based authentication and key-exchange protocol. It solves the problem of authenticating clients to servers securely, in cases where the user of the client software must memorize a small secret (like a password) and carries no other secret information, and where the server carries a verifier for each user, which allows it to authenticate the client but which, if compromised, would not allow the attacker to impersonate the client. In addition, SRP exchanges a cryptographically-strong secret as a byproduct of successful authentication, which enables the two parties to communicate securely.
Enhancements:
- (telnet) Security fixes for vulnerabilities:
- CAN-2005-0468 Multiple Telnet Client env_opt_add() Buffer Overflow Vulnerability
- CAN-2005-0469 Multiple Telnet Client slc_add_reply() Buffer Overflow Vulnerability
- (libsrp) Change default group parameter test strategy to accept only parameters on the built-in list. Fix originally suggested by Bodo Moeller, University of Calgary.
- (libsrp) Fixed big in BigIntegerCmpInt when built against OpenSSL.
- (telnet) Use header file to declare errno when available.
- (all) Added support for GNU crypto (gcrypt).
<<lessThe Projects primary purpose is to improve password security by making strong password authentication technology a standard part of deployed real-world systems. This is accomplished by making this technology an easy-to-use, hassle-free alternative to weak and vulnerable legacy password authentication schemes. SRP makes these objectives possible because it offers a unique combination of password security, user convenience, and freedom from restrictive licenses.
This site serves as the semi-official home of the SRP distribution, which contains secure versions of Telnet and FTP. In addition, it contains links to a number of SRP-related projects, products (both commercial and non-commercial), and research on the Web.
SRP is a secure password-based authentication and key-exchange protocol. It solves the problem of authenticating clients to servers securely, in cases where the user of the client software must memorize a small secret (like a password) and carries no other secret information, and where the server carries a verifier for each user, which allows it to authenticate the client but which, if compromised, would not allow the attacker to impersonate the client. In addition, SRP exchanges a cryptographically-strong secret as a byproduct of successful authentication, which enables the two parties to communicate securely.
Enhancements:
- (telnet) Security fixes for vulnerabilities:
- CAN-2005-0468 Multiple Telnet Client env_opt_add() Buffer Overflow Vulnerability
- CAN-2005-0469 Multiple Telnet Client slc_add_reply() Buffer Overflow Vulnerability
- (libsrp) Change default group parameter test strategy to accept only parameters on the built-in list. Fix originally suggested by Bodo Moeller, University of Calgary.
- (libsrp) Fixed big in BigIntegerCmpInt when built against OpenSSL.
- (telnet) Use header file to declare errno when available.
- (all) Added support for GNU crypto (gcrypt).
Download (1.4MB)
Added: 2006-07-13 License: BSD License Price:
1199 downloads
CIPE 1.6.0
CIPE is a Crypto IP Encapsulation. more>>
CIPE is a Crypto IP Encapsulation.
This is an ongoing project to build encrypting IP routers. It works by tunneling IP packets in encrypted UDP packets. The protocol is designed to be lightweight and simple. Special care has been taken to make this work over dynamic addresses, NAT and SOCKS proxies.
Implementations are currently available for Linux and Windows.
Enhancements:
- This supports Linux 2.6 and the kernel crypto API.
<<lessThis is an ongoing project to build encrypting IP routers. It works by tunneling IP packets in encrypted UDP packets. The protocol is designed to be lightweight and simple. Special care has been taken to make this work over dynamic addresses, NAT and SOCKS proxies.
Implementations are currently available for Linux and Windows.
Enhancements:
- This supports Linux 2.6 and the kernel crypto API.
Download (0.13MB)
Added: 2007-01-25 License: Public Domain Price:
1005 downloads
Revelation 0.4.11
Revelation is a password manager for the GNOME 2 desktop, released under the GNU GPL license. more>>
Revelation is a password manager for the GNOME 2 desktop. Revelation program stores all your accounts and passwords in a single, secure place, and gives you access to it through a user-friendly graphical interface.
Main features:
- Secure storage of passwords - uses an AES-encrypted XML data file with Cipher Block Chaining and compression for randomization.
- Uses a tree-structure for organizing accounts, making it easy to handle a large number of accounts.
- Support for importing data from / exporting data to foreign file formats. Currently supported: Figaros Password Manager, GNOME Password Manager (gpass), .netrc, XML, and plain text
- Can access remote files via gnome-vfs
- Has many different account types, covering the most common ones: creditcard, crypto key, database, door lock, email, ftp, generic, phone, shell, and website
- GNOME-integrated; uses the gnome session manager, the gnome icon theme, gnome-vfs, gconf, and registers file mimetype info for Nautilus.
- User-friendly: Drag/drop of entries, unlimited undo/redo good clipboard usage, HIG-compliant user interface, and more
- Account search
- Built-in password generator and password strength checker
<<lessMain features:
- Secure storage of passwords - uses an AES-encrypted XML data file with Cipher Block Chaining and compression for randomization.
- Uses a tree-structure for organizing accounts, making it easy to handle a large number of accounts.
- Support for importing data from / exporting data to foreign file formats. Currently supported: Figaros Password Manager, GNOME Password Manager (gpass), .netrc, XML, and plain text
- Can access remote files via gnome-vfs
- Has many different account types, covering the most common ones: creditcard, crypto key, database, door lock, email, ftp, generic, phone, shell, and website
- GNOME-integrated; uses the gnome session manager, the gnome icon theme, gnome-vfs, gconf, and registers file mimetype info for Nautilus.
- User-friendly: Drag/drop of entries, unlimited undo/redo good clipboard usage, HIG-compliant user interface, and more
- Account search
- Built-in password generator and password strength checker
Download (0.52MB)
Added: 2007-01-19 License: GPL (GNU General Public License) Price:
1042 downloads
CLIP 1.2.0
CLIP is a Clipper/XBase compatible compiler. more>>
CLIP is a Clipper/XBase compatible compiler with initial support other xBase dialects. CLIP project features support for international languages and character sets.
It also features OOP, a multiplatform GUI based on GTK/GTKextra, all SIX/Comix features (including hypertext indexing), SQL and ODBC drivers, a C-API for third-party developers, a few wrappers for popular libraries (such as BZIP, GZIP, GD, Crypto, and Fcgi), a multitasking client and application server based on TCP/IP sockets, object data base utilities, and a functions library.
Main features:
- Preprocessor
- Fully compatible CA-Clipper with with some new possibilities.
- Compiler
- slight incompability with CA-Clipper, which may be resolved easily, using the "search and replace" method. In addition it can compile to C program, byte-code, dynamic library and mixed C+byte-code.
- Very fast and efficient OO-model
- Difference from CA-Clipper reveals itself in part of descriptions and making an object, but in part of using the ready objects syntax and logic of functioning is completely the same.
- It is possible to write programs on CLIP, without using other syntax excepting OOP.
- Initial support syntax from FS,CAVO,FoxPro.
- C-API
- has much more possibilities than CA-Clipper.
- Full international support
- Including adjustment on any code page of any language on any keyboard (with stelnet emulator only or on consoles), substitution of string constants during execution and changing a logic of functioning with strings, given for functions alpha, digit, lower, upper, subscripted weight factors etc.
- Support two-bytes charsets BIG5,GB , may be Korean,Japan too.
- GUI, based on GTK
- Provides using of all widgets and processing the events
- Using of dynamic libraries,
- loading and execution of the byte-code from external files ( in run-time, too ).
- Compatibility
- up to Clipper 5.3 (support of objects menu, button, check and other get-objects), as well as standard classes tbrowse,get,error.
- Are implemented a lot of CA_Tools functions, including all functions for processing the lines, dates, files, mathematicians.
- support all SIX functions and features
- MEM,DBF,DBT,FPT,NTX,CTX,CDX,NSX...
- VFP data types: datetime,currency
- RDD allows to use your own drivers, as well as use a driver, combined from several different drivers.
- RDD also allows to use only OO-style, without using of aliases
- Multitask support
- CODB - CLIP Object Data Base
- SQL
- libraries and classes for direct access to SQL-servers (PG,MySql,Oracle,Interbase)
- ODBC and ODBC bridge to Windows drivers.
- SQL-interpreter and commands, compatible with FoxPro
- Other possibilities
- Overloading operators for objects.
- Support of regular expressions.
- function for TCP/IP sockets connections
- COM_() functions
- Rushmore like technology, but more fast and efficient.
- Support of very-large-scale numbers with unlimited accuracy.
- Support of graphic files PNG,GD,JPEG and primitives like lines, rectangles, firing ranges, circumferences etc.
- Several common classes for word processorses, html/cgi programms.
- Several utilities for interpreting the patterns of the documents, www_sql,clip_bl, clip_blank, clip_sql, clip_hindex, clip_hseek etc.
- multiwindows interactive debugger.
- Supported OSes
- linux, freebsd, openBsd, SPARC & x86 solaris, IBM mainframe with TurboLinux, Win32 ( with CYGWIN development tools)
- TODO list
- Windows support
- FiveWin compatiblies.
- FoxPro compatiblies.
Enhancements:
- This release added fixes to support UTF environments, GCC 4.x, and newer Linux distributions.
- Some new utilities, functions, and documentation were added.
<<lessIt also features OOP, a multiplatform GUI based on GTK/GTKextra, all SIX/Comix features (including hypertext indexing), SQL and ODBC drivers, a C-API for third-party developers, a few wrappers for popular libraries (such as BZIP, GZIP, GD, Crypto, and Fcgi), a multitasking client and application server based on TCP/IP sockets, object data base utilities, and a functions library.
Main features:
- Preprocessor
- Fully compatible CA-Clipper with with some new possibilities.
- Compiler
- slight incompability with CA-Clipper, which may be resolved easily, using the "search and replace" method. In addition it can compile to C program, byte-code, dynamic library and mixed C+byte-code.
- Very fast and efficient OO-model
- Difference from CA-Clipper reveals itself in part of descriptions and making an object, but in part of using the ready objects syntax and logic of functioning is completely the same.
- It is possible to write programs on CLIP, without using other syntax excepting OOP.
- Initial support syntax from FS,CAVO,FoxPro.
- C-API
- has much more possibilities than CA-Clipper.
- Full international support
- Including adjustment on any code page of any language on any keyboard (with stelnet emulator only or on consoles), substitution of string constants during execution and changing a logic of functioning with strings, given for functions alpha, digit, lower, upper, subscripted weight factors etc.
- Support two-bytes charsets BIG5,GB , may be Korean,Japan too.
- GUI, based on GTK
- Provides using of all widgets and processing the events
- Using of dynamic libraries,
- loading and execution of the byte-code from external files ( in run-time, too ).
- Compatibility
- up to Clipper 5.3 (support of objects menu, button, check and other get-objects), as well as standard classes tbrowse,get,error.
- Are implemented a lot of CA_Tools functions, including all functions for processing the lines, dates, files, mathematicians.
- support all SIX functions and features
- MEM,DBF,DBT,FPT,NTX,CTX,CDX,NSX...
- VFP data types: datetime,currency
- RDD allows to use your own drivers, as well as use a driver, combined from several different drivers.
- RDD also allows to use only OO-style, without using of aliases
- Multitask support
- CODB - CLIP Object Data Base
- SQL
- libraries and classes for direct access to SQL-servers (PG,MySql,Oracle,Interbase)
- ODBC and ODBC bridge to Windows drivers.
- SQL-interpreter and commands, compatible with FoxPro
- Other possibilities
- Overloading operators for objects.
- Support of regular expressions.
- function for TCP/IP sockets connections
- COM_() functions
- Rushmore like technology, but more fast and efficient.
- Support of very-large-scale numbers with unlimited accuracy.
- Support of graphic files PNG,GD,JPEG and primitives like lines, rectangles, firing ranges, circumferences etc.
- Several common classes for word processorses, html/cgi programms.
- Several utilities for interpreting the patterns of the documents, www_sql,clip_bl, clip_blank, clip_sql, clip_hindex, clip_hseek etc.
- multiwindows interactive debugger.
- Supported OSes
- linux, freebsd, openBsd, SPARC & x86 solaris, IBM mainframe with TurboLinux, Win32 ( with CYGWIN development tools)
- TODO list
- Windows support
- FiveWin compatiblies.
- FoxPro compatiblies.
Enhancements:
- This release added fixes to support UTF environments, GCC 4.x, and newer Linux distributions.
- Some new utilities, functions, and documentation were added.
Download (4.4MB)
Added: 2006-10-31 License: GPL (GNU General Public License) Price:
1105 downloads
NetSPoC 3.0
NetSPoC is a tool for security managment of large computer networks with different security domains. more>>
NetSPoC is a tool for security managment of large computer networks with different security domains. It generates configuration files for packet filters which are controlling the borders of security domains.
NetSPoC provides its own language for describing the security policy and topology of a network. The security policy is a set of rules that state which packets are allowed to pass the network and which not. NetSPoC is topology aware: a rule for traffic from A to B is automatically applied to all managed packet filters on the path from A to B.
Currently NetSPoC generates ACLs and static routing entries for
Cisco routers with or without firewall feature set,
PIX firewalls and
Linux iptables and ip route.
It supports network address translation, virtual IP addresses for redundancy protocols like VRRP and some dynamic routing protocols.
IPSec encryption is supported as well. A powerful syntax allows to easily define a large number of crypto tunnels of either a hub and spoke topology or a fully meshed topology. Crypto rules define which type of traffic needs to be encrypted. Crypto configuration for Cisco IOS routers and PIX firewalls is generated.
NetSPoCs text based specification language is well suited for integration with CVS or other version control systems. A script is provided for tagging a policy and saving it to a policy database.
This software is actively developed with perl 5.8 under linux. It should be portable to other platforms where perl is available.
Enhancements:
- VERSION:
- TODO:
- NEWS.html:
- Prepare version 3.0.
- index.html: Mentioned crypto. Removed links to email addresses to reduce SPAM. Removed CSPM stuff.
- Netspoc.pm:
- Made code 64 bit clean. This was necessary for complement and left-shift operations on 32 bit IP addresses.
<<lessNetSPoC provides its own language for describing the security policy and topology of a network. The security policy is a set of rules that state which packets are allowed to pass the network and which not. NetSPoC is topology aware: a rule for traffic from A to B is automatically applied to all managed packet filters on the path from A to B.
Currently NetSPoC generates ACLs and static routing entries for
Cisco routers with or without firewall feature set,
PIX firewalls and
Linux iptables and ip route.
It supports network address translation, virtual IP addresses for redundancy protocols like VRRP and some dynamic routing protocols.
IPSec encryption is supported as well. A powerful syntax allows to easily define a large number of crypto tunnels of either a hub and spoke topology or a fully meshed topology. Crypto rules define which type of traffic needs to be encrypted. Crypto configuration for Cisco IOS routers and PIX firewalls is generated.
NetSPoCs text based specification language is well suited for integration with CVS or other version control systems. A script is provided for tagging a policy and saving it to a policy database.
This software is actively developed with perl 5.8 under linux. It should be portable to other platforms where perl is available.
Enhancements:
- VERSION:
- TODO:
- NEWS.html:
- Prepare version 3.0.
- index.html: Mentioned crypto. Removed links to email addresses to reduce SPAM. Removed CSPM stuff.
- Netspoc.pm:
- Made code 64 bit clean. This was necessary for complement and left-shift operations on 32 bit IP addresses.
Download (0.11MB)
Added: 2006-07-08 License: GPL (GNU General Public License) Price:
1203 downloads
Ostiary 3.4
Ostiary allows a client to run scripts on a server in a secure, authenticated manner. more>>
Tools like ssh and lsh are great for allowing secure remote access to your system. They offer essentially full, flexible remote control of a machine, in an ecrypted and authenticated manner. But they are complex pieces of software; theres no way to do what they do without being complex. And with complexity comes bugs. Tools like ssh and lsh, and VPNs like CIPE, PPTP, and more have all had serious flaws that would allow an attacker to get full control over your system.
If you leave such programs running all the time, you take the risk that someone is going to use an exploit on you before you have a chance to apply a patch. For some purposes, this is an acceptable - even necessary - tradeoff, but it would be nice to enable them only when actually needed, to minimize the risk. And for other purposes, ssh et. al. are overkill. Perhaps you only really need to remotely initiate a limited set of operations. In this case, you dont need a shell prompt, just a way to securely kick off scripts from elsewhere.
Enter Ostiary. It is designed to allow you to run a fixed set of commands remotely, without giving everyone else access to the same commands. Ostiary is designed to do exactly and only what is necessary for this, and no more. The only argument given to the command is the IP address of the client, and only if the authentication is successful.
Main features:
- "First, do no harm." It should not be possible to use the Ostiary system itself to damage the host its running on. In particular, its willing to accept false negatives (denying access to legitimate users) in order to prevent false positives (allowing access to invalid users).
- Insofar as possible, eliminate any possibility of bugs causing undesired operations. Buffer overflows, timing attacks, etc. should be impossible for an external attacker to execute. Theres no point in installing security software if it makes you less secure.
- Be extremely modest in memory and CPU requirements. I want to be able to fire off commands on my webserver (running on a Mac SE/30, a 16MHz 68030 machine) from my Palm Pilot (a 16MHz 68000 machine). Things like ssh already take 30 seconds or more to start up - I cant afford anything too fancy.
- Keep things simple. Im no crypto expert; I know Im not capable of coming up with an ssh replacement. So I need to keep things so utterly simple that I can be sure Im not missing anything important.
Enhancements:
- Several non-security-related bugfixes, including some clarified log messages and an update to the TCP-wrappers autoconf macros.
- Debian packages have been added.
<<lessIf you leave such programs running all the time, you take the risk that someone is going to use an exploit on you before you have a chance to apply a patch. For some purposes, this is an acceptable - even necessary - tradeoff, but it would be nice to enable them only when actually needed, to minimize the risk. And for other purposes, ssh et. al. are overkill. Perhaps you only really need to remotely initiate a limited set of operations. In this case, you dont need a shell prompt, just a way to securely kick off scripts from elsewhere.
Enter Ostiary. It is designed to allow you to run a fixed set of commands remotely, without giving everyone else access to the same commands. Ostiary is designed to do exactly and only what is necessary for this, and no more. The only argument given to the command is the IP address of the client, and only if the authentication is successful.
Main features:
- "First, do no harm." It should not be possible to use the Ostiary system itself to damage the host its running on. In particular, its willing to accept false negatives (denying access to legitimate users) in order to prevent false positives (allowing access to invalid users).
- Insofar as possible, eliminate any possibility of bugs causing undesired operations. Buffer overflows, timing attacks, etc. should be impossible for an external attacker to execute. Theres no point in installing security software if it makes you less secure.
- Be extremely modest in memory and CPU requirements. I want to be able to fire off commands on my webserver (running on a Mac SE/30, a 16MHz 68030 machine) from my Palm Pilot (a 16MHz 68000 machine). Things like ssh already take 30 seconds or more to start up - I cant afford anything too fancy.
- Keep things simple. Im no crypto expert; I know Im not capable of coming up with an ssh replacement. So I need to keep things so utterly simple that I can be sure Im not missing anything important.
Enhancements:
- Several non-security-related bugfixes, including some clarified log messages and an update to the TCP-wrappers autoconf macros.
- Debian packages have been added.
Download (0.067MB)
Added: 2006-04-01 License: Free To Use But Restricted Price:
1301 downloads
pyOpenSSL 0.6
pyOpenSSL is a Python wrapper for a subset of OpenSSLs functionality. more>>
pyOpenSSL is a Python wrapper for a subset of OpenSSLs functionality. It features an advanced error management system, connection objects that wrap socket methods, and flexible context objects.
Also included is a rudimentary crypto module that can be used to create and verify certificates (X509 objects).
Installation:
pyOpenSSL uses distutils, so there really shouldnt be any problems. To build
the library:
python setup.py build
If your OpenSSL header files arent in /usr/include, you may need to supply the -I flag to let the setup script know where to look. The same goes for the libraries of course, use the -L flag. Note that build wont accept these flags, so you have to run first build_ext and then build! Example:
python setup.py build_ext -I/usr/local/ssl/include -L/usr/local/ssl/lib
python setup.py build
Now you should have a directory called OpenSSL that contains e.g. SSL.so and
__init__.py somewhere in the build dicrectory, so just:
python setup.py install
If you, for some arcane reason, dont want the module to appear in the site-packages directory, use the --prefix option.
You can, of course, do
python setup.py --help
to find out more about how to use the script.
Documentation:
The documentation is written in LaTeX, using the standard Python templates, and tools to compile it into a number of forms are included. You need to supply things like dvips, latex2html yourself of course!
To build the text, html, postscript or dvi forms of the documentation, this is what you do:
cd doc
# To make the text-only documentation:
make text
# To make the dvi form:
make dvi
Its as simple as that. Note that since Pythons mkhowto script is used, if you do first ``make dvi and then ``make ps, the dvi file will disappear. I included a special build target ``make all that will build all the documentation in an order that wont let anything disappear.
<<lessAlso included is a rudimentary crypto module that can be used to create and verify certificates (X509 objects).
Installation:
pyOpenSSL uses distutils, so there really shouldnt be any problems. To build
the library:
python setup.py build
If your OpenSSL header files arent in /usr/include, you may need to supply the -I flag to let the setup script know where to look. The same goes for the libraries of course, use the -L flag. Note that build wont accept these flags, so you have to run first build_ext and then build! Example:
python setup.py build_ext -I/usr/local/ssl/include -L/usr/local/ssl/lib
python setup.py build
Now you should have a directory called OpenSSL that contains e.g. SSL.so and
__init__.py somewhere in the build dicrectory, so just:
python setup.py install
If you, for some arcane reason, dont want the module to appear in the site-packages directory, use the --prefix option.
You can, of course, do
python setup.py --help
to find out more about how to use the script.
Documentation:
The documentation is written in LaTeX, using the standard Python templates, and tools to compile it into a number of forms are included. You need to supply things like dvips, latex2html yourself of course!
To build the text, html, postscript or dvi forms of the documentation, this is what you do:
cd doc
# To make the text-only documentation:
make text
# To make the dvi form:
make dvi
Its as simple as that. Note that since Pythons mkhowto script is used, if you do first ``make dvi and then ``make ps, the dvi file will disappear. I included a special build target ``make all that will build all the documentation in an order that wont let anything disappear.
Download (0.27MB)
Added: 2006-03-22 License: LGPL (GNU Lesser General Public License) Price:
1313 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above crypto search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed