SigV4 v1.2.0
SigV4 Library for AWS Authentication
sigv4_config_defaults.h File Reference

The default values for configuration macros used by the SigV4 Library. More...

Go to the source code of this file.

Macros

#define SIGV4_DO_NOT_USE_CUSTOM_CONFIG
 Define this macro to build the AWS IoT SigV4 Library without the custom config file sigv4_config.h. More...
 
#define SIGV4_PROCESSING_BUFFER_LENGTH   1024U
 Macro defining the size of the internal buffer used for incremental canonicalization and hashing. More...
 
#define SIGV4_MAX_HTTP_HEADER_COUNT   100U
 Macro defining the maximum number of headers in the request, used to assist the library in sorting header fields during canonicalization. More...
 
#define SIGV4_MAX_QUERY_PAIR_COUNT   100U
 Macro defining the maximum number of query key/value pairs, used to assist the library in sorting query keys during canonicalization. More...
 
#define SIGV4_WORST_CASE_SORT_STACK_SIZE   14U
 Macro used to compute the worst-case stack size when sorting elements associated with SIGV4_MAX_QUERY_PAIR_COUNT or SIGV4_MAX_HTTP_HEADER_COUNT. Suppose the max of the two aforementioned macros is X, then the macro below must be set to 2 * ceiling(log(X)/log(2)) where ceiling rounds up the ones digit if the decimal is greater than 0. More...
 
#define SIGV4_HASH_MAX_BLOCK_LENGTH   64U
 Macro indicating the largest block size of any hashing algorithm used for SigV4 authentication i.e. the maximum of all values specified for the hashBlockLen in SigV4CryptoInterface_t. For example, using SHA-512 would require this value to be at least 128. More...
 
#define SIGV4_HASH_MAX_DIGEST_LENGTH   32U
 Macro defining the maximum digest length of the specified hash function, used to determine the length of the output buffer. More...
 
#define SIGV4_USE_CANONICAL_SUPPORT   1
 Macro to statically enable support for canonicalizing the URI, headers, and query in this library. More...
 
#define LogError(message)
 Macro called by the SigV4 library for logging "Error" level messages. More...
 
#define LogWarn(message)
 Macro called by the the SigV4 library for logging "Warning" level messages. More...
 
#define LogInfo(message)
 Macro called by the the SigV4 library for logging "Info" level messages. More...
 
#define LogDebug(message)
 Macro called by the the SigV4 library for logging "Debug" level messages. More...
 

Detailed Description

The default values for configuration macros used by the SigV4 Library.

Note
This file should NOT be modified. If custom values are needed for any configuration macros, a sigv4_config.h file should be provided to the SigV4 Library to override the default values defined in this file. To use the custom config file, the preprocessor macro SIGV4_DO_NOT_USE_CUSTOM_CONFIG must NOT be set.

Macro Definition Documentation

◆ SIGV4_DO_NOT_USE_CUSTOM_CONFIG

#define SIGV4_DO_NOT_USE_CUSTOM_CONFIG

Define this macro to build the AWS IoT SigV4 Library without the custom config file sigv4_config.h.

Without the custom config, the the AWS IoT SigV4 Library builds with default values of config macros defined in the sigv4_config_defaults.h file.

If a custom config file is provided, then SIGV4_DO_NOT_USE_CUSTOM_CONFIG must not be defined.

Default value: SIGV4_DO_NOT_USE_CUSTOM_CONFIG is not defined by default and the library expects a sigv4_config.h file.

◆ SIGV4_PROCESSING_BUFFER_LENGTH

#define SIGV4_PROCESSING_BUFFER_LENGTH   1024U

Macro defining the size of the internal buffer used for incremental canonicalization and hashing.

A buffer of this size in bytes is declared on the stack. It should be be large enough for the digest output of the specified hash function.

Possible values: Any positive 32 bit integer.
Default value: 1024

◆ SIGV4_MAX_HTTP_HEADER_COUNT

#define SIGV4_MAX_HTTP_HEADER_COUNT   100U

Macro defining the maximum number of headers in the request, used to assist the library in sorting header fields during canonicalization.

This macro should be updated if the number of request headers the application wishes to sign is higher or lower than the default value (100).

Possible values: Any positive 32 bit integer.
Default value: 100

◆ SIGV4_MAX_QUERY_PAIR_COUNT

#define SIGV4_MAX_QUERY_PAIR_COUNT   100U

Macro defining the maximum number of query key/value pairs, used to assist the library in sorting query keys during canonicalization.

This macro should be updated if the number of query key/value pairs the application wishes to sign is higher or lower than the default value (100).

Possible values: Any positive 32 bit integer.
Default value: 100

