5internal static class Pkcs12Kdf
31 for (
int i = 0; i <
array.Length; i++)
34 if (tuple.Item1 == hashAlgorithm)
48 int num4 = (salt.Length - 1 + num3) / num3 * num3;
49 int num5 = checked((password.
Length + 1) * 2);
54 int num6 = (num5 - 1 + num3) / num3 * num3;
55 int num7 = num4 + num6;
60 span2 = stackalloc
byte[num7];
65 span2 = array2.AsSpan(0, num7);
78 for (
int num8 = iterationCount; num8 > 0; num8--)
96 for (
int num9 = span2.
Length / num3 - 1; num9 >= 0; num9--)
118 for (
int num2 = into.
Length - 1; num2 >= 0; num2--)
120 int num3 = num + into[num2] + addend[num2];
121 into[num2] = (byte)num3;
143 int num = password.Length * 2;
static byte Min(byte val1, byte val2)
static string Cryptography_UnknownHashAlgorithm
static void Return(byte[] array, int clearSize=-1)
static byte[] Rent(int minimumLength)
static void ZeroMemory(Span< byte > buffer)
static IncrementalHash CreateHash(HashAlgorithmName hashAlgorithm)
void AppendData(byte[] data)
bool TryGetHashAndReset(Span< byte > destination, out int bytesWritten)
static void DeriveCipherKey(ReadOnlySpan< char > password, HashAlgorithmName hashAlgorithm, int iterationCount, ReadOnlySpan< byte > salt, Span< byte > destination)
static void AddPlusOne(Span< byte > into, Span< byte > addend)
static readonly(HashAlgorithmName, int, int)[] s_uvLookup
static void CircularCopy(ReadOnlySpan< byte > bytes, Span< byte > destination)
static void CircularCopyUtf16BE(ReadOnlySpan< char > password, Span< byte > destination)
static void Derive(ReadOnlySpan< char > password, HashAlgorithmName hashAlgorithm, int iterationCount, byte id, ReadOnlySpan< byte > salt, Span< byte > destination)
static void DeriveIV(ReadOnlySpan< char > password, HashAlgorithmName hashAlgorithm, int iterationCount, ReadOnlySpan< byte > salt, Span< byte > destination)
static Encoding BigEndianUnicode
virtual byte[] GetBytes(char[] chars)
ReadOnlySpan< T > Slice(int start)
static HashAlgorithmName SHA1
static HashAlgorithmName SHA512
static HashAlgorithmName SHA256
static HashAlgorithmName SHA384
static HashAlgorithmName MD5
void CopyTo(Span< T > destination)
Span< T > Slice(int start)