|Linux / BSD|
Pea executable is the engine implementing PEA file format archiving, extraction, encryption, and decryption routines; it is released as Open Source freeware program under LGPLv3 license.
Pea file compression and cryptographic 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 the respective PeaZip packages, available from download pages.
Archiving and compression
Input data is compressed with a deflate based compression scheme (PCOMPRESS) defined in PEA file format 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
Integrity check and encryption algorithms
Checksum/CRC, hash and strong encryption algorithms are provided by Wolfgang Ehrhardt's Pascal/Delphi cryptography library (released under zlib license), to enforce privacy of input data (AES based encryption), 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).
File split and joinPea utility file split and join features are compatible with most file split applications; just provide an input file to split it to the desired output size.
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 management utility tasks, not necessarily related with file archiving, providing also tools for:
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, ObjectPascal.
Sources are available from 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.
PEA file format specifications version 1.0
Pea (.pea file extension), acronym for Pack, Encrypt, Authenticate, designs a file format focused on data security, aiming to provide archiving, compression and multi volume file split (spanning) feature in a single passage, along with flexible schemes of optional integrity check and authenticated encryption (AES in EAX mode); PEA file format specifications are released under public domain.
Pea compression is optional, at current level of implementation are defined only following levels: PCOMPRESS0 (store only, no compression), and PCOMPRESS1..3 based on deflate (reference zlib's compres/uncompres algorithm code), respectively at compression level 3, 6 and 9.
PEA format security model acts at 3 levels: objects (input files and folders sent to .pea archive), volumes (output archive file that can be spanned to user defined size) and streams (the actual output data stream that is formed by multiple input files and can be written written to multiple output volumes); each one of those levels can be omitted as needed by the user.
PEA file format standard, as defined in version 1 revision 0 specification, can store a single stream containing unlimited objects, each up to 2^64 byte in size; current Pea archiver utility supports 1.0 file format specifications (practically, archives are memory and filesystem-limited rather than format limited).
PEA 2.0 file format specifications extend the concepts behind PEA 1.0 file format and can store an unlimited number of stream, but the format is not actually supported by current Pea archiving utility.
Here, a brief table of features and limitations applying to file format and to current implementation:
For a more complete explanation and discussion of the format specifications please see the documentation about Pea archive format (.pdf).
Software supporting PEA archives
Tutorial & support
Frequently Asked Questions
© PeaZip srl, TOS and Privacy
Support PeaZip project, or donate to FAO, UNICEF and UNESCO from donation page