From eda92fccdd7db4eb2eaf13338712b4476bed1a7f Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Thu, 8 May 2025 14:17:52 +0000 Subject: [PATCH] Use all available threads for argon2 --- wrappers/keyDeriv.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/wrappers/keyDeriv.go b/wrappers/keyDeriv.go index b202a0e..398bbeb 100644 --- a/wrappers/keyDeriv.go +++ b/wrappers/keyDeriv.go @@ -1,21 +1,24 @@ package wrappers import ( + "runtime" + "golang.org/x/crypto/argon2" "golang.org/x/crypto/chacha20poly1305" ) const ( // parameters for Argon2 - argonTime = 1 - argonMemory = 64 * 1024 - argonThreads = 4 - argonKeyLen = chacha20poly1305.KeySize + argonTime = 1 + argonMemory = 64 * 1024 + argonKeyLen = chacha20poly1305.KeySize // general constants saltSize = 16 ) +var argonThreads = uint8(runtime.NumCPU()) + // DeriveKey derives an encryption key from a passphrase using Argon2. func deriveKey(passphrase []byte, salt []byte) []byte { return argon2.IDKey(passphrase, salt, argonTime, argonMemory, argonThreads, argonKeyLen)