zupt/doc/zupt.1

133 lines
3.1 KiB
Groff

.TH ZUPT 1 "2026-03-29" "Zupt 2.0.0" "User Commands"
.SH NAME
zupt \- backup compression with encryption and post-quantum key encapsulation
.SH SYNOPSIS
.B zupt compress
.RI [ OPTIONS ]
.I output.zupt files/dirs...
.br
.B zupt extract
.RI [ OPTIONS ]
.I archive.zupt
.br
.B zupt list
.RI [ OPTIONS ]
.I archive.zupt
.br
.B zupt test
.RI [ OPTIONS ]
.I archive.zupt
.br
.B zupt bench
.RI [ --compare ]
.I files/dirs...
.br
.B zupt keygen
.RI [ -o
.IR file ]
.RI [ --pub ]
.RI [ -k
.IR privkey ]
.br
.B zupt version
.br
.B zupt help
.SH DESCRIPTION
.B zupt
compresses and encrypts backup archives using the VaptVupt codec
(LZ77 + tANS entropy coding with AVX2 SIMD decode), AES-256-CTR
authenticated encryption (HMAC-SHA256), and optional ML-KEM-768 +
X25519 post-quantum hybrid key encapsulation.
.PP
Pure C11, zero external dependencies, ~12,000 lines of code.
.SH COMPRESS OPTIONS
.TP
.BI \-l " LEVEL"
Compression level 1\-9 (default: 7). Levels 1\-3 use VaptVupt Ultra-Fast
mode, 4\-7 use Balanced, 8\-9 use Extreme.
.TP
.BI \-t " N"
Thread count. 0=auto-detect, 1=single-threaded, 2\-64=explicit.
.TP
.BI \-p " PASSWORD"
Encrypt with AES-256-CTR + HMAC-SHA256. Password prompted if omitted.
.TP
.BI \-\-pq " KEYFILE"
Post-quantum hybrid encryption using ML-KEM-768 + X25519.
.TP
.B \-s
Store without compression.
.TP
.B \-f
Use fast LZ codec (Zupt-LZ, 64KB window).
.TP
.B \-\-vv
Use VaptVupt codec (default since v2.0).
.TP
.B \-\-solid
Solid mode: concatenate all files before compression for better ratio.
.TP
.B \-v
Verbose output.
.SH EXTRACT OPTIONS
.TP
.BI \-o " DIR"
Output directory.
.TP
.BI \-p " PASSWORD"
Decryption password.
.TP
.BI \-\-pq " KEYFILE"
Post-quantum decryption with private key.
.TP
.BI \-t " N"
Thread count for parallel decompression.
.SH CODECS
.TP
.B VaptVupt (0x0010)
Default. LZ77 + tANS entropy + AVX2 SIMD. Three modes: Ultra-Fast,
Balanced, Extreme.
.TP
.B Zupt-LZHP (0x000A)
LZ77 + Huffman + byte prediction. Previous default (v1.x).
.TP
.B Zupt-LZ (0x0008)
Fast LZ77, 64KB window. Selected with \-f.
.TP
.B Store (0x0000)
No compression. Selected with \-s.
.SH ENCRYPTION
Password mode uses PBKDF2-SHA256 (600,000 iterations) to derive AES-256
encryption and HMAC-SHA256 authentication keys. Per-block nonce derived
from base_nonce XOR block_sequence.
.PP
Post-quantum mode (\-\-pq) uses ML-KEM-768 + X25519 hybrid KEM per NIST
FIPS 203. Secure if either algorithm is secure.
.SH EXAMPLES
.nf
zupt compress backup.zupt ~/Documents/
zupt compress \-l 9 \-p secret secure.zupt data/
zupt extract \-o ~/restored/ backup.zupt
zupt bench \-\-compare
zupt keygen \-o mykey.key
zupt compress \-\-pq pub.key backup.zupt ~/Documents/
.fi
.SH FILES
.TP
.I *.zupt
Zupt archive format (v1.4).
.TP
.I *.zupt-key
ML-KEM-768 + X25519 keypair file.
.SH EXIT STATUS
0 on success, 1 on error.
.SH AUTHOR
Cristian Cezar Moisés <ethicalhacker@riseup.net>
.SH LICENSE
GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
The integrated VaptVupt codec is licensed under GPL-3.0-or-later (canonical upstream: github.com/cristiancmoises/vaptvupt).
For commercial licensing inquiries, contact: sac@securityops.co.
.SH SEE ALSO
.BR gzip (1),
.BR zstd (1),
.BR lz4 (1)