From 97624f3888c9a69b9c11a505c19486d1438b112b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nicolas=20H=C3=B6ft?= <nicolas@hoeft.de>
Date: Wed, 8 Jun 2022 07:54:42 +0200
Subject: [PATCH] Support ARGON2 scheme, being identical to ARGON2I

---
 Documentation/SOGoInstallationGuide.asciidoc | 2 +-
 SoObjects/SOGo/NSData+Crypto.m               | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/Documentation/SOGoInstallationGuide.asciidoc b/Documentation/SOGoInstallationGuide.asciidoc
index f4dabdc94..cd960ae7a 100644
--- a/Documentation/SOGoInstallationGuide.asciidoc
+++ b/Documentation/SOGoInstallationGuide.asciidoc
@@ -1668,7 +1668,7 @@ passwords. Possible values are: `none`, `plain`, `crypt`, `md5`,
 `sha256-crypt`, `sha512`, `sha512-crypt`, its ssha (e.g. `ssha` or
 `ssha256`) variants, `blf-crypt`, `PBKDF2`, and `sym-aes-128-cbc`.
 The `argon2i` and `argon2id` password hashing algorithms are supported
-if SOGo is compiled with `libsodium`.
+if SOGo is compiled with `libsodium`. `argon2` is a synonym for `argon2i`.
 Passwords can have the scheme prepended in the form
 `{scheme}encryptedPass`.
 
diff --git a/SoObjects/SOGo/NSData+Crypto.m b/SoObjects/SOGo/NSData+Crypto.m
index ed7912494..6a2f241d1 100644
--- a/SoObjects/SOGo/NSData+Crypto.m
+++ b/SoObjects/SOGo/NSData+Crypto.m
@@ -272,7 +272,8 @@ static const char salt_chars[] =
       return [self asPBKDF2SHA1UsingSalt: theSalt];
     }
 #ifdef HAVE_SODIUM
-  else if ([passwordScheme caseInsensitiveCompare: @"argon2i"] == NSOrderedSame)
+  else if ([passwordScheme caseInsensitiveCompare: @"argon2i"] == NSOrderedSame ||
+           [passwordScheme caseInsensitiveCompare: @"argon2"] == NSOrderedSame)
     {
       return [self asArgon2iUsingSalt: theSalt];
     }
-- 
2.33.0

