libqtaws  0.1.0
UnofficialAWSlibraryforQt-InternalDocumentation
Public Member Functions | Friends | List of all members
AwsSignatureV3 Class Reference

Implements AWS Signature Version 3. More...

Inheritance diagram for AwsSignatureV3:
Inheritance graph
[legend]
Collaboration diagram for AwsSignatureV3:
Collaboration graph
[legend]

Public Member Functions

 AwsSignatureV3 (const QCryptographicHash::Algorithm hashAlgorithm=QCryptographicHash::Sha256)
 Constructs a new AwsSignatureV3 object. More...
 
virtual void sign (const AwsAbstractCredentials &credentials, const QNetworkAccessManager::Operation operation, QNetworkRequest &request, const QByteArray &data=QByteArray()) const
 Sign an AWS request. More...
 
virtual int version () const
 AWS Signature version implemented by this class. More...
 
- Public Member Functions inherited from AwsAbstractSignature
 AwsAbstractSignature ()
 Initialises an AwsAbstractSignature object. More...
 
virtual ~AwsAbstractSignature ()
 AwsAbstractSignature destructor.
 

Friends

class TestAwsSignatureV3
 

Additional Inherited Members

- Protected Member Functions inherited from AwsAbstractSignature
 AwsAbstractSignature (AwsAbstractSignaturePrivate *const d)
 Initialises an AwsAbstractSignature object. More...
 
- Protected Attributes inherited from AwsAbstractSignature
AwsAbstractSignaturePrivate *const d_ptr
 Internal d-pointer.
 

Detailed Description

Implements AWS Signature Version 3.

This class implements both AWS3 and AWS3-HTTPS varieties.

See also
http://docs.aws.amazon.com/amazonswf/latest/developerguide/HMACAuth-swf.html (AWS3)
http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/RESTAuthentication.html (AWS3-HTTPS)

Definition at line 32 of file awssignaturev3.h.

Constructor & Destructor Documentation

AwsSignatureV3::AwsSignatureV3 ( const QCryptographicHash::Algorithm  hashAlgorithm = QCryptographicHash::Sha256)

Constructs a new AwsSignatureV3 object.

Use instances of this object to provide Version 3 signatures for AWS services.

Parameters
hashAlgorithmHash algorithm for signatures. Must be either QCryptographicHash::Sha1 or QCryptographicHash::Sha256 (default, recommended).

Definition at line 55 of file awssignaturev3.cpp.

56  : AwsAbstractSignature(new AwsSignatureV3Private(hashAlgorithm, this))
57 {
58 
59 }
Private implementation for AwsSignatureV3.
AwsAbstractSignature()
Initialises an AwsAbstractSignature object.

Member Function Documentation

void AwsSignatureV3::sign ( const AwsAbstractCredentials credentials,
const QNetworkAccessManager::Operation  operation,
QNetworkRequest &  request,
const QByteArray &  data = QByteArray() 
) const
virtual

Sign an AWS request.

Note, credentials must be valid before calling this function. So, for example, if credentials has expired, and is refreshable, it is the caller's responsibility to refresh the credentials before calling this function.

Parameters
operationThe network operation to sign request for.
requestThe network request to be signed.
credentialsThe credentials to use for signing.
dataOptional POST / PUT data to sign request for.

Implements AwsAbstractSignature.

Definition at line 61 of file awssignaturev3.cpp.

64 {
65  Q_D(const AwsSignatureV3);
66 
67  // Note, the use of a nonce value with AWS3-HTTPS is undocumented, but done by the
68  // official Java SDK, and worth copying for additional security.
69  if ((d->isHttps(request)) && (!request.hasRawHeader("x-amz-nonce"))) {
70  request.setRawHeader("x-amz-nonce", QUuid::createUuid().toByteArray().mid(1,36));
71  }
72 
73  d->setDateHeader(request);
74  d->setAuthorizationHeader(credentials, operation, request, data);
75 }
Implements AWS Signature Version 3.
int AwsSignatureV3::version ( ) const
virtual

AWS Signature version implemented by this class.

Derived classes must implement this function to report the version of the AWS Signature implemented by the class.

Returns
The AWS Signature version implemented by this class.

Implements AwsAbstractSignature.

Definition at line 77 of file awssignaturev3.cpp.

78 {
79  return 3;
80 }

The documentation for this class was generated from the following files: