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;
}
}
}