libqtaws
0.1.0
UnofficialAWSlibraryforQt-InternalDocumentation
|
Private implementation for AwsSignatureV2. More...
Public Member Functions | |
AwsSignatureV2Private (AwsSignatureV2 *const q) | |
Constructs a new AwsSignatureV2Private object. More... | |
void | adornRequest (QNetworkRequest &request, const AwsAbstractCredentials &credentials) const |
Add AWS Signature Version 2 adornments to an AWS request. More... | |
QByteArray | canonicalRequest (const QNetworkAccessManager::Operation operation, const QUrl &url) const |
Create an AWS V2 Signature canonical request. More... | |
QByteArray | signatureMethod (const QCryptographicHash::Algorithm algorithm) const |
Create an AWS V2 Signature method designation. More... | |
![]() | |
virtual | ~AwsAbstractSignaturePrivate () |
AwsAbstractSignaturePrivate destructor. More... | |
AwsAbstractSignaturePrivate (AwsAbstractSignature *const q) | |
Constructs a new AwsAbstractSignaturePrivate object. More... | |
QString | canonicalPath (const QUrl &url) const |
Create an AWS Signature canonical path. More... | |
QByteArray | canonicalQuery (const QUrlQuery &query) const |
Create an AWS Signature canonical query. More... | |
QString | httpMethod (const QNetworkAccessManager::Operation operation) const |
Create an AWS Signature request method string. More... | |
bool | setQueryItem (QUrlQuery &query, const QString &key, const QString &value, const bool warnOnNonIdenticalDuplicate=true) const |
Set a query item, checking for existing values first. More... | |
Public Attributes | |
QCryptographicHash::Algorithm | hashAlgorithm |
Hash algorithm to use when signing. | |
Friends | |
class | TestAwsSignatureV2 |
Additional Inherited Members | |
![]() | |
AwsAbstractSignature *const | q_ptr |
Internal q-pointer. | |
Private implementation for AwsSignatureV2.
Definition at line 34 of file awssignaturev2_p.h.
AwsSignatureV2Private::AwsSignatureV2Private | ( | AwsSignatureV2 *const | q | ) |
Constructs a new AwsSignatureV2Private object.
q | Pointer to this object's public AwsSignatureV2 instance. |
Definition at line 105 of file awssignaturev2.cpp.
void AwsSignatureV2Private::adornRequest | ( | QNetworkRequest & | request, |
const AwsAbstractCredentials & | credentials | ||
) | const |
Add AWS Signature Version 2 adornments to an AWS request.
In addition to service-specific request parameters, Amazon requires that version 2 signatures contain a number of common query parameters. This functions adds those query parameters to request if they're not already present.
The query parameters added by this function, as required by Amazon, are:
AWSAccessKeyId
- set to credentials.accessKeyId().SignatureMethod
- set to HMAC-SHA1
or HMAC-SHA256
.SignatureVersion
- set to 2
.Timestamp
- set to a current UTC timestamp in an ISO 8601 format, like 2013-10-30T12:34:56Z
.request | Request to adorn. |
credentials | Credentials to use when adorning request. |
Definition at line 132 of file awssignaturev2.cpp.
References AwsAbstractCredentials::accessKeyId(), hashAlgorithm, AwsAbstractSignaturePrivate::setQueryItem(), and signatureMethod().
QByteArray AwsSignatureV2Private::canonicalRequest | ( | const QNetworkAccessManager::Operation | operation, |
const QUrl & | url | ||
) | const |
Create an AWS V2 Signature canonical request.
This function creates a canonical representation of an AWS request as defined by Amazon's V2 signature specification.
For example, for the following HTTP GET
request:
https://elasticmapreduce.amazonaws.com?Action=DescribeJobFlows&Version=2009-03-31&AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&SignatureVersion=2SignatureMethod=HmacSHA256Timestamp=2011-10-03T15%3A19%3A30
this function will return the following canonical form:
GET elasticmapreduce.amazonaws.com / AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Action=DescribeJobFlows&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2011-10-03T15%3A19%3A30&Version=2009-03-31
operation | The HTTP method being requested. |
url | The URL being request. |
Definition at line 184 of file awssignaturev2.cpp.
References AwsAbstractSignaturePrivate::canonicalPath(), AwsAbstractSignaturePrivate::canonicalQuery(), and AwsAbstractSignaturePrivate::httpMethod().
QByteArray AwsSignatureV2Private::signatureMethod | ( | const QCryptographicHash::Algorithm | algorithm | ) | const |
Create an AWS V2 Signature method designation.
This function returns a signature method designation, as defined by Amazon, for use with V2 signatures.
For example, if the algorith is QCryptographicHash::Sha256
, this function will return HmacSHA256
.
algorithm | The hash algorithm to get the canonical designation for. |
Definition at line 210 of file awssignaturev2.cpp.
Referenced by adornRequest().