235 lines
11 KiB
C#
235 lines
11 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace System.Security.Cryptography
|
|
{
|
|
/// <summary>Implements password-based key derivation functionality, PBKDF2, by using a pseudo-random number generator based on <see cref="T:System.Security.Cryptography.HMACSHA1" />.</summary>
|
|
// Token: 0x02000418 RID: 1048
|
|
[Token(Token = "0x2000418")]
|
|
[ComVisible(true)]
|
|
public class Rfc2898DeriveBytes : DeriveBytes
|
|
{
|
|
/// <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Rfc2898DeriveBytes" /> class using the password and salt size to derive the key.</summary>
|
|
/// <param name="password">The password used to derive the key.</param>
|
|
/// <param name="saltSize">The size of the random salt that you want the class to generate.</param>
|
|
/// <exception cref="T:System.ArgumentException">The specified salt size is smaller than 8 bytes.</exception>
|
|
/// <exception cref="T:System.ArgumentNullException">The password or salt is <see langword="null" />.</exception>
|
|
// Token: 0x06002447 RID: 9287 RVA: 0x00002050 File Offset: 0x00000250
|
|
[Token(Token = "0x6002447")]
|
|
[Address(RVA = "0x1028ED0", Offset = "0x1027ED0", VA = "0x181028ED0")]
|
|
public Rfc2898DeriveBytes(string password, int saltSize)
|
|
{
|
|
}
|
|
|
|
/// <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Rfc2898DeriveBytes" /> class using a password, a salt size, and number of iterations to derive the key.</summary>
|
|
/// <param name="password">The password used to derive the key.</param>
|
|
/// <param name="saltSize">The size of the random salt that you want the class to generate.</param>
|
|
/// <param name="iterations">The number of iterations for the operation.</param>
|
|
/// <exception cref="T:System.ArgumentException">The specified salt size is smaller than 8 bytes or the iteration count is less than 1.</exception>
|
|
/// <exception cref="T:System.ArgumentNullException">The password or salt is <see langword="null" />.</exception>
|
|
/// <exception cref="T:System.ArgumentOutOfRangeException">
|
|
/// <paramref name="iterations" /> is out of range. This parameter requires a non-negative number.</exception>
|
|
// Token: 0x06002448 RID: 9288 RVA: 0x00002050 File Offset: 0x00000250
|
|
[Token(Token = "0x6002448")]
|
|
[Address(RVA = "0x1028EF0", Offset = "0x1027EF0", VA = "0x181028EF0")]
|
|
public Rfc2898DeriveBytes(string password, int saltSize, int iterations)
|
|
{
|
|
}
|
|
|
|
/// <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Rfc2898DeriveBytes" /> class using a password and salt to derive the key.</summary>
|
|
/// <param name="password">The password used to derive the key.</param>
|
|
/// <param name="salt">The key salt used to derive the key.</param>
|
|
/// <exception cref="T:System.ArgumentException">The specified salt size is smaller than 8 bytes or the iteration count is less than 1.</exception>
|
|
/// <exception cref="T:System.ArgumentNullException">The password or salt is <see langword="null" />.</exception>
|
|
// Token: 0x06002449 RID: 9289 RVA: 0x00002050 File Offset: 0x00000250
|
|
[Token(Token = "0x6002449")]
|
|
[Address(RVA = "0x10290D0", Offset = "0x10280D0", VA = "0x1810290D0")]
|
|
public Rfc2898DeriveBytes(string password, byte[] salt)
|
|
{
|
|
}
|
|
|
|
/// <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Rfc2898DeriveBytes" /> class using a password, a salt, and number of iterations to derive the key.</summary>
|
|
/// <param name="password">The password used to derive the key.</param>
|
|
/// <param name="salt">The key salt used to derive the key.</param>
|
|
/// <param name="iterations">The number of iterations for the operation.</param>
|
|
/// <exception cref="T:System.ArgumentException">The specified salt size is smaller than 8 bytes or the iteration count is less than 1.</exception>
|
|
/// <exception cref="T:System.ArgumentNullException">The password or salt is <see langword="null" />.</exception>
|
|
// Token: 0x0600244A RID: 9290 RVA: 0x00002050 File Offset: 0x00000250
|
|
[Token(Token = "0x600244A")]
|
|
[Address(RVA = "0x1028D70", Offset = "0x1027D70", VA = "0x181028D70")]
|
|
public Rfc2898DeriveBytes(string password, byte[] salt, int iterations)
|
|
{
|
|
}
|
|
|
|
/// <summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Rfc2898DeriveBytes" /> class using a password, a salt, and number of iterations to derive the key.</summary>
|
|
/// <param name="password">The password used to derive the key.</param>
|
|
/// <param name="salt">The key salt used to derive the key.</param>
|
|
/// <param name="iterations">The number of iterations for the operation.</param>
|
|
/// <exception cref="T:System.ArgumentException">The specified salt size is smaller than 8 bytes or the iteration count is less than 1.</exception>
|
|
/// <exception cref="T:System.ArgumentNullException">The password or salt is <see langword="null" />.</exception>
|
|
// Token: 0x0600244B RID: 9291 RVA: 0x00002050 File Offset: 0x00000250
|
|
[Token(Token = "0x600244B")]
|
|
[Address(RVA = "0x1028C80", Offset = "0x1027C80", VA = "0x181028C80")]
|
|
public Rfc2898DeriveBytes(byte[] password, byte[] salt, int iterations)
|
|
{
|
|
}
|
|
|
|
/// <summary>Gets or sets the number of iterations for the operation.</summary>
|
|
/// <returns>The number of iterations for the operation.</returns>
|
|
/// <exception cref="T:System.ArgumentOutOfRangeException">The number of iterations is less than 1.</exception>
|
|
// Token: 0x1700052F RID: 1327
|
|
// (get) Token: 0x0600244C RID: 9292 RVA: 0x00016FB0 File Offset: 0x000151B0
|
|
// (set) Token: 0x0600244D RID: 9293 RVA: 0x00002050 File Offset: 0x00000250
|
|
[Token(Token = "0x1700052F")]
|
|
public int IterationCount
|
|
{
|
|
[Token(Token = "0x600244C")]
|
|
[Address(RVA = "0x4257C0", Offset = "0x4247C0", VA = "0x1804257C0")]
|
|
get
|
|
{
|
|
return 0;
|
|
}
|
|
[Token(Token = "0x600244D")]
|
|
[Address(RVA = "0x10292A0", Offset = "0x10282A0", VA = "0x1810292A0")]
|
|
set
|
|
{
|
|
}
|
|
}
|
|
|
|
/// <summary>Gets or sets the key salt value for the operation.</summary>
|
|
/// <returns>The key salt value for the operation.</returns>
|
|
/// <exception cref="T:System.ArgumentException">The specified salt size is smaller than 8 bytes.</exception>
|
|
/// <exception cref="T:System.ArgumentNullException">The salt is <see langword="null" />.</exception>
|
|
// Token: 0x17000530 RID: 1328
|
|
// (get) Token: 0x0600244E RID: 9294 RVA: 0x00002082 File Offset: 0x00000282
|
|
// (set) Token: 0x0600244F RID: 9295 RVA: 0x00002050 File Offset: 0x00000250
|
|
[Token(Token = "0x17000530")]
|
|
public byte[] Salt
|
|
{
|
|
[Token(Token = "0x600244E")]
|
|
[Address(RVA = "0x1029220", Offset = "0x1028220", VA = "0x181029220")]
|
|
get
|
|
{
|
|
return null;
|
|
}
|
|
[Token(Token = "0x600244F")]
|
|
[Address(RVA = "0x1029380", Offset = "0x1028380", VA = "0x181029380")]
|
|
set
|
|
{
|
|
}
|
|
}
|
|
|
|
/// <summary>Returns the pseudo-random key for this object.</summary>
|
|
/// <param name="cb">The number of pseudo-random key bytes to generate.</param>
|
|
/// <returns>A byte array filled with pseudo-random key bytes.</returns>
|
|
/// <exception cref="T:System.ArgumentOutOfRangeException">
|
|
/// <paramref name="cb" /> is out of range. This parameter requires a non-negative number.</exception>
|
|
// Token: 0x06002450 RID: 9296 RVA: 0x00002082 File Offset: 0x00000282
|
|
[Token(Token = "0x6002450")]
|
|
[Address(RVA = "0x1028A80", Offset = "0x1027A80", VA = "0x181028A80", Slot = "5")]
|
|
public override byte[] GetBytes(int cb)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
/// <summary>Resets the state of the operation.</summary>
|
|
// Token: 0x06002451 RID: 9297 RVA: 0x00002050 File Offset: 0x00000250
|
|
[Token(Token = "0x6002451")]
|
|
[Address(RVA = "0x1028C10", Offset = "0x1027C10", VA = "0x181028C10", Slot = "6")]
|
|
public override void Reset()
|
|
{
|
|
}
|
|
|
|
/// <summary>Releases the unmanaged resources used by the <see cref="T:System.Security.Cryptography.Rfc2898DeriveBytes" /> class and optionally releases the managed resources.</summary>
|
|
/// <param name="disposing">
|
|
/// <see langword="true" /> to release both managed and unmanaged resources; <see langword="false" /> to release only unmanaged resources.</param>
|
|
// Token: 0x06002452 RID: 9298 RVA: 0x00002050 File Offset: 0x00000250
|
|
[Token(Token = "0x6002452")]
|
|
[Address(RVA = "0x10286F0", Offset = "0x10276F0", VA = "0x1810286F0", Slot = "7")]
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
}
|
|
|
|
// Token: 0x06002453 RID: 9299 RVA: 0x00002050 File Offset: 0x00000250
|
|
[Token(Token = "0x6002453")]
|
|
[Address(RVA = "0x1028C10", Offset = "0x1027C10", VA = "0x181028C10")]
|
|
private void Initialize()
|
|
{
|
|
}
|
|
|
|
// Token: 0x06002454 RID: 9300 RVA: 0x00002082 File Offset: 0x00000282
|
|
[Token(Token = "0x6002454")]
|
|
[Address(RVA = "0x10287E0", Offset = "0x10277E0", VA = "0x1810287E0")]
|
|
private byte[] Func()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
/// <summary>Derives a cryptographic key from the <see cref="T:System.Security.Cryptography.Rfc2898DeriveBytes" /> object.</summary>
|
|
/// <param name="algname">The algorithm name for which to derive the key.</param>
|
|
/// <param name="alghashname">The hash algorithm name to use to derive the key.</param>
|
|
/// <param name="keySize">The size of the key, in bits, to derive.</param>
|
|
/// <param name="rgbIV">The initialization vector (IV) to use to derive the key.</param>
|
|
/// <returns>The derived key.</returns>
|
|
/// <exception cref="T:System.Security.Cryptography.CryptographicException">The <paramref name="keySize" /> parameter is incorrect.
|
|
/// -or-
|
|
/// The cryptographic service provider (CSP) cannot be acquired.
|
|
/// -or-
|
|
/// The <paramref name="algname" /> parameter is not a valid algorithm name.
|
|
/// -or-
|
|
/// The <paramref name="alghashname" /> parameter is not a valid hash algorithm name.</exception>
|
|
// Token: 0x06002455 RID: 9301 RVA: 0x00002082 File Offset: 0x00000282
|
|
[Token(Token = "0x6002455")]
|
|
[Address(RVA = "0x1028650", Offset = "0x1027650", VA = "0x181028650")]
|
|
public byte[] CryptDeriveKey(string algname, string alghashname, int keySize, byte[] rgbIV)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
// Token: 0x04001440 RID: 5184
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4001440")]
|
|
private byte[] m_buffer;
|
|
|
|
// Token: 0x04001441 RID: 5185
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4001441")]
|
|
private byte[] m_salt;
|
|
|
|
// Token: 0x04001442 RID: 5186
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4001442")]
|
|
private HMACSHA1 m_hmacsha1;
|
|
|
|
// Token: 0x04001443 RID: 5187
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4001443")]
|
|
private byte[] m_password;
|
|
|
|
// Token: 0x04001444 RID: 5188
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4001444")]
|
|
private uint m_iterations;
|
|
|
|
// Token: 0x04001445 RID: 5189
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
|
|
[Token(Token = "0x4001445")]
|
|
private uint m_block;
|
|
|
|
// Token: 0x04001446 RID: 5190
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4001446")]
|
|
private int m_startIndex;
|
|
|
|
// Token: 0x04001447 RID: 5191
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x3C")]
|
|
[Token(Token = "0x4001447")]
|
|
private int m_endIndex;
|
|
|
|
// Token: 0x04001448 RID: 5192
|
|
[Token(Token = "0x4001448")]
|
|
private const int BlockSize = 20;
|
|
}
|
|
}
|