v5.2.1: robust GUI Verify/Extract + refreshed comparison & audit tables
Some checks failed
CI / build-and-test (clang) (push) Has been cancelled
CI / build-and-test (gcc) (push) Has been cancelled
CI / strict-warnings (clang, -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnull-dereference -O2 -std=c11 -Werror) (push) Has been cancelled
CI / strict-warnings (gcc, -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnull-dereference -Wformat-security -Wlogical-op -Wjump-misses-init -Wdouble-promotion -O2 -std=c11 -Werror) (push) Has been cancelled
CI / sanitizers (push) Has been cancelled
CI / pie-hardening (push) Has been cancelled
CI / cross-aarch64 (push) Has been cancelled
CI / dist-reproducibility (push) Has been cancelled
CI / packaging-syntax (push) Has been cancelled
CI / release (push) Has been cancelled
cross-platform / windows (push) Has been cancelled
cross-platform / macos (push) Has been cancelled
cross-platform / portable (push) Has been cancelled

Version bump to 5.2.1. Docs: 'What's new in 5.2.1', a refreshed Compression
comparison section (ratio + throughput vs zstd/gzip/lz4 on codec 2.65.3, all
round-trips byte-exact) and a new Audit status table (make check 16/16, FIPS 203
3/3, the full security regression matrix). Packaging versions bumped. (The GUI
Verify/Extract code fix is commit 2512844.)
This commit is contained in:
Cristian Cezar Moisés 2026-07-12 15:42:57 -03:00
commit 3f89719056
8 changed files with 128 additions and 56 deletions

View file

@ -1,6 +1,48 @@
# VaptVupt Changelog # VaptVupt Changelog
## [5.2.1] — 2026-07-12 — GUI Verify/Extract robustness; refreshed comparison + audit tables
Backward-compatible; no format, key, or codec change (codec stays 2.65.3, wire
format v1.6). GUI-only fix + documentation.
### GUI — Verify and Extract no longer error on a mis-set mode / missing credential
- Verifying an encrypted archive required picking the correct PQ mode from a
dropdown and supplying the matching key; a wrong pick produced a raw CLI
decrypt error ("Error: Archive uses post-quantum encryption. Use --pq" /
"Authentication failed"), and Verify ran synchronously on the GUI thread
(freezing the window on a large archive).
- New `_detect_archive_enc()` reads the archive header via `info` (no credential)
and classifies it none / password / pq / pqonly / sdk. The Verify tab now
auto-detects the encryption, uses the matching decrypt flag automatically (a
wrong-mode mismatch is impossible — the PQ-mode dropdown was removed), and if
the required password or key is missing it shows a clear instruction instead
of a raw error. Verify runs through the async job runner (own progress bar),
so it never freezes; results print "All checksums passed." / "Verification
failed."
- The same header-detection + missing-credential guidance is applied to the
Extract tab (it had the identical footgun).
### Documentation
- Refreshed the README **Compression comparison** tables (ratio + throughput vs
zstd/gzip/lz4) on codec 2.65.3, every round-trip byte-exact.
- Added an **Audit status** table: `make check` 16/16, NIST/RFC KAT 16/16,
ML-KEM-768 FIPS 203 conformance 3/3, path-traversal 5/5, block-swap 6/6,
dedup-nonce 1/1, arg-order 8/8, decode-slack 7/7, SHA-NI + incremental HMAC
9/9, exact-size decode 80/80, GUI branding 11/11.
### Validation
Full GUI function matrix on a real X display with thread-safety instrumentation
(zero cross-thread widget access): compress/extract (hybrid + full-PQ + password,
byte-exact), Verify (plain/password/hybrid/pq-only pass; missing password and
missing PQ key each produce guidance; wrong credential and non-archive fail
cleanly), Info, Disk backup+restore, two concurrent jobs, close-mid-job.
## [5.2.0] — 2026-07-12 — GUI compress-crash fix; codec 2.65.3; libvuptsdk ## [5.2.0] — 2026-07-12 — GUI compress-crash fix; codec 2.65.3; libvuptsdk
Backward-compatible with 5.0.x/5.1.0: `.zupt` wire format unchanged (v1.6), Backward-compatible with 5.0.x/5.1.0: `.zupt` wire format unchanged (v1.6),

