sdk/Common/Authentication/ServiceSignature.cs (24 lines of code) (raw):
/*
* Copyright (C) Alibaba Cloud Computing
* All rights reserved.
*
*/
using System;
using Aliyun.OSS.Properties;
namespace Aliyun.OSS.Common.Authentication
{
internal abstract class ServiceSignature
{
public abstract string SignatureMethod { get; }
public abstract string SignatureVersion { get; }
public string ComputeSignature(String key, String data)
{
if (string.IsNullOrEmpty(key))
throw new ArgumentException(Resources.ExceptionIfArgumentStringIsNullOrEmpty, "key");
if (string.IsNullOrEmpty(data))
throw new ArgumentException(Resources.ExceptionIfArgumentStringIsNullOrEmpty, "data");
return ComputeSignatureCore(key, data);
}
protected abstract string ComputeSignatureCore(string key, string data);
public static ServiceSignature Create()
{
return new HmacSha1Signature();
}
}
}