Pea executable is the engine implementing PEA
archiving, extraction, encryption,
and decryption routines; it
released as Open Source freeware program
Pea file compression and cryptograpy utility can be compiled as a
cross-platform autocontained (portable) executable
that can be used from batch scripts or invoked by a GUI frontend like
PeaZip or it can be used also as library from external application; it
supports it's native .pea archive format and also raw file split / join
with optional integrity check ranging to CRCs to cryptographically
strong hashes, to detect treats ranging from casual file corruption to
malicious data tampering.
You don't need a separate download for getting Pea archiving utility's
Windows/Linux executables, sources and documentation, since are part of
PeaZip packages, available from download pages.
Read more: what is PEA file format
Input data is compressed
with a Deflate-based compression scheme (PCOMPRESS) defined in PEA file
specifications, resulting in compression ratio and compression speed
similar to typical compressor of that class, like Zip, PKZip, and GZip.
Please note that at present stage of development of PEA format maximum
compression is out of the scope of the project; a fast and versatile
deflate-based compression scheme was used in order to offer a
reasonable tradeoff between compression ratio and speed to make PEA
suitable for most uses.
For a standardised compression benchmark, including PeaZip's
compression ratio using PEA format, you can look at Matt Mahoney's Large
Text Compression Benchmark
and encryption algorithms
Checksum/CRC, hash and
strong encryption algorithms are provided by Wolfgang Ehrhardt's
library for Pascal/Delphi (released
under zlib license), to enforce
input data (AES based encryption, optionally Serpent or Twofish), to
detect file corruption (checksum
and hash functions), and, with use of authenticated encryption, to
guarantee: secrecy (only intended recipient can read the data),
integrity (data transmission was not tampered), and authenticity (data
comes from expected sender).
Pea: Object, Stream and Volume level; Raw file join/split
optional integrity check
Adler32, CRC32, CRC64
MD5, SHA1, RIPEMD-160,
SHA512, Whirlpool, SHA3-256, SHA3-512
Pea: Stream level only
AES128 HMAC, AES128/256 EAX, Serpent 128/256 EAX, Twofish
Pea utility file split and join features are compatible with most file
applications; just provide an input file to split it to the desired
Optionally Pea can save a control file containing checksum or hash (see
Control algorithm paragraph) of each volume and of the original file,
allowing file level and volume level integrity check, which will be
ignored by other file split utilities.
Merging back the split file, Pea will check this control file and give
a simple warning if it's not found, i.e. because the file was split by
other file split application, or cast an error message if not matching.
Pea executable, other than implementing extraction and archiving in
.PEA format, uses the internally supported features (encryption,
checksum/hash, randomness sampling etc...) for other general file
tasks, not necessarily related with file archiving, as in PeaUtils spin-off utility,
- secure data deletion (file data and free disk space)
- file checksum/hash utility
- byte to byte file compare utility
How to compile
Pea utility is compiled and built using Lazarus, an Open Source RAD IDE
based on FreePascal, a language widely compatible with Delphi, Kylix,
Sources are available from PeaZip download page;
source packages contains instructions and documentation also for
compiling pea binary implementation.
While pea binary comes precompiled only for MS Windows, Linux, and BSD,
Lazarus/FPC (and Wolfgang Ehrhardt's crypto library) targets a far
larger number of systems and architectures, so any help in porting pea
format and implementation on new platform is welcome.