Table of Contents

Namespace Amazon.Runtime.Internal.Util

Classes

AESDecryptionStream

A wrapper stream that decrypts the base stream using AES algorithm as it is being read.

AESEncryptionPutObjectStream

A wrapper stream that encrypts the base stream using AES algorithm as it is being read.

AESEncryptionUploadPartStream

A wrapper stream that encrypts the base stream as it is being read.

AsyncHelpers

This is a utility class to be used in last resort for code paths that are synchronous but need to call an asynchronous method. This should never be used for methods that are called at high volume as this utility class has a performance cost. For example this class was added for the refreshing credentials like Cognito which would need to use this about once an hour.

CachingWrapperStream

A stream which caches the contents of the underlying stream as it reads it.

ChecksumUtils

Utilities for working with the checksums used to validate request/response integrity

ChunkedUploadWrapperStream

Stream wrapper that double-buffers from a wrapped stream and returns the buffered content as a series of signed 'chunks' for the AWS4 ('Signature V4') protocol or the asymmetric Sigv4 (Sigv4a) protocol.

CrtCrc32

Implementation of CRC32, using the SDK-wide instance of AWS Common Runtime's checksums

CrtCrc32c

Implementation of CRC32C, using the SDK-wide instance of AWS Common Runtime's checksums

DecryptStream

A wrapper stream that decrypts the base stream as it is being read.

DecryptStream<T>

A wrapper stream that decrypts the base stream as it is being read.

DecryptionWrapper
DecryptionWrapperAES
EncryptStream

A wrapper stream that encrypts the base stream as it is being read.

EncryptStream<T>

A wrapper stream that encrypts the base stream as it is being read.

EncryptUploadPartStream

A wrapper stream that encrypts the base stream as it is being read.

EncryptUploadPartStream<T>

A wrapper stream that encrypts the base stream as it is being read.

EncryptionWrapper
EncryptionWrapperAES
Extensions
GuidUtils

Utilities for dealing with Guids

HashStream

A wrapper stream that calculates a hash of the base stream as it is being read. The calculated hash is only available after the stream is closed or CalculateHash is called. After calling CalculateHash, any further reads on the streams will not change the CalculatedHash. If an ExpectedHash is specified and is not equal to the calculated hash, Close or CalculateHash methods will throw an AmazonClientException. If CalculatedHash is calculated for only the portion of the stream that is read.

HashStream<T>

A wrapper stream that calculates a hash of the base stream as it is being read or written. The calculated hash is only available after the stream is closed or CalculateHash is called. After calling CalculateHash, any further reads on the streams will not change the CalculatedHash. If an ExpectedHash is specified and is not equal to the calculated hash, Close or CalculateHash methods will throw an AmazonClientException. If base stream's position is not 0 or HashOnReads is true and the entire stream is not read, the CalculatedHash will be set to an empty byte array and comparison to ExpectedHash will not be made.

Hashing
HashingWrapper
HashingWrapperCRC32
HashingWrapperCRC32C
HashingWrapperMD5
HashingWrapperSHA1
HashingWrapperSHA256
HostPrefixUtils

Utilities for validating label values for host prefix templates

IniFile

Provides read/write access to a file in the INI format.

This class is not threadsafe.

LogMessage

A single logged message

Logger

This is a dynamic wrapper around log4net so we can avoid log4net being required to be distributed with the SDK.

LruCache<TKey, TValue>

a size-limited cache of key value pairs

Once the maximum size has been reached, the least recently used pairs will be evicted to make room for any new items.

LruListItem<TKey, TValue>

Item to be stored in the LruList linked list structure.

LruList<TKey, TValue>

Helper class to support LruCache. Does not implement the error checking and synchronization that would be necessary for it to stand alone.

MD5Stream

A wrapper stream that calculates an MD5 hash of the base stream as it is being read or written. The calculated hash is only available after the stream is closed or CalculateHash is called. After calling CalculateHash, any further reads on the streams will not change the CalculatedHash. If an ExpectedHash is specified and is not equal to the calculated hash, Close or CalculateHash methods will throw an AmazonClientException. If base stream's position is not 0 or HashOnReads is true and the entire stream is not read, the CalculatedHash will be set to an empty byte array and comparison to ExpectedHash will not be made.

MetricError
NonDisposingWrapperStream

A wrapper stream which supresses disposal of the underlying stream.

OptimisticLockedTextFile

Provides line-based read/write access to a file. The file can be read into memory, changed, then written back to disk. When the file is persisted back to disk, an optimistic concurrency check is performed to make sure the file hasn't changed since it was originally read.

This class is not threadsafe.

PartialReadOnlyWrapperStream

Partial wrapper stream that only supports reading

PartialWrapperStream

This class is used to wrap a stream for a particular segment of a stream. It makes that segment look like you are reading from beginning to end of the stream.

ProfileIniFile

Subclass of IniFile that allows INI sections to be read with the profile keyword in front of the section name.

ReadOnlyWrapperStream

Wrapper stream that only supports reading

RequestMetrics
S3Uri

Uri wrapper that can parse out information (bucket, key, region, style) from an S3 URI.

SdkCache

SDK-wide cache. Provides access to caches specific to a particular set of credentials and target region.

StringUtils

Utilities for converting objects to strings. Used by the marshaller classes.

Timing

Timing information for a metric

TimingEvent

Timing event, stops timing of a metric when disposed

TrailingHeadersWrapperStream

Stream wrapper to append trailing headers, including an optional rolling checksum for a request with an unsigned payload.

WebProxy

Custom WebProxy implementation that creates a webproxy based on user inputs(Host name and port number)

WrapperStream

A wrapper stream.

XMLEncodedStringWriter

Overridden StringWriter that escapes additional characters in XML requests for consistency across AWS SDKs. There isn't an XmlWriterSettings.NewLineHandling value which matches the desired encoding, so this replaces the characters that NewLineHandling.Entitize doesn't encode

Interfaces

ICache

Interface for a non-generic cache.

ICache<TKey, TValue>

Interface for a generic cache.

IDecryptionWrapper
IEncryptionWrapper
IHashingWrapper
ILogger