Pea executable is the engine
implementing PEA
file format
archiving, extraction, file encryption,
and file decryption
routines; it
is
released as Open Source freeware program
under
LGPLv3 license.
Pea file compression and cryptograpy utility can be compiled as a
cross-platform autocontained (portable) binary for various
archiutectures and platforms: BSD, Linux, macOS
(both Intel and M1 aarch64), Windows.
Pea executable 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, macOS, and Linux executables, sources and documentation, since
are part
of
the respective
PeaZip packages, available from download pages.
Read more: what is PEA file format,
PEA file
format specifications and implementation notes (pdf)
PEA file archiving
utility implementation details:
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 Deflate-based compressors of that class, like
PKZip's Zip, and GNU 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,
authentication
and encryption algorithms
PEA archive format
design is focused on security. Checksum / CRC, hash and
strong encryption algorithms are provided by cross-platform Wolfgang
Ehrhardt's
cryptography
library for Pascal/Delphi (released
under zlib license), to enforce
privacy of
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).
Supported algorithms ranges from fast CRC32 / CRC64 to mainstream MD5 /
SHA
hash, to robust cryptographically secure hashes like SHA3 and Whirlpool
(AES based 512 bit hash).
Purpose
|
Algorithms
|
Pea: Object, Stream and Volume level; Raw file join/split
optional integrity check
|
Checksum/CRC
|
Adler32, CRC32, CRC64
|
Hash
|
MD5, SHA1, RIPEMD-160,
SHA256,
SHA512, Whirlpool, SHA3-256, SHA3-512
|
Pea: Stream level only
|
Authenticated encryption
|
AES128 HMAC, AES128/256 EAX, Serpent 128/256 EAX, Twofish
128/256 EAX, triple cascade encryption AES+Twofish+Serpent each 256 bit
in EAX mode
|
File
split
and join
Pea utility file spanning
(split and join) features are compatible with most file
spliters
applications like HJSplit, 7-Zip, and split Unix command: simply
provide an input file to cut it into volumes of 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 splitters 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 integrity
verification hash or checskum is not matching with expected values.
Standalone file
management features
Pea executable, other
than implementing extraction and archiving in
.PEA format, uses the internally supported features (encryption,
checksum/hash, randomness sampling etc...) to provide general file
management utility tools, not necessarily related with file archiving,
as in PeaUtils
spin-off
utility:
How to compile
Pea utility is compiled and built using Lazarus, a cross platform Open
Source RAD IDE
based on FreePascal, a language widely compatible with Delphi, Kylix,
ObjectPascal, capable to target Windows, Linux, BSD, Darwin / macOS and
many
other platforms, as well as ARM, aarch64, x86, x86_64 and many other
architectures.
Sources are available from PeaZip
sources 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.
Wolfgang Ehrhardt,
one of most influential Delphi developer, passed away in early 2019 [1],
[2].
His legacy is mathematic
and cryptographic code of impressive quality, generously released as
Open Source. This is a huge
loss for Delphi community and a sore loss for me. His was the first, and the best,
cryptographic library I used in Lazarus/FreePascal, and a natural
choice for a project as PeaZip.
May his work live
long and continue teaching and inspiring new generations of programmers!
PEA archive
support in
third
parts software
To support Pea file format in your applications you may follow one of
those ways:
- use directly the executable Pea
archiving utility (LGPL freeware) passing parameters through command
line, as in PeaZip;
- use Pea source code as library to call
Pea-related functions from your code (as in the demo application in
"sources" package);
- create a new implementation following
the file format specifications, which are released under public domain
and, as for what is known to the author, are free and unencumbered for
any use.
More online resources and information: authenticated
encryption, EAX mode, AES
(Rijndael) encryption
algorithm, Twofish, Serpent ciphers, checksum/CRC and hash Wikipedia
pages, Deflate algorithm
description on Wikipedia; software supporting PEA archives PeaExtractor, Universal
Extractor
Synopsis: How to use PEA,
cross platform Open Source file archiving and encryption utility,
supporting its native .pea archive format, and providing compression,
authenticated encryption, file spanning, secure deletion, checksum
hashing and file comparing features.
Topics: create pea
archives, extract pea files, compile pea binary
PeaZip > FAQ >
PEA file archiving and authenticated encryption utility
WORK WITH
SUPPORTED
FILE TYPES
Create, open, extract 7Z files
Open and extract ACE files
Create, open, extract ARC files
Create, open, extract Brotli files
Compress, decompress Bzip2 files
Open and extract CAB files
Compress, decompress GZip files
Open and extract DMG, ISO, UDF disk images
Create, open, extract PAQ, LPAQ, ZPAQ files
PEA: Pack Encrypt Authenticate
Open
and extract RAR files
Create, open, extract
TAR, TGZ, TBZ files
Create, open, extract WIM disk images
Create, open, extract ZIP files
Create, open, extract ZIPX files
Create, open, extract
Zstandard files
|
|