From 3fe622dd929103421672e2ea5c36a37de948e3d2 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Sat, 26 Mar 2022 19:47:43 +0100 Subject: [PATCH] borg benchmark cpu: add kdf timings Note: A KDF shall be expensive to compute to slow down attacks on your key encryption / your passphrase. --- src/borg/archiver.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/borg/archiver.py b/src/borg/archiver.py index ca4d817f6..2b21f5ba8 100644 --- a/src/borg/archiver.py +++ b/src/borg/archiver.py @@ -611,6 +611,15 @@ class Archiver: for spec, func in tests: print(f"{spec:<24} {size:<10} {timeit(func, number=100):.3f}s") + from borg.helpers.passphrase import Passphrase + print("KDFs (slow is GOOD, use argon2!) ===============================") + count = 5 + for spec, func in [ + ("pbkdf2", lambda: Passphrase('mypassphrase').kdf(b'salt'*8, PBKDF2_ITERATIONS, 32)), + ("argon2", lambda: Passphrase('mypassphrase').argon2(32, b'salt'*8, 3, 65536, 1, 'id')), + ]: + print(f"{spec:<24} {count:<10} {timeit(func, number=count):.3f}s") + from borg.compress import CompressionSpec print("Compression ====================================================") for spec in [