<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0" />

Org.BouncyCastle.Bcpg.S2k

public class S2k : BcpgObject
namespace Org.BouncyCastle.Bcpg { public class S2k : BcpgObject { public sealed class Argon2Params { public int MemorySizeExponent { get; } public int Parallelism { get; } public int Passes { get; } public static SecureRandom DefaultSecureRandom(); public static Argon2Params MemoryConstrainedParameters(SecureRandom secureRandom); public static Argon2Params RecommendedParameters(SecureRandom secureRandom); public Argon2Params(int passes, int parallelism, int memorySizeExponent, SecureRandom secureRandom); public Argon2Params(byte[] salt, int passes, int parallelism, int memorySizeExponent); public byte[] GetSalt(); } public const int Simple = 0; public const int Salted = 1; public const int SaltedAndIterated = 3; public const int Argon2 = 4; public const int GnuDummyS2K = 101; public const int GnuProtectionModeNoPrivateKey = 1; public const int GnuProtectionModeDivertToCard = 2; public const int GnuProtectionModeInternal = 3; public virtual int Type { get; } public virtual HashAlgorithmTag HashAlgorithm { get; } public virtual long IterationCount { get; } public virtual int ProtectionMode { get; } public virtual Argon2Params Argon2Config { get; } public static S2k GenerateSalted(SecureRandom secureRandom, HashAlgorithmTag hashAlgorithm); public static S2k GenerateSaltedAndIterated(SecureRandom secureRandom, HashAlgorithmTag hashAlgorithm, int itCount); public S2k(HashAlgorithmTag algorithm); public S2k(HashAlgorithmTag algorithm, byte[] iv); public S2k(HashAlgorithmTag algorithm, byte[] iv, int itCount); public S2k(Argon2Params argon2Config); public static S2k Argon2S2k(Argon2Params parameters); public virtual byte[] GetIV(); } }