mirror of
https://github.com/borgbackup/borg.git
synced 2026-09-01 14:13:19 +02:00
- src/borg/crypto/low_level.pyx: implement `argon2_hash` using OpenSSL's `EVP_KDF` API for ARGON2 (requires OpenSSL >= 3.2.0). - src/borg/crypto/key.py: switch to the native `argon2_hash` implementation, removing `argon2-cffi` dependency. - setup.py: require OpenSSL >= 3.2.0 for the crypto extension to ensure ARGON2 KDF support is available. - pyproject.toml: drop `argon2-cffi` dependency. - docs: update installation requirements and security documentation to reflect the transition to OpenSSL for Argon2. The lanes are computed in parallel via OpenSSL's thread pool: OpenSSL's Argon2 only uses threads if OSSL_set_max_threads() enabled the thread pool and a "threads" parameter > 1 is given. Passing threads=1 would compute the 4 lanes of our default parallelism=4 sequentially, and unlocking would get slower than it was with argon2-cffi, which used real threads for the lanes. The thread count only affects speed, never the derived key (only the lanes parameter does), so this is fully compatible with existing keys. Apple M-series (OpenSSL 3.6.3), borg defaults (t=3, m=64 MiB, p=4): threads=1: 83 ms, threads=4: 29 ms (2.8x faster). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
7 lines
432 B
Bash
7 lines
432 B
Bash
#!/bin/bash
|
|
|
|
pacman -S --needed --noconfirm git mingw-w64-ucrt-x86_64-{toolchain,pkgconf,lz4,openssl,rclone,python-msgpack,python-platformdirs,python,cython,python-setuptools,python-wheel,python-build,python-pkgconfig,python-packaging,python-pip,python-paramiko,rust,python-maturin}
|
|
|
|
if [ "$1" = "development" ]; then
|
|
pacman -S --needed --noconfirm mingw-w64-ucrt-x86_64-python-{pytest,pytest-benchmark,pytest-cov,pytest-xdist}
|
|
fi
|