sdk/Common/Authentication/HmacSHA1Signature.cs (34 lines of code) (raw):

/* * Copyright (C) Alibaba Cloud Computing * All rights reserved. * */ using System; using System.Diagnostics; using System.Security.Cryptography; using System.Text; namespace Aliyun.OSS.Common.Authentication { internal class HmacSha1Signature : ServiceSignature { private static readonly Encoding Encoding = Encoding.UTF8; public override string SignatureMethod { get { return "HmacSHA1"; } } public override string SignatureVersion { get { return "1"; } } protected override string ComputeSignatureCore(string key, string data) { Debug.Assert(!string.IsNullOrEmpty(data)); #if NETCOREAPP2_0 using (var algorithm = new HMACSHA1()) #else using (var algorithm = KeyedHashAlgorithm.Create(SignatureMethod.ToUpperInvariant())) #endif { algorithm.Key = Encoding.GetBytes(key.ToCharArray()); return Convert.ToBase64String( algorithm.ComputeHash(Encoding.GetBytes(data.ToCharArray()))); } } } }