Class S3V4Signer
Handles S3V4 signing routines
Inheritance
System.Object
S3V4Signer
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Assembly: NFX.Web.dll
Syntax
Constructors
S3V4Signer()
Declaration
Fields
AND
Declaration
public const string AND = "&"
Field Value
Type |
Description |
System.String |
|
AWS4_ALGORITHM
Declaration
public const string AWS4_ALGORITHM = "AWS4-HMAC-SHA256"
Field Value
Type |
Description |
System.String |
|
COLON
Declaration
public const string COLON = ":"
Field Value
Type |
Description |
System.String |
|
EMPTY_BODY_SHA256
Declaration
public const string EMPTY_BODY_SHA256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
Field Value
Type |
Description |
System.String |
|
HMACSHA256
Declaration
public const string HMACSHA256 = "HMACSHA256"
Field Value
Type |
Description |
System.String |
|
NEWLINE
Declaration
public const string NEWLINE = "\n"
Field Value
Type |
Description |
System.String |
|
S3SERVICE
Declaration
public const string S3SERVICE = "s3"
Field Value
Type |
Description |
System.String |
|
SCHEME
Declaration
public const string SCHEME = "AWS4"
Field Value
Type |
Description |
System.String |
|
SEMICOLON
Declaration
public const string SEMICOLON = ";"
Field Value
Type |
Description |
System.String |
|
SHA256
Declaration
public const string SHA256 = "SHA-256"
Field Value
Type |
Description |
System.String |
|
TERMINATOR
Declaration
public const string TERMINATOR = "aws4_request"
Field Value
Type |
Description |
System.String |
|
X_AMZ_CONTENT_SHA256
Declaration
public const string X_AMZ_CONTENT_SHA256 = "X-Amz-Content-SHA256"
Field Value
Type |
Description |
System.String |
|
X_AMZ_DATE
Declaration
public const string X_AMZ_DATE = "X-Amz-Date"
Field Value
Type |
Description |
System.String |
|
Properties
AccessKey
Declaration
public string AccessKey { set; }
Property Value
Type |
Description |
System.String |
|
Bucket
Declaration
public string Bucket { set; }
Property Value
Type |
Description |
System.String |
|
ContentStream
Declaration
public Stream ContentStream { set; }
Property Value
Type |
Description |
System.IO.Stream |
|
Call http headers (readonly)
Declaration
public IDictionary<string, string> Headers { get; }
Property Value
Type |
Description |
System.Collections.Generic.IDictionary<System.String, System.String> |
|
ItemLocalPath
Declaration
public string ItemLocalPath { set; }
Property Value
Type |
Description |
System.String |
|
Method
Declaration
public string Method { set; }
Property Value
Type |
Description |
System.String |
|
QueryParams
Declaration
public IDictionary<string, string> QueryParams { set; }
Property Value
Type |
Description |
System.Collections.Generic.IDictionary<System.String, System.String> |
|
Region
Declaration
public string Region { set; }
Property Value
Type |
Description |
System.String |
|
RequestDateTime
Declaration
public DateTime? RequestDateTime { set; }
Property Value
Type |
Description |
System.Nullable<System.DateTime> |
|
SecretKey
Declaration
public string SecretKey { set; }
Property Value
Type |
Description |
System.String |
|
Uri
Declaration
Property Value
Type |
Description |
System.Uri |
|
Methods
Calculate()
Declaration
public IDictionary<string, string> Calculate()
Returns
Type |
Description |
System.Collections.Generic.IDictionary<System.String, System.String> |
|
ComputeHash(String)
Calculates SHA256 hash of given string.
Returns haxadecimal string representation of hash
Declaration
public string ComputeHash(string str)
Parameters
Type |
Name |
Description |
System.String |
str |
|
Returns
Type |
Description |
System.String |
|
ComputeKeyedHash(Byte[], Byte[])
Calculates hash of data by key
Declaration
public byte[] ComputeKeyedHash(byte[] key, byte[] data)
Parameters
Type |
Name |
Description |
System.Byte[] |
key |
|
System.Byte[] |
data |
|
Returns
Type |
Description |
System.Byte[] |
|
GetAutorization(String, String, String, String)
Returns authorization header content
Declaration
public string GetAutorization(string accessKey, string scope, string signedHeaders, string signature)
Parameters
Type |
Name |
Description |
System.String |
accessKey |
|
System.String |
scope |
|
System.String |
signedHeaders |
|
System.String |
signature |
|
Returns
Type |
Description |
System.String |
|
GetCanonicalRequest(String, Uri, IDictionary<String, String>, IDictionary<String, String>, String)
Returns string representing S3V4 call in canonized form
Declaration
public static string GetCanonicalRequest(string method, Uri uri, IDictionary<string, string> headers, IDictionary<string, string> queryParameters = null, string hashedPayload = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
Parameters
Type |
Name |
Description |
System.String |
method |
|
System.Uri |
uri |
|
System.Collections.Generic.IDictionary<System.String, System.String> |
headers |
|
System.Collections.Generic.IDictionary<System.String, System.String> |
queryParameters |
|
System.String |
hashedPayload |
|
Returns
Type |
Description |
System.String |
|
GetScope(DateTime, String)
Returns "scope" (S3 V4 term) of given region
Declaration
public string GetScope(DateTime date, string region)
Parameters
Type |
Name |
Description |
System.DateTime |
date |
|
System.String |
region |
|
Returns
Type |
Description |
System.String |
|
GetScopedSigningKey(String, DateTime, String)
Calculates signing key for given secret, timestamp and region
Declaration
public byte[] GetScopedSigningKey(string secretKey, DateTime date, string region)
Parameters
Type |
Name |
Description |
System.String |
secretKey |
|
System.DateTime |
date |
|
System.String |
region |
|
Returns
Type |
Description |
System.Byte[] |
|
GetStringToSign(DateTime, String, String, String)
Returns string which must be signed
Declaration
public string GetStringToSign(DateTime date, string region, string canonicalRequestStr, string scope)
Parameters
Type |
Name |
Description |
System.DateTime |
date |
|
System.String |
region |
|
System.String |
canonicalRequestStr |
|
System.String |
scope |
|
Returns
Type |
Description |
System.String |
|
Extension Methods