mirror of
https://github.com/Stone-Red-Code/RemSox.git
synced 2026-09-04 23:42:00 +02:00
26 lines
784 B
C#
26 lines
784 B
C#
using Org.BouncyCastle.Crypto;
|
|
using Org.BouncyCastle.Crypto.Digests;
|
|
using Org.BouncyCastle.Crypto.Generators;
|
|
using Org.BouncyCastle.Crypto.Parameters;
|
|
|
|
namespace RemSox.Utils;
|
|
|
|
public static class PasswordKeyDeriver
|
|
{
|
|
private const int KeySize = 32; // 256-bit key
|
|
private const int Iterations = 150_000; // PBKDF2 cost factor
|
|
|
|
public static byte[] DeriveKey(string password, byte[] salt)
|
|
{
|
|
Pkcs5S2ParametersGenerator generator = new Pkcs5S2ParametersGenerator(new Sha256Digest());
|
|
|
|
generator.Init(
|
|
PbeParametersGenerator.Pkcs5PasswordToBytes(password.ToCharArray()),
|
|
salt,
|
|
Iterations
|
|
);
|
|
|
|
return ((KeyParameter)generator.GenerateDerivedMacParameters(KeySize * 8))
|
|
.GetKey();
|
|
}
|
|
} |