identity: replace Sodium.Core with Geralt

This commit is contained in:
Abdullah Atta
2024-10-12 11:55:52 +05:00
parent 3cc84d7603
commit 1c68942a6d
3 changed files with 123 additions and 125 deletions

View File

@@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
using System;
using System.Text;
using Sodium;
using Geralt;
namespace Streetwriters.Identity.Helpers
{
@@ -27,12 +27,14 @@ namespace Streetwriters.Identity.Helpers
{
public static bool VerifyPassword(string password, string hash)
{
return PasswordHash.ArgonHashStringVerify(hash, password);
return Argon2id.VerifyHash(Encoding.UTF8.GetBytes(hash), Encoding.UTF8.GetBytes(password));
}
public static string CreatePasswordHash(string password)
{
return PasswordHash.ArgonHashString(password, 3, 65536);
Span<byte> hash = new(new byte[128]);
Argon2id.ComputeHash(hash, Encoding.UTF8.GetBytes(password), 3, 65536);
return Encoding.UTF8.GetString(hash);
}
}
}

View File

@@ -28,18 +28,14 @@ namespace Streetwriters.Identity.Services
{
public string HashPassword(TUser user, string password)
{
if (password == null)
throw new ArgumentNullException(nameof(password));
ArgumentNullException.ThrowIfNullOrEmpty(password, nameof(password));
return PasswordHelper.CreatePasswordHash(password);
}
public PasswordVerificationResult VerifyHashedPassword(TUser user, string hashedPassword, string providedPassword)
{
if (hashedPassword == null)
throw new ArgumentNullException(nameof(hashedPassword));
if (providedPassword == null)
throw new ArgumentNullException(nameof(providedPassword));
ArgumentNullException.ThrowIfNullOrEmpty(hashedPassword, nameof(hashedPassword));
ArgumentNullException.ThrowIfNullOrEmpty(providedPassword, nameof(providedPassword));
return PasswordHelper.VerifyPassword(providedPassword, hashedPassword) ? PasswordVerificationResult.Success : PasswordVerificationResult.Failed;
}

View File

@@ -16,7 +16,7 @@
<PackageReference Include="Scriban" Version="5.5.1" />
<PackageReference Include="SendGrid" Version="9.24.4" />
<PackageReference Include="Serilog.AspNetCore" Version="3.4.0" />
<PackageReference Include="Sodium.Core" Version="1.2.3" />
<PackageReference Include="Geralt" Version="3.1.0" />
<PackageReference Include="IdentityServer4.Contrib.MongoDB" Version="4.0.0-rc.2" />
<PackageReference Include="IdentityServer4.AspNetIdentity" Version="4.1.2" />
<PackageReference Include="IdentityServer4.EntityFramework" Version="4.1.2" />