using System; using System.Runtime.InteropServices; using Mono.Security.Cryptography; namespace System.Security.Cryptography { /// Computes a Hash-based Message Authentication Code (HMAC) using the hash function. // Token: 0x02000504 RID: 1284 [ComVisible(true)] public class HMACSHA1 : HMAC { /// Initializes a new instance of the class with a randomly generated key. // Token: 0x06002F60 RID: 12128 RVA: 0x00098AE4 File Offset: 0x00096CE4 public HMACSHA1() : this(KeyBuilder.Key(8)) { } /// Initializes a new instance of the class with the specified key data. /// The secret key for encryption. The key can be any length, but if it is more than 64 bytes long it will be hashed (using SHA-1) to derive a 64-byte key. Therefore, the recommended size of the secret key is 64 bytes. /// The parameter is null. // Token: 0x06002F61 RID: 12129 RVA: 0x00098AF4 File Offset: 0x00096CF4 public HMACSHA1(byte[] key) { base.HashName = "SHA1"; this.HashSizeValue = 160; this.Key = key; } /// Initializes a new instance of the class with the specified key data and a value that specifies whether to use the managed version of the SHA-1 algorithm. /// The secret key for encryption. The key can be any length but if it is more than 64 bytes long, it will be hashed (using SHA-1) to derive a 64-byte key. Therefore, the recommended size of the secret key is 64 bytes. /// true to use the managed implementation of the SHA-1 algorithm (the class); false to use the unmanaged implementation (the class). // Token: 0x06002F62 RID: 12130 RVA: 0x00098B1C File Offset: 0x00096D1C public HMACSHA1(byte[] key, bool useManagedSha1) { base.HashName = "System.Security.Cryptography.SHA1" + ((!useManagedSha1) ? "CryptoServiceProvider" : "Managed"); this.HashSizeValue = 160; this.Key = key; } } }