93 lines
2.9 KiB
Plaintext
93 lines
2.9 KiB
Plaintext
/**
|
|
@mainpage Overview
|
|
@anchor sigv4
|
|
@brief AWS SigV4 Library
|
|
|
|
The AWS SigV4 Library is a standalone library for generating signatures
|
|
and authorization headers according to the specifications of the AWS Signature
|
|
Version 4 signing process. This library aids applications in sending direct
|
|
HTTP requests to AWS services requiring SigV4 authentication. The library is
|
|
written in C and designed to be compliant with ISO C90 and MISRA C and has no
|
|
dependencies on any additional libraries other than the standard C library.
|
|
|
|
@section sigv4_memory_requirements Memory Requirements
|
|
@brief Memory requirements of the SigV4 Library.
|
|
|
|
@include{doc} size_table.md
|
|
|
|
@section sigv4_design Design
|
|
@brief SigV4 Library Design
|
|
|
|
<h3>Memory Usage</h3>
|
|
<p>
|
|
All functions in the SigV4 library operate only on the buffers provided and use only
|
|
local variables on the stack.
|
|
</p>
|
|
|
|
<h3>Compliance & Coverage</h3>
|
|
|
|
<p>
|
|
The SIGV4 library is designed to be compliant with ISO C90 and MISRA C:2012.
|
|
All functions are written to have low complexity scores. Unit tests and CBMC
|
|
proofs are written to cover every path of execution and achieve 100% branch
|
|
coverage.
|
|
</p>
|
|
|
|
The diagram below demonstrates the happy path an application can take to use
|
|
the SigV4 library to interact with AWS Services that support SigV4 authentication via HTTP requests.
|
|
|
|
@image html sigv4_design.png "SigV4 Library Usage diagram" width=90%
|
|
|
|
*/
|
|
|
|
/**
|
|
@page sigv4_config Configurations
|
|
@brief Configurations of the AWS SigV4 Library.
|
|
<!-- @par configpagestyle allows the @section titles to be styled according to
|
|
style.css -->
|
|
@par configpagestyle
|
|
|
|
Configuration settings are C pre-processor constants. They can be set with a
|
|
`\#define` in the config file (`sigv4_config.h`) or by using a
|
|
compiler option such as -D in gcc.
|
|
|
|
@section SIGV4_DO_NOT_USE_CUSTOM_CONFIG
|
|
@copydoc SIGV4_DO_NOT_USE_CUSTOM_CONFIG
|
|
|
|
@section sigv4_logerror LogError
|
|
@copydoc LogError
|
|
|
|
@section sigv4_logwarn LogWarn
|
|
@copydoc LogWarn
|
|
|
|
@section sigv4_loginfo LogInfo
|
|
@copydoc LogInfo
|
|
|
|
@section sigv4_logdebug LogDebug
|
|
@copydoc LogDebug
|
|
*/
|
|
|
|
/**
|
|
@page sigv4_functions Functions
|
|
@brief Primary functions of the AWS SigV4 library:<br><br>
|
|
@subpage sigV4_generateHTTPAuthorization_function <br>
|
|
@subpage sigV4_awsIotDateToIso8601_function <br>
|
|
|
|
@page sigV4_generateHTTPAuthorization_function SigV4_GenerateHTTPAuthorization
|
|
@snippet sigv4.h declare_sigV4_generateHTTPAuthorization_function
|
|
@copydoc SigV4_GenerateHTTPAuthorization
|
|
|
|
@page sigV4_awsIotDateToIso8601_function SigV4_AwsIotDateToIso8601
|
|
@snippet sigv4.h declare_sigV4_awsIotDateToIso8601_function
|
|
@copydoc SigV4_AwsIotDateToIso8601
|
|
*/
|
|
|
|
<!-- We do not use doxygen ALIASes here because there have been issues in the past versions with "^^" newlines within the alias definition. -->
|
|
/**
|
|
@defgroup sigv4_enum_types Enumerated Types
|
|
@brief Enumerated types of the SigV4 library
|
|
|
|
@defgroup sigv4_struct_types Struct Types
|
|
@brief Struct types of the SigV4 library
|
|
*/
|