Show / Hide Table of Contents

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()
Namespace: NFX.IO.FileSystem.S3.V4.S3V4Sign
Assembly: NFX.Web.dll
Syntax
public class S3V4Signer

Constructors

S3V4Signer()

Declaration
public S3V4Signer()

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

Call access key

Declaration
public string AccessKey { set; }
Property Value
Type Description
System.String

Bucket

Call bucket

Declaration
public string Bucket { set; }
Property Value
Type Description
System.String

ContentStream

Call content stream

Declaration
public Stream ContentStream { set; }
Property Value
Type Description
System.IO.Stream

Headers

Call http headers (readonly)

Declaration
public IDictionary<string, string> Headers { get; }
Property Value
Type Description
System.Collections.Generic.IDictionary<System.String, System.String>

ItemLocalPath

Call item local path

Declaration
public string ItemLocalPath { set; }
Property Value
Type Description
System.String

Method

Call method (i.e. GET)

Declaration
public string Method { set; }
Property Value
Type Description
System.String

QueryParams

Call query params

Declaration
public IDictionary<string, string> QueryParams { set; }
Property Value
Type Description
System.Collections.Generic.IDictionary<System.String, System.String>

Region

Call region

Declaration
public string Region { set; }
Property Value
Type Description
System.String

RequestDateTime

Call timestamp

Declaration
public DateTime? RequestDateTime { set; }
Property Value
Type Description
System.Nullable<System.DateTime>

SecretKey

Call secret key

Declaration
public string SecretKey { set; }
Property Value
Type Description
System.String

Uri

Call Uri (readonly)

Declaration
public Uri Uri { get; }
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

MiscUtils.NonNull<T>(T, Func<Exception>, String)
ObjectValueConversion.AsString(Object, String, ConvertErrorHandling)
ObjectValueConversion.AsNonNullOrEmptyString(Object)
ObjectValueConversion.AsLaconicConfig(Object, ConfigSectionNode, String, ConvertErrorHandling)
ObjectValueConversion.AsJSONConfig(Object, ConfigSectionNode, String, ConvertErrorHandling)
ObjectValueConversion.AsXMLConfig(Object, ConfigSectionNode, ConvertErrorHandling)
ObjectValueConversion.AsChar(Object, Char, ConvertErrorHandling)
ObjectValueConversion.AsNullableChar(Object, Nullable<Char>, ConvertErrorHandling)
ObjectValueConversion.AsByte(Object, Byte, ConvertErrorHandling)
ObjectValueConversion.AsNullableByte(Object, Nullable<Byte>, ConvertErrorHandling)
ObjectValueConversion.AsSByte(Object, SByte, ConvertErrorHandling)
ObjectValueConversion.AsNullableSByte(Object, Nullable<SByte>, ConvertErrorHandling)
ObjectValueConversion.AsShort(Object, Int16, ConvertErrorHandling)
ObjectValueConversion.AsNullableShort(Object, Nullable<Int16>, ConvertErrorHandling)
ObjectValueConversion.AsUShort(Object, UInt16, ConvertErrorHandling)
ObjectValueConversion.AsNullableUShort(Object, Nullable<UInt16>, ConvertErrorHandling)
ObjectValueConversion.AsInt(Object, Int32, ConvertErrorHandling)
ObjectValueConversion.AsNullableInt(Object, Nullable<Int32>, ConvertErrorHandling)
ObjectValueConversion.AsUInt(Object, UInt32, ConvertErrorHandling)
ObjectValueConversion.AsNullableUInt(Object, Nullable<UInt32>, ConvertErrorHandling)
ObjectValueConversion.AsLong(Object, Int64, ConvertErrorHandling)
ObjectValueConversion.AsNullableLong(Object, Nullable<Int64>, ConvertErrorHandling)
ObjectValueConversion.AsULong(Object, UInt64, ConvertErrorHandling)
ObjectValueConversion.AsNullableULong(Object, Nullable<UInt64>, ConvertErrorHandling)
ObjectValueConversion.AsDouble(Object, Double, ConvertErrorHandling)
ObjectValueConversion.AsNullableDouble(Object, Nullable<Double>, ConvertErrorHandling)
ObjectValueConversion.AsFloat(Object, Single, ConvertErrorHandling)
ObjectValueConversion.AsNullableFloat(Object, Nullable<Single>, ConvertErrorHandling)
ObjectValueConversion.AsDecimal(Object, Decimal, ConvertErrorHandling)
ObjectValueConversion.AsNullableDecimal(Object, Nullable<Decimal>, ConvertErrorHandling)
ObjectValueConversion.AsBool(Object, Boolean, ConvertErrorHandling)
ObjectValueConversion.AsNullableBool(Object, Nullable<Boolean>, ConvertErrorHandling)
ObjectValueConversion.AsGUID(Object, Guid, ConvertErrorHandling)
ObjectValueConversion.AsNullableGUID(Object, Nullable<Guid>, ConvertErrorHandling)
ObjectValueConversion.AsDateTime(Object)
ObjectValueConversion.AsDateTime(Object, DateTime, ConvertErrorHandling)
ObjectValueConversion.AsNullableDateTime(Object, Nullable<DateTime>, ConvertErrorHandling)
ObjectValueConversion.AsGDID(Object)
ObjectValueConversion.AsGDID(Object, GDID, ConvertErrorHandling)
ObjectValueConversion.AsNullableGDID(Object, Nullable<GDID>, ConvertErrorHandling)
ObjectValueConversion.AsGDIDSymbol(Object)
ObjectValueConversion.AsGDIDSymbol(Object, GDIDSymbol, ConvertErrorHandling)
ObjectValueConversion.AsNullableGDIDSymbol(Object, Nullable<GDIDSymbol>, ConvertErrorHandling)
ObjectValueConversion.AsTimeSpan(Object)
ObjectValueConversion.AsTimeSpan(Object, TimeSpan, ConvertErrorHandling)
ObjectValueConversion.AsNullableTimeSpan(Object, Nullable<TimeSpan>, ConvertErrorHandling)
ObjectValueConversion.AsEnum<TEnum>(Object, TEnum, ConvertErrorHandling)
ObjectValueConversion.AsNullableEnum<TEnum>(Object, Nullable<TEnum>, ConvertErrorHandling)
ObjectValueConversion.AsUri(Object, Uri, ConvertErrorHandling)
JSONExtensions.ToJSON(Object, JSONWritingOptions)
JSONExtensions.ToJSON(Object, TextWriter, JSONWritingOptions)
JSONExtensions.ToJSON(Object, Stream, JSONWritingOptions, Encoding)
ErlObject.ToErlObject(Object)
ErlObject.ToErlObject(Object, ErlTypeOrder, Boolean)
Back to top Copyright © 2006-2018 Agnicore Inc
Generated by DocFX