128
README.md
View file

@ -17,6 +17,25 @@ License: AGPL-3.0-or-later (dual-licensed AGPL + commercial).
> command is preserved as a symlink to `vaptvupt` for one major version > command is preserved as a symlink to `vaptvupt` for one major version
> cycle. > cycle.
## What's new in 5.2.1
- **GUI Verify (and Extract) made robust.** Verifying an encrypted archive used
to make you pick the right PQ mode from a dropdown and remember the private
key; a wrong pick or a forgotten credential produced a raw decrypt-error dump,
and verify ran on the GUI thread (freezing the window on a big archive). Now
the tab **reads the archive header** and auto-detects password / hybrid /
full-PQ, uses the matching flag automatically (no mode picker to get wrong),
and if the needed credential is missing it says exactly what to provide
instead of erroring. Verify now runs in the background like compress/extract.
- **Refreshed comparison + audit tables** in this README, measured on the
shipped codec (2.65.3): `make check` 16/16, ML-KEM-768 FIPS 203 conformance
3/3, and the full security regression matrix (see below).
Binaries for the CLI (5.2.1) and GUI (5.2.1) are on the
[release page](https://git.securityops.co/cristiancmoises/vaptvupt/releases/tag/v5.2.1).
---
## What's new in 5.2.0 ## What's new in 5.2.0
- **GUI compress crash fixed.** The 5.1.0 progress bar introduced a cross-thread - **GUI compress crash fixed.** The 5.1.0 progress bar introduced a cross-thread
@ -118,7 +137,7 @@ Binaries for the CLI (5.0.0) and GUI (5.0.0) are on the
<a name="compression-comparison"></a> <a name="compression-comparison"></a>
## Compression comparison ## Compression comparison
Single-thread, one 2025 MB file per data class, best-of-run on an x86-64 AVX2 machine (codec 2.65.3; output byte-identical to 2.65.0). Ratio = original ÷ compressed — higher is better. Reproduce with `vaptvupt -b <file>` and the standard `zstd` / `gzip` / `lz4` CLIs. Numbers vary with data and hardware. Measured on codec **2.65.3**, one 2025 MB file per data class, single-thread, best-of-run on an x86-64 AVX2 machine. Ratio = original ÷ compressed (higher is better); every round-trip verified byte-exact. Reproduce with `vaptvupt -b <file>` and the standard `zstd` / `gzip` / `lz4` CLIs. Numbers vary with data and hardware.
### Ratio vs other compressors ### Ratio vs other compressors
@ -126,39 +145,49 @@ VaptVupt at level 9 (extreme) and level 7 (balanced — the default), against zs
| Data class | VaptVupt -9 | VaptVupt -7 | zstd -9 | zstd -3 | gzip -9 | lz4 -9 | | Data class | VaptVupt -9 | VaptVupt -7 | zstd -9 | zstd -3 | gzip -9 | lz4 -9 |
|---|--:|--:|--:|--:|--:|--:| |---|--:|--:|--:|--:|--:|--:|
| Text (docs, Markdown) | **5.98×** | 4.08× | 6.18× | 4.95× | 3.75× | 3.28× | | Text (docs, Markdown) | **5.99×** | 4.07× | 6.18× | 4.95× | 3.74× | 3.28× |
| Source code (C / headers) | **5.63×** | 4.90× | 5.81× | 4.96× | 5.00× | 4.17× | | Source code (C / headers) | **5.54×** | 4.88× | 5.75× | 4.93× | 4.97× | 4.14× |
| JSON (structured records) | **9.38×** | 6.53× | 8.21× | 7.28× | 7.60× | 4.94× | | JSON (structured records) | **8.25×** | 5.88× | 7.41× | 6.60× | 6.67× | 4.51× |
| Server logs | **9.07×** | 6.64× | 8.15× | 6.89× | 7.25× | 5.19× | | Server logs | **9.07×** | 6.64× | 8.15× | 6.94× | 7.25× | 5.19× |
| Binaries (.so / ELF) | **1.00×** | 1.00× | 1.01× | 1.00× | 1.01× | 1.00× | | Binaries (.so / ELF) | **1.00×** | 1.00× | 1.01× | 1.00× | 1.01× | 1.00× |
| Incompressible (random) | **1.00×** | 1.00× | 1.00× | 1.00× | 1.00× | 1.00× | | Incompressible (random) | **1.00×** | 1.00× | 1.00× | 1.00× | 1.00× | 1.00× |
### This release vs the previous one (5.0.0 → 5.1.0) VaptVupt-9 **wins outright on logs and JSON**, and is within a few percent of `zstd -9` on text/source. `zstd` compresses faster; VaptVupt decompresses 24× faster than it compresses. Extreme (`-9`) spends CPU for the smallest archive — use the default `-7` for everyday backups.
Same tool, level 9 — the gain is auto-`format_v2` plus the larger extreme window.
| Data class | 5.0.0 | 5.1.0 | Change |
|---|--:|--:|--:|
| Text (docs, Markdown) | 3.77× | **5.98×** | +58% |
| Source code (C / headers) | 4.93× | **5.63×** | +14% |
| JSON (structured records) | 8.25× | **9.38×** | +14% |
| Server logs | 7.21× | **9.07×** | +26% |
| Binaries (.so / ELF) | 1.01× | **1.00×** | -1% |
| Incompressible (random) | 1.00× | **1.00×** | +0% |
### Throughput (MB/s, single thread) ### Throughput (MB/s, single thread)
The CLI multi-threads compression with `-t 0` (auto); decompression is single-thread and level-independent. Extreme (`-9`) spends CPU for the smallest archive — use the default `-7` for everyday backups. The CLI multi-threads compression with `-t 0` (auto); decompression is single-thread and level-independent.
| Data class | -7 comp | -7 decomp | -9 comp | -9 decomp | zstd-9 comp | | Data class | -7 comp | -7 decomp | -9 comp | -9 decomp | zstd-9 comp | gzip-9 comp |
|---|--:|--:|--:|--:|--:| |---|--:|--:|--:|--:|--:|--:|
| Text (docs, Markdown) | 80 | 181 | 2 | 214 | 42 | | Text (docs, Markdown) | 130 | 263 | 5 | 305 | 84 | 21 |
| Source code (C / headers) | 92 | 167 | 1 | 214 | 35 | | Source code (C / headers) | 149 | 238 | 3 | 291 | 76 | 19 |
| JSON (structured records) | 95 | 162 | 1 | 195 | 35 | | JSON (structured records) | 145 | 226 | 3 | 262 | 62 | 14 |
| Server logs | 111 | 192 | 1 | 189 | 34 | | Server logs | 198 | 260 | 3 | 266 | 94 | 15 |
### Audit status (5.2.1, source-only build)
Every release runs the security regression matrix (`make check`, ~2 min on x86-64 / aarch64) plus the NIST/RFC known-answer vectors. Results for this release:
| Check | Result |
|---|--:|
| NIST/RFC known-answer vectors (FIPS 180-4/197/202/203, SP 800-38A, RFC 4231/7748/8018) | 16 / 16 |
| ML-KEM-768 FIPS 203 conformance vs OpenSSL 3.5 (both cross-decapsulation directions) | 3 / 3 |
| Path-traversal extraction guards | 5 / 5 |
| Block-swap / reorder tamper detection | 6 / 6 |
| Dedup fresh-nonce (no AES-CTR keystream reuse) | 1 / 1 |
| Argument-order data-loss / plaintext guards | 8 / 8 |
| AVX2 decode over-copy (out-of-bounds) guard | 7 / 7 |
| SHA-NI hardware path + incremental HMAC | 9 / 9 |
| Exact-size decode (no over-read / over-write) | 80 / 80 |
| GUI branding + license consistency | 11 / 11 |
| Help / static-analysis consistency | 16 / 16 |
Constant-time MAC/KEM timing is measured with dudect where the environment allows (inconclusive under a shared VM). See [AUDIT.md](AUDIT.md) and [SECURITY.md](SECURITY.md) for the full verification matrix and threat model.
--- ---
## Features ## Features
- **Hardware-adaptive codec** — auto-detects AVX2/NEON at runtime and - **Hardware-adaptive codec** — auto-detects AVX2/NEON at runtime and
@ -230,36 +259,36 @@ Argon2id KDF.
### Pre-built packages ### Pre-built packages
Assets are published on the Assets are published on the
[v5.2.0 release page](https://git.securityops.co/cristiancmoises/vaptvupt/releases/tag/v5.2.0) [v5.2.1 release page](https://git.securityops.co/cristiancmoises/vaptvupt/releases/tag/v5.2.1)
and verifiable against the published `SHA256SUMS.txt`. and verifiable against the published `SHA256SUMS.txt`.
**Command-line tool (`vaptvupt` 5.2.0):** **Command-line tool (`vaptvupt` 5.2.1):**
| Format | File | Distros | | Format | File | Distros |
|---|---|---| |---|---|---|
| Debian/Ubuntu | `vaptvupt_5.2.0_amd64.deb` | Debian 11+, Ubuntu 22.04+, Mint 21+ | | Debian/Ubuntu | `vaptvupt_5.2.1_amd64.deb` | Debian 11+, Ubuntu 22.04+, Mint 21+ |
| RPM | `vaptvupt-5.2.0-1.x86_64.rpm` | Fedora 38+, RHEL 9+, openSUSE, AlmaLinux, Rocky, other RPM-based distributions | | RPM | `vaptvupt-5.2.1-1.x86_64.rpm` | Fedora 38+, RHEL 9+, openSUSE, AlmaLinux, Rocky, other RPM-based distributions |
| AppDir tarball | `vaptvupt-5.2.0-x86_64.AppDir.tar.gz` | Any glibc 2.28+ (extract & run, no FUSE) | | AppDir tarball | `vaptvupt-5.2.1-x86_64.AppDir.tar.gz` | Any glibc 2.28+ (extract & run, no FUSE) |
| Source tarball | `vaptvupt-5.2.0.tar.gz` | Build from source on any platform | | Source tarball | `vaptvupt-5.2.1.tar.gz` | Build from source on any platform |
| openSUSE OBS | `vaptvupt-5.2.0-opensuse-obs.tar.gz` | Open Build Service source bundle | | openSUSE OBS | `vaptvupt-5.2.1-opensuse-obs.tar.gz` | Open Build Service source bundle |
**Graphical front-end (`vaptvupt-gui` 5.2.0):** **Graphical front-end (`vaptvupt-gui` 5.2.1):**
| Format | File | Distros | | Format | File | Distros |
|---|---|---| |---|---|---|
| Debian/Ubuntu | `vaptvupt-gui_5.2.0_all.deb` | Debian 11+, Ubuntu 22.04+, Mint 21+ | | Debian/Ubuntu | `vaptvupt-gui_5.2.1_all.deb` | Debian 11+, Ubuntu 22.04+, Mint 21+ |
| RPM | `vaptvupt-gui-5.2.0-1.noarch.rpm` | RPM-based distributions | | RPM | `vaptvupt-gui-5.2.1-1.noarch.rpm` | RPM-based distributions |
| AppImage | `VaptVupt-GUI-5.2.0-x86_64.AppImage` | Any glibc 2.28+ (single-file, no install) | | AppImage | `VaptVupt-GUI-5.2.1-x86_64.AppImage` | Any glibc 2.28+ (single-file, no install) |
| AppDir tarball | `VaptVupt-GUI-5.2.0-x86_64.AppDir.tar.gz` | Any glibc 2.28+ (extract & run) | | AppDir tarball | `VaptVupt-GUI-5.2.1-x86_64.AppDir.tar.gz` | Any glibc 2.28+ (extract & run) |
**Windows / macOS / BSD:** **Windows / macOS / BSD:**
| Platform | File | Notes | | Platform | File | Notes |
|---|---|---| |---|---|---|
| Windows | `VaptVupt-Setup-5.2.0.exe`, `vaptvupt-gui-5.2.0-windows-x86_64.exe`, `vaptvupt-5.2.0-windows-x86_64.exe` | Native installer + standalone GUI + CLI, built on a Windows runner by CI | | Windows | `VaptVupt-Setup-5.2.1.exe`, `vaptvupt-gui-5.2.1-windows-x86_64.exe`, `vaptvupt-5.2.1-windows-x86_64.exe` | Native installer + standalone GUI + CLI, built on a Windows runner by CI |
| macOS | `VaptVupt-5.2.0.dmg`, `vaptvupt-5.2.0-macos` | `.dmg` GUI bundle + CLI, built on a macOS runner by CI | | macOS | `VaptVupt-5.2.1.dmg`, `vaptvupt-5.2.1-macos` | `.dmg` GUI bundle + CLI, built on a macOS runner by CI |
| Any OS (portable GUI) | `vaptvupt-gui-5.2.0-portable.zip` | Python GUI + launchers for Windows/macOS/Linux/BSD; needs Python 3.8+ and PySide6 (or PyQt6), plus the `vaptvupt` CLI on PATH | | Any OS (portable GUI) | `vaptvupt-gui-5.2.1-portable.zip` | Python GUI + launchers for Windows/macOS/Linux/BSD; needs Python 3.8+ and PySide6 (or PyQt6), plus the `vaptvupt` CLI on PATH |
| BSD / others | `vaptvupt-5.2.0.tar.gz` | Build the CLI from source (`make`); run the portable GUI | | BSD / others | `vaptvupt-5.2.1.tar.gz` | Build the CLI from source (`make`); run the portable GUI |
The native Windows/macOS installers are produced by the project's CI The native Windows/macOS installers are produced by the project's CI
(`.github/workflows/cross-platform.yml`) on real Windows and macOS runners — see (`.github/workflows/cross-platform.yml`) on real Windows and macOS runners — see
@ -271,30 +300,30 @@ and Qt are available.
sha256sum -c SHA256SUMS.txt sha256sum -c SHA256SUMS.txt
# Debian / Ubuntu / Mint # Debian / Ubuntu / Mint
sudo dpkg -i vaptvupt_5.2.0_amd64.deb sudo dpkg -i vaptvupt_5.2.1_amd64.deb
sudo apt-get install -f # resolve any missing deps sudo apt-get install -f # resolve any missing deps
# Fedora / RHEL / openSUSE / AlmaLinux / Rocky and other RPM-based distros # Fedora / RHEL / openSUSE / AlmaLinux / Rocky and other RPM-based distros
sudo rpm -i vaptvupt-5.2.0-1.x86_64.rpm sudo rpm -i vaptvupt-5.2.1-1.x86_64.rpm
# or # or
sudo dnf install ./vaptvupt-5.2.0-1.x86_64.rpm sudo dnf install ./vaptvupt-5.2.1-1.x86_64.rpm
# AppDir tarball (no install, no FUSE required) # AppDir tarball (no install, no FUSE required)
tar xzf vaptvupt-5.2.0-x86_64.AppDir.tar.gz tar xzf vaptvupt-5.2.1-x86_64.AppDir.tar.gz
./vaptvupt-5.2.0-x86_64.AppDir/AppRun --help ./vaptvupt-5.2.1-x86_64.AppDir/AppRun --help
# GUI AppImage (single executable) # GUI AppImage (single executable)
chmod +x VaptVupt-GUI-5.2.0-x86_64.AppImage chmod +x VaptVupt-GUI-5.2.1-x86_64.AppImage
./VaptVupt-GUI-5.2.0-x86_64.AppImage ./VaptVupt-GUI-5.2.1-x86_64.AppImage
``` ```
### Building from SRPM (Fedora / RHEL / RPM-based distributions) ### Building from SRPM (Fedora / RHEL / RPM-based distributions)
```bash ```bash
tar xzf vaptvupt-5.2.0.srpm.tar.gz tar xzf vaptvupt-5.2.1.srpm.tar.gz
cd ~/rpmbuild # or use rpmbuild --define "_topdir $(pwd)" cd ~/rpmbuild # or use rpmbuild --define "_topdir $(pwd)"
rpmbuild -bb SPECS/vaptvupt.spec rpmbuild -bb SPECS/vaptvupt.spec
sudo rpm -i RPMS/x86_64/vaptvupt-5.2.0-1.*.rpm sudo rpm -i RPMS/x86_64/vaptvupt-5.2.1-1.*.rpm
``` ```
### Basic usage ### Basic usage
@ -777,6 +806,7 @@ VaptVupt archives require VaptVupt v2.0+.
| v5.0.0 | Genuine FIPS 203 ML-KEM-768 (validated vs OpenSSL); CLI data-loss/plaintext guards; AVX2 decoder OOB-read fix; GUI reworked for native PQ modes; cross-platform packaging. **Breaking:** `--pq`/`--pq-only` keys+archives from ≤4.2.1 do not decrypt | | v5.0.0 | Genuine FIPS 203 ML-KEM-768 (validated vs OpenSSL); CLI data-loss/plaintext guards; AVX2 decoder OOB-read fix; GUI reworked for native PQ modes; cross-platform packaging. **Breaking:** `--pq`/`--pq-only` keys+archives from ≤4.2.1 do not decrypt |
| v5.1.0 | Codec 2.65.0; large compression-ratio gains (auto-`format_v2` + level-scaled block window — text extreme 3.77×→5.98×, logs 7.21×→9.07×); `--dedup` keeps a small block automatically; GUI compress-hang / job-completion-crash / Wayland-map fixes. Wire format stays v1.6, fully interoperable with 5.0.0 | | v5.1.0 | Codec 2.65.0; large compression-ratio gains (auto-`format_v2` + level-scaled block window — text extreme 3.77×→5.98×, logs 7.21×→9.07×); `--dedup` keeps a small block automatically; GUI compress-hang / job-completion-crash / Wayland-map fixes. Wire format stays v1.6, fully interoperable with 5.0.0 |
| v5.2.0 | Fixed a GUI cross-thread crash (compress could close the app / corrupt the archive, worst on full-PQ); codec 2.65.3 (~2× faster extreme, byte-identical output); libvuptsdk (renamed libzuptsdk) for `WITH_SDK=1` `--pq-sdk`/Argon2id; `--pq-box` split to `WITH_PQBOX=1`. Wire format v1.6, interoperable with 5.0.x/5.1.0 | | v5.2.0 | Fixed a GUI cross-thread crash (compress could close the app / corrupt the archive, worst on full-PQ); codec 2.65.3 (~2× faster extreme, byte-identical output); libvuptsdk (renamed libzuptsdk) for `WITH_SDK=1` `--pq-sdk`/Argon2id; `--pq-box` split to `WITH_PQBOX=1`. Wire format v1.6, interoperable with 5.0.x/5.1.0 |
| v5.2.1 | GUI Verify/Extract now auto-detect the archive's encryption from its header, use the matching decrypt flag automatically, and guide you when a password/key is missing instead of dumping a raw error; Verify runs in the background. Refreshed comparison + audit tables. GUI + docs only; no format/codec change |
See [CHANGELOG.md](CHANGELOG.md) for detailed per-version changes. See [CHANGELOG.md](CHANGELOG.md) for detailed per-version changes.

View file

@ -116,7 +116,7 @@ The GUI calls the vaptvupt CLI binary — all cryptography runs in native C, not
## Credits ## Credits
- **vaptvupt** v5.2.0 — Cristian Cezar Moisés ([github](https://git.securityops.co/cristiancmoises/vaptvupt)) - **vaptvupt** v5.2.1 — Cristian Cezar Moisés ([github](https://git.securityops.co/cristiancmoises/vaptvupt))
## License ## License

View file

@ -50,7 +50,7 @@
#define ZUPT_PRODUCT_EXTENSION ".zupt" /* on-disk archive extension (kept stable) */ #define ZUPT_PRODUCT_EXTENSION ".zupt" /* on-disk archive extension (kept stable) */
#define ZUPT_PRODUCT_TAGLINE "Post-quantum backup compression" #define ZUPT_PRODUCT_TAGLINE "Post-quantum backup compression"
#define ZUPT_VERSION_STRING "5.2.0" #define ZUPT_VERSION_STRING "5.2.1"
/* Vendored codec release (upstream tag) — single source for display strings. /* Vendored codec release (upstream tag) — single source for display strings.
* The codec's own VV_VERSION_* is its internal API version, not the release. */ * The codec's own VV_VERSION_* is its internal API version, not the release. */
#define ZUPT_CODEC_RELEASE "2.65.3" #define ZUPT_CODEC_RELEASE "2.65.3"

View file

@ -62,7 +62,7 @@
xcb-util-renderutil xcb-util-wm xcb-util-cursor xcb-util-renderutil xcb-util-wm xcb-util-cursor
libinput-minimal mtdev libevdev eudev)) libinput-minimal mtdev libevdev eudev))
(define %vaptvupt-version "5.2.0") (define %vaptvupt-version "5.2.1")
(define %vaptvupt-source (define %vaptvupt-source
(origin (origin

View file

@ -22,8 +22,8 @@
class Vaptvupt < Formula class Vaptvupt < Formula
desc "Post-quantum backup compression utility (ML-KEM-768 + AES-256-CTR + HMAC-SHA256)" desc "Post-quantum backup compression utility (ML-KEM-768 + AES-256-CTR + HMAC-SHA256)"
homepage "https://git.securityops.co/cristiancmoises/vaptvupt" homepage "https://git.securityops.co/cristiancmoises/vaptvupt"
url "https://git.securityops.co/cristiancmoises/vaptvupt/releases/download/v5.2.0/vaptvupt-5.2.0.tar.gz" url "https://git.securityops.co/cristiancmoises/vaptvupt/releases/download/v5.2.1/vaptvupt-5.2.1.tar.gz"
version "5.2.0" version "5.2.1"
sha256 "REPLACE_WITH_SHA256_OF_RELEASE_TARBALL" sha256 "REPLACE_WITH_SHA256_OF_RELEASE_TARBALL"
license "AGPL-3.0-or-later" license "AGPL-3.0-or-later"

View file

@ -19,7 +19,7 @@
Name: vaptvupt Name: vaptvupt
Version: 5.2.0 Version: 5.2.1
Release: 0 Release: 0
Summary: Post-quantum backup compression with AES-256 + ML-KEM-768 hybrid encryption Summary: Post-quantum backup compression with AES-256 + ML-KEM-768 hybrid encryption
License: AGPL-3.0-or-later License: AGPL-3.0-or-later

View file

@ -20,7 +20,7 @@
# in the base. # in the base.
Name: vaptvupt Name: vaptvupt
Version: 5.2.0 Version: 5.2.1
Release: 1%{?dist} Release: 1%{?dist}
Summary: Post-quantum backup compression utility (AES-256 + ML-KEM-768 + Argon2id, formerly Zupt) Summary: Post-quantum backup compression utility (AES-256 + ML-KEM-768 + Argon2id, formerly Zupt)