◆ SIGV4_WORST_CASE_SORT_STACK_SIZE

#define SIGV4_WORST_CASE_SORT_STACK_SIZE   14U

Macro used to compute the worst-case stack size when sorting elements associated with SIGV4_MAX_QUERY_PAIR_COUNT or SIGV4_MAX_HTTP_HEADER_COUNT. Suppose the max of the two aforementioned macros is X, then the macro below must be set to 2 * ceiling(log(X)/log(2)) where ceiling rounds up the ones digit if the decimal is greater than 0.

Note
If updating SIGV4_MAX_QUERY_PAIR_COUNT or SIGV4_MAX_HTTP_HEADER_COUNT, be sure to update this value based on the formula above.

◆ SIGV4_HASH_MAX_BLOCK_LENGTH

#define SIGV4_HASH_MAX_BLOCK_LENGTH   64U

Macro indicating the largest block size of any hashing algorithm used for SigV4 authentication i.e. the maximum of all values specified for the hashBlockLen in SigV4CryptoInterface_t. For example, using SHA-512 would require this value to be at least 128.

Possible values: Any positive 32 bit integer.
Default value: 64

◆ SIGV4_HASH_MAX_DIGEST_LENGTH

#define SIGV4_HASH_MAX_DIGEST_LENGTH   32U

Macro defining the maximum digest length of the specified hash function, used to determine the length of the output buffer.

This macro should be updated if using a hashing algorithm other than SHA256 (32 byte digest length). For example, using SHA512 would require this value to be at least 64.

Possible values: Any positive 32 bit integer.
Default value: 32

◆ SIGV4_USE_CANONICAL_SUPPORT

#define SIGV4_USE_CANONICAL_SUPPORT   1

Macro to statically enable support for canonicalizing the URI, headers, and query in this library.

Set this to one to enable the encoding functions used to create the canonical request.

Possible values: 0 or 1
Default value: 1

◆ LogError

#define LogError (   message)

Macro called by the SigV4 library for logging "Error" level messages.

To enable error level logging in the SigV4 library, this macro should be mapped to the application-specific logging implementation that supports error logging.

Note
This logging macro is called in the SigV4 library with parameters wrapped in double parentheses to be ISO C89/C90 standard compliant. For a reference POSIX implementation of the logging macros, refer to sigv4_config.h files, and the logging-stack in demos folder of the [AWS IoT Embedded C SDK repository](https://github.com/aws/aws-iot-device-sdk-embedded-C).

Default value: Error logging is turned off, and no code is generated for calls to the macro in the SigV4 library on compilation.

◆ LogWarn

#define LogWarn (   message)

Macro called by the the SigV4 library for logging "Warning" level messages.

To enable warning level logging in the SigV4 library, this macro should be mapped to the application-specific logging implementation that supports warning logging.

Note
This logging macro is called in the SigV4 library with parameters wrapped in double parentheses to be ISO C89/C90 standard compliant. For a reference POSIX implementation of the logging macros, refer to sigv4_config.h files, and the logging-stack in demos folder of the [AWS IoT Embedded C SDK repository](https://github.com/aws/aws-iot-device-sdk-embedded-C).

Default value: Warning logs are turned off, and no code is generated for calls to the macro in the SigV4 library on compilation.

◆ LogInfo

#define LogInfo (   message)

Macro called by the the SigV4 library for logging "Info" level messages.

To enable info level logging in the SigV4 library, this macro should be mapped to the application-specific logging implementation that supports info logging.

Note
This logging macro is called in the SigV4 library with parameters wrapped in double parentheses to be ISO C89/C90 standard compliant. For a reference POSIX implementation of the logging macros, refer to sigv4_config.h files, and the logging-stack in demos folder of the [AWS IoT Embedded C SDK repository](https://github.com/aws/aws-iot-device-sdk-embedded-C).

Default value: Info logging is turned off, and no code is generated for calls to the macro in the SigV4 library on compilation.

◆ LogDebug

#define LogDebug (   message)

Macro called by the the SigV4 library for logging "Debug" level messages.

To enable debug level logging from SigV4 library, this macro should be mapped to the application-specific logging implementation that supports debug logging.

Note
This logging macro is called in the SigV4 library with parameters wrapped in double parentheses to be ISO C89/C90 standard compliant. For a reference POSIX implementation of the logging macros, refer to sigv4_config.h files, and the logging-stack in demos folder of the [AWS IoT Embedded C SDK repository](https://github.com/aws/aws-iot-device-sdk-embedded-C).

Default value: Debug logging is turned off, and no code is generated for calls to the macro in the SigV4 library on compilation.