summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortianmc1 <86271793+tianmc1@users.noreply.github.com>2021-11-16 14:47:02 -0800
committerGitHub <noreply@github.com>2021-11-16 14:47:02 -0800
commita483eba7d4bd7fdc0d91d23c7ae30cf85fcc35f9 (patch)
treed12f877a9f7fca3eac89cd547b151b28bf89c782
parent75639a3e8675780ae57e8b872782a8d38547ad45 (diff)
downloadfreertos-git-a483eba7d4bd7fdc0d91d23c7ae30cf85fcc35f9.tar.gz
Updated HTTP S3 download demo to show SigV4 usage (#696)
* Updated HTTP S3 download demo to show SigV4 usage * Fixed missing config in demo_config * Added dynamic sha256 payload compute * Fixed some compiler warnings * Fixed some comments * remove unused code * Spell check updates * Core check fix
-rw-r--r--.gitmodules3
-rw-r--r--FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/DemoTasks/S3DownloadHTTPExample.c1217
-rw-r--r--FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/README.md201
-rw-r--r--FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj1246
-rw-r--r--FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj.filters1595
-rw-r--r--FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/demo_config.h100
-rw-r--r--FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/sigv4_config.h94
m---------FreeRTOS-Plus/Source/AWS/sigv40
-rw-r--r--lexicon.txt25
-rw-r--r--manifest.yml7
10 files changed, 2812 insertions, 1676 deletions
diff --git a/.gitmodules b/.gitmodules
index 5bf2eae42..5a444ff52 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -58,6 +58,9 @@
[submodule "FreeRTOS/Demo/ThirdParty/Partner-Supported-Demos"]
path = FreeRTOS/Demo/ThirdParty/Partner-Supported-Demos
url = https://github.com/FreeRTOS/FreeRTOS-Partner-Supported-Demos
+[submodule "FreeRTOS-Plus/Source/AWS/sigv4"]
+ path = FreeRTOS-Plus/Source/AWS/sigv4
+ url = https://github.com/aws/SigV4-for-AWS-IoT-embedded-sdk.git
[submodule "FreeRTOS-Plus/Source/FreeRTOS-Cellular-Interface"]
path = FreeRTOS-Plus/Source/FreeRTOS-Cellular-Interface
url = https://github.com/FreeRTOS/Lab-Project-FreeRTOS-Cellular-Library.git
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/DemoTasks/S3DownloadHTTPExample.c b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/DemoTasks/S3DownloadHTTPExample.c
index 3ec4dbb69..8c5b66460 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/DemoTasks/S3DownloadHTTPExample.c
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/DemoTasks/S3DownloadHTTPExample.c
@@ -58,6 +58,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <stdbool.h>
/* Kernel includes. */
#include "FreeRTOS.h"
@@ -75,16 +76,55 @@
/* Common HTTP demo utilities. */
#include "http_demo_utils.h"
+/* JSON API header. */
+#include "core_json.h"
+
+/* SIGV4 API header. */
+#include "sigv4.h"
+
+/* MBEDTLS API header. */
+#include "mbedtls/sha256.h"
+
/*------------- Demo configurations -------------------------*/
-/* Check that the root CA certificate is defined. */
-#ifndef democonfigROOT_CA_PEM
- #error "Please define democonfigROOT_CA_PEM in demo_config.h."
+/* Check that the root CA certificate for S3 is defined. */
+#ifndef democonfigS3_ROOT_CA_PEM
+ #error "Please define democonfigS3_ROOT_CA_PEM in demo_config.h."
+#endif
+
+/* Check that the root CA certificate for IoT credential provider is defined. */
+#ifndef democonfigIOT_CRED_PROVIDER_ROOT_CA_PEM
+ #error "Please define democonfigIOT_CRED_PROVIDER_ROOT_CA_PEM in demo_config.h."
+#endif
+
+/* Check that AWS IOT Thing Name is defined. */
+#ifndef democonfigIOT_THING_NAME
+ #error "Please define the democonfigIOT_THING_NAME macro in demo_config.h."
+#endif
+
+/* Check that AWS IOT credential provider endpoint is defined. */
+#ifndef democonfigIOT_CREDENTIAL_PROVIDER_ENDPOINT
+ #error "Please define the democonfigIOT_CREDENTIAL_PROVIDER_ENDPOINT macro in demo_config.h."
+#endif
+
+/* Check that AWS IOT credential provider role is defined. */
+#ifndef democonfigIOT_CREDENTIAL_PROVIDER_ROLE
+ #error "Please define the democonfigIOT_CREDENTIAL_PROVIDER_ROLE macro in demo_config.h."
+#endif
+
+/* Check that AWS S3 BUCKET NAME is defined. */
+#ifndef democonfigS3_BUCKET_NAME
+ #error "Please define the democonfigS3_BUCKET_NAME macro in demo_config.h."
+#endif
+
+/* Check that AWS S3 OBJECT NAME is defined. */
+#ifndef democonfigS3_OBJECT_NAME
+ #error "Please define the democonfigS3_OBJECT_NAME macro in demo_config.h."
#endif
-/* Check that the pre-signed GET URL is defined. */
-#ifndef democonfigS3_PRESIGNED_GET_URL
- #error "Please define democonfigS3_PRESIGNED_GET_URL in demo_config.h."
+/* Check that AWS S3 BUCKET REGION is defined. */
+#ifndef democonfigS3_BUCKET_REGION
+ #error "Please define the democonfigS3_BUCKET_REGION macro in which bucket resides in demo_config.h."
#endif
/* Check that a TLS port for AWS IoT Core is defined. */
@@ -108,11 +148,6 @@
#endif
/**
- * @brief Length of the pre-signed GET URL defined in demo_config.h.
- */
-#define httpexampleS3_PRESIGNED_GET_URL_LENGTH ( sizeof( democonfigS3_PRESIGNED_GET_URL ) - 1 )
-
-/**
* @brief The length of the HTTP GET method.
*/
#define httpexampleHTTP_METHOD_GET_LENGTH ( sizeof( HTTP_METHOD_GET ) - 1 )
@@ -133,6 +168,101 @@
#define httpexampleHTTP_STATUS_CODE_PARTIAL_CONTENT 206
/**
+ * @brief Buffer Length for storing the AWS IoT Credentials retrieved from
+ * AWS IoT credential provider which includes the following:
+ * 1. Access Key ID
+ * 2. Secret Access key
+ * 3. Session Token
+ * 4. Expiration Date
+ */
+#define CREDENTIAL_BUFFER_LENGTH 1500U
+
+/**
+ * @brief AWS Service name to send HTTP request using SigV4 library.
+ */
+#define AWS_S3_SERVICE_NAME "s3"
+
+/**
+ * @brief AWS S3 Endpoint.
+ */
+#define AWS_S3_ENDPOINT \
+ democonfigS3_BUCKET_NAME "." AWS_S3_SERVICE_NAME "." \
+ democonfigS3_BUCKET_REGION ".amazonaws.com"
+
+/**
+ * @brief AWS S3 URI PATH.
+ */
+#define AWS_S3_URI_PATH \
+ "/" democonfigS3_OBJECT_NAME
+
+/**
+ * @brief The URI path for HTTP requests to AWS IoT Credential provider.
+ */
+#define AWS_IOT_CREDENTIAL_PROVIDER_URI_PATH \
+ "/role-aliases/" \
+ democonfigIOT_CREDENTIAL_PROVIDER_ROLE "/credentials"
+
+/**
+ * @brief HTTP header name for specifying the IOT Thing resource name in request to AWS S3.
+ */
+#define AWS_IOT_THING_NAME_HEADER_FIELD "x-amz-iot-thing-name"
+
+/**
+ * @brief Field name of the HTTP date header to read from the AWS IOT credential provider server response.
+ */
+#define AWS_IOT_CRED_PROVIDER_RESPONSE_DATE_HEADER "date"
+
+/**
+ * @brief Field name of the HTTP Authorization header to add to the request headers.
+ */
+#define SIGV4_AUTH_HEADER_FIELD_NAME "Authorization"
+
+/**
+ * @brief IS8601 formatted date length.
+ */
+#define SIGV4_ISO_STRING_LEN 16U
+
+/**
+ * @brief Length of AWS HTTP Authorization header value generated using SigV4 library.
+ */
+#define AWS_HTTP_AUTH_HEADER_VALUE_LEN 2048U
+
+/**
+ * @brief Length in bytes of hex encoded hash digest.
+ */
+#define HEX_ENCODED_SHA256_HASH_DIGEST_LENGTH ( ( ( uint16_t ) 64 ) )
+
+/**
+ * @brief Length in bytes of SHA256 hash digest.
+ */
+#define SHA256_HASH_DIGEST_LENGTH ( HEX_ENCODED_SHA256_HASH_DIGEST_LENGTH / 2 )
+
+/**
+ * @brief Access Key Id key to be searched in the IoT credentials response.
+ */
+#define CREDENTIALS_RESPONSE_ACCESS_KEY_ID_KEY "credentials.accessKeyId"
+
+/**
+ * @brief Secret Access key to be searched in the IoT credentials response.
+ */
+#define CREDENTIALS_RESPONSE_SECRET_ACCESS_KEY "credentials.secretAccessKey"
+
+/**
+ * @brief Session Token key to be searched in the IoT credentials response.
+ */
+#define CREDENTIALS_RESPONSE_SESSION_TOKEN_KEY "credentials.sessionToken"
+
+/**
+ * @brief Expiration Date key to be searched in the IoT credentials response.
+ */
+#define CREDENTIALS_RESPONSE_EXPIRATION_DATE_KEY "credentials.expiration"
+
+/**
+ * @brief Represents empty payload for HTTP GET request sent to AWS S3.
+ */
+#define S3_REQUEST_EMPTY_PAYLOAD ""
+
+/**
* @brief The maximum number of times to run the loop in this demo.
*
* @note The demo loop is re-run only if the demo fails initially. Once the demo
@@ -171,38 +301,58 @@ struct NetworkContext
static uint8_t ucUserBuffer[ democonfigUSER_BUFFER_LENGTH ];
/**
- * @brief Header data sent as part of an HTTP request to the server.
+ * @brief Configurations of the initial request headers that are passed to
+ * #HTTPClient_InitializeRequestHeaders.
*/
-static HTTPRequestHeaders_t xRequestHeaders;
+
/**
- * @brief Configurations of the initial request headers that are passed to
- * #HTTPClient_InitializeRequestHeaders.
+ * @brief The location of the path within the pre-signed URL.
*/
-static HTTPRequestInfo_t xRequestInfo;
+static const char * pcRequestURI;
/**
- * @brief Response returned from the HTTP server.
+ * @brief mbedTLS Hash Context passed to SigV4 cryptointerface for generating the hash digest.
*/
-static HTTPResponse_t xResponse;
+static mbedtls_sha256_context xHashContext = { 0 };
/**
- * @brief The host address string extracted from the pre-signed URL.
- *
- * @note httpexampleS3_PRESIGNED_GET_URL_LENGTH is set as the array length here as the
- * length of the host name string cannot exceed this value.
+ * @brief Configurations of the AWS credentials sent to sigV4 library for generating the Authorization Header.
*/
-static char cServerHost[ httpexampleS3_PRESIGNED_GET_URL_LENGTH ];
+static SigV4Credentials_t xSigvCreds = { 0 };
/**
- * @brief The length of the host address found in the pre-signed URL.
+ * @brief Buffer used in the demo for storing temporary credentials
+ * received from AWS TOT credential provider.
*/
-static size_t xServerHostLength;
+static uint8_t ucCredBuffer[ CREDENTIAL_BUFFER_LENGTH ] = { 0 };
/**
- * @brief The location of the path within the pre-signed URL.
+ * @brief Represents date in ISO8601 format used in the HTTP requests sent to AWS S3.
*/
-static const char * pcRequestURI;
+static char cDateISO8601[ SIGV4_ISO_STRING_LEN ] = { 0 };
+
+/**
+ * @brief Represents Authorization header value generated using SigV4 library.
+ */
+static char cSigv4Auth[ AWS_HTTP_AUTH_HEADER_VALUE_LEN ];
+
+/**
+ * @brief Represents Length of Authorization header value generated using SigV4 library.
+ */
+static size_t xSigv4AuthLen = AWS_HTTP_AUTH_HEADER_VALUE_LEN;
+
+/**
+ * @brief The security token retrieved from AWS IoT credential provider
+ * required for making HTTP requests to AWS S3.
+ */
+static const char * pcSecurityToken;
+
+/**
+ * @brief Length of security token retrieved from AWS IoT credential provider
+ * required for making HTTP requests to AWS S3.
+ */
+static size_t xSecurityTokenLen;
/*-----------------------------------------------------------*/
@@ -214,15 +364,54 @@ static const char * pcRequestURI;
*/
static void prvHTTPDemoTask( void * pvParameters );
+
+/**
+ * @brief Establish a HTTP connection with AWS S3 server.
+ *
+ * @param[in] pxNetworkContext The network context for communication.
+ * @param[in] pcServer Address of the server to connect to.
+ * @param[in] pxNetworkCredentials Credentials for connecting to the server.
+ *
+ * @return pdPASS on success, pdFAIL on failure.
+ */
+static BaseType_t prvConnectToServer( NetworkContext_t * pxNetworkContext,
+ const char * pcServer,
+ NetworkCredentials_t * pxNetworkCredentials );
+/**
+ * @brief Establish a HTTP connection with AWS S3 server.
+ *
+ * @param[in] pxNetworkContext The network context for communication.
+ *
+ * @return pdPASS on success, pdFAIL on failure.
+ */
+static BaseType_t prvConnectToS3Server( NetworkContext_t * pxNetworkContext );
+
+/**
+ * @brief Establish a HTTP connection with AWS IoT credential provider server.
+ *
+ * @param[in] pxNetworkContext The network context for communication.
+ *
+ * @return pdPASS on success, pdFAIL on failure.
+ */
+static BaseType_t prvConnectToIotServer( NetworkContext_t * pxNetworkContext );
+
/**
- * @brief Connect to HTTP server with reconnection retries.
+ * @brief Send a HTTP GET request with empty body and Range header.
*
- * @param[out] pxNetworkContext The output parameter to return the created
- * network context.
+ * @param[in] pxTransportInterface The transport interface for making network calls.
+ * @param[in] ulRangeStart Start byte for Range header.
+ * @param[in] ulRangeEnd End byte for Range header.
+ * @param[in] pcPath The Request-URI to the objects of interest. This string
+ * should be null-terminated.
+ * @param[out] pxResponse Response from the GET request.
*
- * @return pdPASS on successful connection; pdFAIL otherwise.
+ * @return pdPASS on success, pdFAIL on failure.
*/
-static BaseType_t prvConnectToServer( NetworkContext_t * pxNetworkContext );
+static BaseType_t prvSendS3HttpEmptyGet( const TransportInterface_t * pxTransportInterface,
+ uint32_t ulRangeStart,
+ uint32_t ulRangeEnd,
+ const char * pcPath,
+ HTTPResponse_t * pxResponse );
/**
* @brief Retrieve the size of the S3 object that is specified in pcPath.
@@ -260,6 +449,117 @@ static BaseType_t prvGetS3ObjectFileSize( size_t * pxFileSize,
static BaseType_t prvDownloadS3ObjectFile( const TransportInterface_t * pxTransportInterface,
const char * pcPath );
+/**
+ * @brief Parse the credentials retrieved from AWS IOT Credential Provider using coreJSON API.
+ *
+ * @param[in] pxResponse HTTP response which needs to be parsed to get the credentials.
+ * @param[out] pxSigvCreds Buffer passed to store the parsed credentials.
+ *
+ * @return #JSONSuccess if the credentials are parsed successfully;
+ * #JSONNullParameter if any pointer parameters are NULL;
+ * #JSONBadParameter if any of the response parameters that needs to be parsed are empty;
+ * #JSONNotFound if the key to be parsed is not in the response.
+ */
+static JSONStatus_t prvParseCredentials( HTTPResponse_t * pxResponse,
+ SigV4Credentials_t * pxSigvCreds );
+
+/**
+ * @brief Retrieve the temporary credentials from AWS IOT Credential Provider.
+ *
+ * @param[in] pxTransportInterface The transport interface for performing network send/recv operations.
+ * @param[out] pcDateISO8601 Buffer to store the ISO8601 formatted date.
+ * @param[in] xDateISO8601Len Length of the buffer provided to store ISO8601 formatted date.
+ * @param[in,out] pxResponse Response buffer to store the HTTP response received.
+ * @param[out] pxSigvCreds Buffer to store the parsed credentials.
+ *
+ * @return pdPASS on success, pdFAIL on failure.
+ */
+static BaseType_t prvGetTemporaryCredentials( TransportInterface_t * pxTransportInterface,
+ const char * pcDateISO8601,
+ size_t xDateISO8601Len,
+ HTTPResponse_t * pxResponse,
+ SigV4Credentials_t * pxSigvCreds );
+
+/**
+ * @brief Skip over request line and get the starting address of key-value pair
+ * HTTP headers in an HTTP request.
+ *
+ * @param[in] pxRequestHeaders Pointer to HTTP request headers that contains the HTTP request information.
+ * @param[out] pcStartHeaderLoc Buffer to store the start Location of the HTTP header.
+ * @param[out] pxHeadersDataLen Length of @p pStartHeaderLoc.
+ */
+static void prvGetHeaderStartLocFromHttpRequest( HTTPRequestHeaders_t * pxRequestHeaders,
+ char ** pcStartHeaderLoc,
+ size_t * pxHeadersDataLen );
+
+/**
+ * @brief Compute the SHA256 hash of input and output hex representation.
+ *
+ * @param[in] pcInputStr Input string to compute SHA256
+ * @param[in] xInputStrLen Length of `pcInputStr`.
+ * @param[out] pcHexOutput Output buffer for hex encoded SHA256 hash.
+ *
+ * @note The size of `pcHexOutput` should be at least HEX_ENCODED_SHA256_HASH_DIGEST_LENGTH.
+ */
+static void prvSha256Encode( const char * pcInputStr,
+ size_t xInputStrLen,
+ char * pcHexOutput );
+
+/**
+ * @brief Application-defined Hash Initialization function provided
+ * to the SigV4 library.
+ *
+ * @note Refer to SigV4CryptoInterface_t interface documentation for this function.
+ */
+static int32_t prvSha256Init( void * pxHashContext );
+
+/**
+ * @brief Application-defined Hash Update function provided to the SigV4 library.
+ *
+ * @note Refer to SigV4CryptoInterface_t interface documentation for this function.
+ */
+static int32_t prvSha256Update( void * pxHashContext,
+ const uint8_t * pucInput,
+ size_t xInputLen );
+
+/**
+ * @brief Application-defined Hash Final function provided to the SigV4 library.
+ *
+ * @note Refer to SigV4CryptoInterface_t interface documentation for this function.
+ */
+static int32_t prvSha256Final( void * pxHashContext,
+ uint8_t * pucOutput,
+ size_t xOutputLen );
+
+/**
+ * @brief CryptoInterface provided to SigV4 library for generating the hash digest.
+ */
+static SigV4CryptoInterface_t cryptoInterface =
+{
+ .hashInit = prvSha256Init,
+ .hashUpdate = prvSha256Update,
+ .hashFinal = prvSha256Final,
+ .pHashContext = &xHashContext,
+ .hashBlockLen = HEX_ENCODED_SHA256_HASH_DIGEST_LENGTH,
+ .hashDigestLen = SHA256_HASH_DIGEST_LENGTH,
+};
+
+/**
+ * @brief SigV4 parameters provided to SigV4 library by the application for generating
+ * the Authorization header.
+ */
+static SigV4Parameters_t xSigv4Params =
+{
+ .pCredentials = &xSigvCreds,
+ .pDateIso8601 = cDateISO8601,
+ .pRegion = democonfigS3_BUCKET_REGION,
+ .regionLen = sizeof( democonfigS3_BUCKET_REGION ) - 1,
+ .pService = AWS_S3_SERVICE_NAME,
+ .serviceLen = sizeof( AWS_S3_SERVICE_NAME ) - 1,
+ .pCryptoInterface = &cryptoInterface,
+ .pHttpParameters = NULL
+};
+
/*-----------------------------------------------------------*/
/*
@@ -284,18 +584,10 @@ void vStartSimpleHTTPDemo( void )
/**
* @brief Entry point of the demo.
*
- * This example, using a pre-signed URL, resolves a S3 domain, establishes a TCP
- * connection, validates the server's certificate using the root CA certificate
- * defined in the config header, and then finally performs a TLS handshake with
- * the HTTP server so that all communication is encrypted. After which, the HTTP
- * Client library API is used to download the S3 file (by sending multiple GET
- * requests, filling up the response buffer each time until all parts are
- * downloaded). If any request fails, an error code is returned.
- *
- * @note This demo requires user-generated pre-signed URLs to be pasted into
- * demo_config.h. Please use the provided script "presigned_urls_gen.py"
- * (located in located in coreHTTP_Windows_Simulator/Common) to generate these
- * URLs. For detailed instructions, see the accompanied README.md.
+ * This demo demonstrates downloading a file from S3 using SigV4 authentication.
+ * First the demo establishes a TLS connection with IoT credential provider
+ * server to obtain temporary credentials. Then it connects to S3 server and
+ * sends HTTP requests to download the file.
*
* @note This example is single-threaded.
*
@@ -308,28 +600,20 @@ static void prvHTTPDemoTask( void * pvParameters )
NetworkContext_t xNetworkContext = { 0 };
TlsTransportParams_t xTlsTransportParams = { 0 };
BaseType_t xIsConnectionEstablished = pdFALSE;
- /* HTTP Client library return status. */
- HTTPStatus_t xHTTPStatus = HTTPSuccess;
UBaseType_t uxDemoRunCount = 0UL;
+ /* Response from IoT credential provider */
+ HTTPResponse_t xCredentialResponse = { 0 };
/* The user of this demo must check the logs for any failure codes. */
BaseType_t xDemoStatus = pdPASS;
- /* The length of the path within the pre-signed URL. This variable is
- * defined in order to store the length returned from parsing the URL, but
- * it is unused. The path used for the requests in this demo needs all the
- * query information following the location of the object, to the end of the
- * S3 presigned URL. */
- size_t xPathLen = 0;
-
/* Remove compiler warnings about unused parameters. */
( void ) pvParameters;
/* Set the pParams member of the network context with desired transport. */
xNetworkContext.pParams = &xTlsTransportParams;
- LogInfo( ( "HTTP Client Synchronous S3 download demo using pre-signed URL:\n%s",
- democonfigS3_PRESIGNED_GET_URL ) );
+ LogInfo( ( "HTTP Client Synchronous S3 download demo using temporary credentials fetched from iot credential provider" ) );
/* This demo runs once, unless there are failures in the demo execution. In
* case of failures, the demo loop will run up to HTTP_MAX_DEMO_LOOP_COUNT
@@ -343,7 +627,7 @@ static void prvHTTPDemoTask( void * pvParameters )
* maximum number of attempts or the maximum timeout value is reached. The
* function returns pdFAIL if the TCP connection cannot be established with
* the server after configured number of attempts. */
- xDemoStatus = connectToServerWithBackoffRetries( prvConnectToServer,
+ xDemoStatus = connectToServerWithBackoffRetries( prvConnectToIotServer,
&xNetworkContext );
if( xDemoStatus == pdPASS )
@@ -360,29 +644,54 @@ static void prvHTTPDemoTask( void * pvParameters )
{
/* Log an error to indicate connection failure after all
* reconnect attempts are over. */
- LogError( ( "Failed to connect to HTTP server %s.",
- cServerHost ) );
+ LogError( ( "Failed to connect to IoT server: %d.", xDemoStatus ) );
}
- /******************** Download S3 Object File. **********************/
+ /******************* Get temp credential from IoT ********************/
+ if( xDemoStatus == pdPASS )
+ {
+ xCredentialResponse.pBuffer = ucCredBuffer;
+ xCredentialResponse.bufferLen = CREDENTIAL_BUFFER_LENGTH;
+ xDemoStatus = prvGetTemporaryCredentials( &xTransportInterface, cDateISO8601, sizeof( cDateISO8601 ), &xCredentialResponse, &xSigvCreds );
+ if( xDemoStatus != pdPASS )
+ {
+ LogError( ( "Failed to get credential from credential provider: %d.", xDemoStatus ) );
+ }
+ }
+ if( xIsConnectionEstablished == pdTRUE )
+ {
+ /* Close the connection with IoT credential provider. */
+ TLS_FreeRTOS_Disconnect( &xNetworkContext );
+ xIsConnectionEstablished = pdFALSE;
+ }
+ /************************ Connect to S3 server ************************/
if( xDemoStatus == pdPASS )
{
- /* Retrieve the path location from democonfigS3_PRESIGNED_GET_URL. This
- * function returns the length of the path without the query into
- * xPathLen, which is left unused in this demo. */
- xHTTPStatus = getUrlPath( democonfigS3_PRESIGNED_GET_URL,
- httpexampleS3_PRESIGNED_GET_URL_LENGTH,
- &pcRequestURI,
- &xPathLen );
+ xDemoStatus = connectToServerWithBackoffRetries( prvConnectToS3Server,
+ &xNetworkContext );
+ if( xDemoStatus != pdPASS )
+ {
+ LogError( ( "Failed to connect to AWS S3 server: %d.", xDemoStatus ) );
+ }
- xDemoStatus = ( xHTTPStatus == HTTPSuccess ) ? pdPASS : pdFAIL;
}
if( xDemoStatus == pdPASS )
{
+ memset( &xTransportInterface, 0, sizeof( xTransportInterface ) );
+ xTransportInterface.pNetworkContext = &xNetworkContext;
+ xTransportInterface.send = TLS_FreeRTOS_send;
+ xTransportInterface.recv = TLS_FreeRTOS_recv;
+ xIsConnectionEstablished = pdTRUE;
+ }
+
+ /******************** Download S3 Object File. **********************/
+
+ if( xDemoStatus == pdPASS )
+ {
xDemoStatus = prvDownloadS3ObjectFile( &xTransportInterface,
- pcRequestURI );
+ AWS_S3_URI_PATH );
}
/************************** Disconnect. *****************************/
@@ -430,63 +739,55 @@ static void prvHTTPDemoTask( void * pvParameters )
/*-----------------------------------------------------------*/
-static BaseType_t prvConnectToServer( NetworkContext_t * pxNetworkContext )
+static BaseType_t prvConnectToServer( NetworkContext_t * pxNetworkContext,
+ const char * pcServer,
+ NetworkCredentials_t * pxNetworkCredentials )
{
TlsTransportStatus_t xNetworkStatus;
- NetworkCredentials_t xNetworkCredentials = { 0 };
- BaseType_t xStatus = pdPASS;
- HTTPStatus_t xHTTPStatus = HTTPSuccess;
-
- /* The location of the host address within the pre-signed URL. */
- const char * pcAddress = NULL;
configASSERT( pxNetworkContext != NULL );
- /* Retrieve the address location and length from democonfigS3_PRESIGNED_GET_URL. */
- xHTTPStatus = getUrlAddress( democonfigS3_PRESIGNED_GET_URL,
- httpexampleS3_PRESIGNED_GET_URL_LENGTH,
- &pcAddress,
- &xServerHostLength );
+ LogInfo( ( "Establishing a TLS session with %s:%d.",
+ pcServer,
+ democonfigHTTPS_PORT ) );
- xStatus = ( xHTTPStatus == HTTPSuccess ) ? pdPASS : pdFAIL;
+ /* Attempt to create a server-authenticated TLS connection. */
+ xNetworkStatus = TLS_FreeRTOS_Connect( pxNetworkContext,
+ pcServer,
+ democonfigHTTPS_PORT,
+ pxNetworkCredentials,
+ democonfigTRANSPORT_SEND_RECV_TIMEOUT_MS,
+ democonfigTRANSPORT_SEND_RECV_TIMEOUT_MS );
- if( xStatus == pdPASS )
- {
- /* cServerHost should consist only of the host address located in
- * democonfigS3_PRESIGNED_GET_URL. */
- memcpy( cServerHost, pcAddress, xServerHostLength );
- cServerHost[ xServerHostLength ] = '\0';
-
- xNetworkCredentials.disableSni = democonfigDISABLE_SNI;
- /* Set the credentials for establishing a TLS connection. */
- xNetworkCredentials.pRootCa = ( const unsigned char * ) democonfigROOT_CA_PEM;
- xNetworkCredentials.rootCaSize = sizeof( democonfigROOT_CA_PEM );
-
- /* Establish a TLS session with the HTTP server. This example connects
- * to the server host located in democonfigPRESIGNED_GET_URL and
- * democonfigHTTPS_PORT in demo_config.h. */
- LogInfo( ( "Establishing a TLS session with %s:%d.",
- cServerHost,
- democonfigHTTPS_PORT ) );
-
- /* Attempt to create a server-authenticated TLS connection. */
- xNetworkStatus = TLS_FreeRTOS_Connect( pxNetworkContext,
- cServerHost,
- democonfigHTTPS_PORT,
- &xNetworkCredentials,
- democonfigTRANSPORT_SEND_RECV_TIMEOUT_MS,
- democonfigTRANSPORT_SEND_RECV_TIMEOUT_MS );
-
- if( xNetworkStatus != TLS_TRANSPORT_SUCCESS )
- {
- xStatus = pdFAIL;
- }
- }
+ return xNetworkStatus == TLS_TRANSPORT_SUCCESS? pdPASS : pdFAIL;
- return xStatus;
}
-/*-----------------------------------------------------------*/
+static BaseType_t prvConnectToS3Server( NetworkContext_t * pxNetworkContext )
+{
+ NetworkCredentials_t xNetworkCredentials = { 0 };
+ xNetworkCredentials.disableSni = democonfigDISABLE_SNI;
+ /* Set the credentials for establishing a TLS connection. */
+ xNetworkCredentials.pRootCa = ( uint8_t * )democonfigS3_ROOT_CA_PEM;
+ xNetworkCredentials.rootCaSize = sizeof( democonfigS3_ROOT_CA_PEM );
+
+ return prvConnectToServer( pxNetworkContext, AWS_S3_ENDPOINT, &xNetworkCredentials );
+}
+
+static BaseType_t prvConnectToIotServer( NetworkContext_t * pxNetworkContext )
+{
+ NetworkCredentials_t xNetworkCredentials = { 0 };
+ xNetworkCredentials.disableSni = democonfigDISABLE_SNI;
+ /* Set the credentials for establishing a TLS connection. */
+ xNetworkCredentials.pRootCa = ( uint8_t * )democonfigIOT_CRED_PROVIDER_ROOT_CA_PEM;
+ xNetworkCredentials.rootCaSize = sizeof( democonfigIOT_CRED_PROVIDER_ROOT_CA_PEM );
+ xNetworkCredentials.pClientCert = ( uint8_t * )democonfigCLIENT_CERTIFICATE_PEM;
+ xNetworkCredentials.clientCertSize = sizeof( democonfigCLIENT_CERTIFICATE_PEM );
+ xNetworkCredentials.pPrivateKey = ( uint8_t * )democonfigCLIENT_PRIVATE_KEY_PEM;
+ xNetworkCredentials.privateKeySize = sizeof( democonfigCLIENT_PRIVATE_KEY_PEM );
+
+ return prvConnectToServer( pxNetworkContext, democonfigIOT_CREDENTIAL_PROVIDER_ENDPOINT, &xNetworkCredentials );
+}
static BaseType_t prvGetS3ObjectFileSize( size_t * pxFileSize,
const TransportInterface_t * pxTransportInterface,
@@ -495,7 +796,8 @@ static BaseType_t prvGetS3ObjectFileSize( size_t * pxFileSize,
const char * pcPath )
{
BaseType_t xStatus = pdPASS;
- HTTPStatus_t xHTTPStatus = HTTPSuccess;
+ HTTPStatus_t xHTTPStatus;
+ HTTPResponse_t xResponse;
/* The location of the file size in pcContentRangeValStr. */
char * pcFileSizeStr = NULL;
@@ -508,98 +810,13 @@ static BaseType_t prvGetS3ObjectFileSize( size_t * pxFileSize,
configASSERT( pcHost != NULL );
configASSERT( pcPath != NULL );
- /* Initialize all HTTP Client library API structs to 0. */
- ( void ) memset( &xRequestHeaders, 0, sizeof( xRequestHeaders ) );
- ( void ) memset( &xRequestInfo, 0, sizeof( xRequestInfo ) );
- ( void ) memset( &xResponse, 0, sizeof( xResponse ) );
-
- /* Initialize the request object. */
- xRequestInfo.pHost = pcHost;
- xRequestInfo.hostLen = xHostLen;
- xRequestInfo.pMethod = HTTP_METHOD_GET;
- xRequestInfo.methodLen = sizeof( HTTP_METHOD_GET ) - 1;
- xRequestInfo.pPath = pcPath;
- xRequestInfo.pathLen = strlen( pcPath );
-
- /* Set "Connection" HTTP header to "keep-alive" so that multiple requests
- * can be sent over the same established TCP connection. This is done in
- * order to download the file in parts. */
- xRequestInfo.reqFlags = HTTP_REQUEST_KEEP_ALIVE_FLAG;
-
- /* Set the buffer used for storing request headers. */
- xRequestHeaders.pBuffer = ucUserBuffer;
- xRequestHeaders.bufferLen = democonfigUSER_BUFFER_LENGTH;
-
- /* Initialize the response object. The same buffer used for storing request
- * headers is reused here. */
- xResponse.pBuffer = ucUserBuffer;
- xResponse.bufferLen = democonfigUSER_BUFFER_LENGTH;
-
LogInfo( ( "Getting file object size from host..." ) );
- xHTTPStatus = HTTPClient_InitializeRequestHeaders( &xRequestHeaders,
- &xRequestInfo );
-
- if( xHTTPStatus != HTTPSuccess )
- {
- LogError( ( "Failed to initialize HTTP request headers: Error=%s.",
- HTTPClient_strerror( xHTTPStatus ) ) );
- xStatus = pdFAIL;
- }
-
- if( xStatus == pdPASS )
- {
- /* Add the header to get bytes=0-0. S3 will respond with a Content-Range
- * header that contains the size of the file in it. This header will
- * look like: "Content-Range: bytes 0-0/FILESIZE". The body will have a
- * single byte that we are ignoring. */
- xHTTPStatus = HTTPClient_AddRangeHeader( &xRequestHeaders, 0, 0 );
-
- if( xHTTPStatus != HTTPSuccess )
- {
- LogError( ( "Failed to add range header to request headers: Error=%s.",
- HTTPClient_strerror( xHTTPStatus ) ) );
- xStatus = pdFAIL;
- }
- }
-
- if( xStatus == pdPASS )
- {
- /* Send the request and receive the response. */
- xHTTPStatus = HTTPClient_Send( pxTransportInterface,
- &xRequestHeaders,
- NULL,
- 0,
- &xResponse,
- 0 );
-
- if( xHTTPStatus != HTTPSuccess )
- {
- LogError( ( "Failed to send HTTP GET request to %s%s: Error=%s.",
- pcHost, pcPath, HTTPClient_strerror( xHTTPStatus ) ) );
- xStatus = pdFAIL;
- }
- }
-
- if( xStatus == pdPASS )
- {
- LogDebug( ( "Received HTTP response from %s%s...",
- pcHost, pcPath ) );
- LogDebug( ( "Response Headers:\n%.*s",
- ( int32_t ) xResponse.headersLen,
- xResponse.pHeaders ) );
- LogDebug( ( "Response Body:\n%.*s\n",
- ( int32_t ) xResponse.bodyLen,
- xResponse.pBody ) );
-
- if( xResponse.statusCode != httpexampleHTTP_STATUS_CODE_PARTIAL_CONTENT )
- {
- LogError( ( "Received an invalid response from the server "
- "(Status Code: %u).",
- xResponse.statusCode ) );
- xStatus = pdFAIL;
- }
- }
+ /* Add the header to get bytes=0-0. S3 will respond with a Content-Range
+ * header that contains the size of the file in it. This header will
+ * look like: "Content-Range: bytes 0-0/FILESIZE". The body will have a
+ * single byte that we are ignoring. */
+ xStatus = prvSendS3HttpEmptyGet( pxTransportInterface, 0, 0, pcPath, &xResponse );
if( xStatus == pdPASS )
{
@@ -657,33 +874,38 @@ static BaseType_t prvGetS3ObjectFileSize( size_t * pxFileSize,
/*-----------------------------------------------------------*/
-static BaseType_t prvDownloadS3ObjectFile( const TransportInterface_t * pxTransportInterface,
- const char * pcPath )
+static BaseType_t prvSendS3HttpEmptyGet( const TransportInterface_t * pxTransportInterface,
+ uint32_t ulRangeStart,
+ uint32_t ulRangeEnd,
+ const char * pcPath,
+ HTTPResponse_t * pxResponse )
{
- /* Return value of this method. */
- BaseType_t xStatus = pdFAIL;
- HTTPStatus_t xHTTPStatus = HTTPSuccess;
-
- /* The size of the file we are trying to download in S3. */
- size_t xFileSize = 0;
-
- /* The number of bytes we want to request with in each range of the file
- * bytes. */
- size_t xNumReqBytes = 0;
- /* xCurByte indicates which starting byte we want to download next. */
- size_t xCurByte = 0;
+ BaseType_t xStatus = pdPASS;
+ HTTPStatus_t xHttpStatus;
+ SigV4Status_t xSigv4Status;
+ SigV4HttpParameters_t xSigv4HttpParams;
+
+ HTTPRequestHeaders_t xRequestHeaders = { 0 };
+ HTTPRequestInfo_t xRequestInfo = { 0 };
+
+ /* Store Signature used in AWS HTTP requests generated using SigV4 library. */
+ char * pcSignature = NULL;
+ size_t xSignatureLen = 0;
+ /* Pointer to start of key-value pair buffer in request buffer. This is
+ * used for Sigv4 signing */
+ char * pcHeaderStart;
+ size_t xHeadersLen;
+ static char cPayloadSha256[ HEX_ENCODED_SHA256_HASH_DIGEST_LENGTH ];
configASSERT( pxTransportInterface != NULL );
configASSERT( pcPath != NULL );
/* Initialize all HTTP Client library API structs to 0. */
- ( void ) memset( &xRequestHeaders, 0, sizeof( xRequestHeaders ) );
- ( void ) memset( &xRequestInfo, 0, sizeof( xRequestInfo ) );
- ( void ) memset( &xResponse, 0, sizeof( xResponse ) );
+ ( void ) memset( pxResponse, 0, sizeof( HTTPResponse_t ) );
/* Initialize the request object. */
- xRequestInfo.pHost = cServerHost;
- xRequestInfo.hostLen = xServerHostLength;
+ xRequestInfo.pHost = AWS_S3_ENDPOINT;
+ xRequestInfo.hostLen = strlen( AWS_S3_ENDPOINT );
xRequestInfo.pMethod = HTTP_METHOD_GET;
xRequestInfo.methodLen = httpexampleHTTP_METHOD_GET_LENGTH;
xRequestInfo.pPath = pcPath;
@@ -700,14 +922,189 @@ static BaseType_t prvDownloadS3ObjectFile( const TransportInterface_t * pxTransp
/* Initialize the response object. The same buffer used for storing request
* headers is reused here. */
- xResponse.pBuffer = ucUserBuffer;
- xResponse.bufferLen = democonfigUSER_BUFFER_LENGTH;
+ pxResponse->pBuffer = ucUserBuffer;
+ pxResponse->bufferLen = democonfigUSER_BUFFER_LENGTH;
+
+ xHttpStatus = HTTPClient_InitializeRequestHeaders( &xRequestHeaders,
+ &xRequestInfo );
+ if( xHttpStatus != HTTPSuccess )
+ {
+ LogError( ( "Failed initialize HTTP headers: Error=%s.",
+ HTTPClient_strerror( xHttpStatus ) ) );
+ xStatus = pdFAIL;
+ }
+
+ if( xStatus == pdPASS )
+ {
+ /* Add the X-AMZ-DATE required headers to the request. */
+ xHttpStatus = HTTPClient_AddHeader( &xRequestHeaders,
+ SIGV4_HTTP_X_AMZ_DATE_HEADER,
+ sizeof( SIGV4_HTTP_X_AMZ_DATE_HEADER ) - 1,
+ cDateISO8601,
+ SIGV4_ISO_STRING_LEN );
+ if( xHttpStatus != HTTPSuccess )
+ {
+ LogError( ( "Failed to add X-AMZ-DATE to request headers: Error=%s.",
+ HTTPClient_strerror( xHttpStatus ) ) );
+ xStatus = pdFAIL;
+ }
+ }
+
+ if( xStatus == pdPASS )
+ {
+ /* S3 requires the security token as part of the canonical headers. */
+ xHttpStatus = HTTPClient_AddHeader( &xRequestHeaders,
+ SIGV4_HTTP_X_AMZ_SECURITY_TOKEN_HEADER,
+ sizeof( SIGV4_HTTP_X_AMZ_SECURITY_TOKEN_HEADER ) - 1,
+ pcSecurityToken,
+ xSecurityTokenLen );
+ if( xHttpStatus != HTTPSuccess )
+ {
+ LogError( ( "Failed to add X-AMZ-SECURITY-TOKEN to request headers: Error=%s.",
+ HTTPClient_strerror( xHttpStatus ) ) );
+ xStatus = pdFAIL;
+ }
+ }
+
+ if( xStatus == pdPASS )
+ {
+ /* Add Range header */
+ xHttpStatus = HTTPClient_AddRangeHeader( &xRequestHeaders,
+ ulRangeStart,
+ ulRangeEnd );
+ if( xHttpStatus != HTTPSuccess )
+ {
+ LogError( ( "Failed to add range to request headers: Error=%s.",
+ HTTPClient_strerror( xHttpStatus ) ) );
+ xStatus = pdFAIL;
+ }
+ }
+
+ if( xStatus == pdPASS )
+ {
+ /* Add the SHA256 of an empty payload. */
+ prvSha256Encode( S3_REQUEST_EMPTY_PAYLOAD, sizeof(S3_REQUEST_EMPTY_PAYLOAD) - 1, cPayloadSha256 );
+ xHttpStatus = HTTPClient_AddHeader( &xRequestHeaders,
+ SIGV4_HTTP_X_AMZ_CONTENT_SHA256_HEADER,
+ sizeof( SIGV4_HTTP_X_AMZ_CONTENT_SHA256_HEADER ) - 1,
+ cPayloadSha256,
+ sizeof( cPayloadSha256 ) );
+ if( xHttpStatus != HTTPSuccess )
+ {
+ LogError( ( "Failed to add X-AMZ-CONTENT-SHA256-HEADER to request headers: Error=%s.",
+ HTTPClient_strerror( xHttpStatus ) ) );
+ xStatus = pdFAIL;
+ }
+ }
+
+ if( xStatus == pdPASS )
+ {
+ /* Find the start key-value pairs for sigv4 signing. */
+ prvGetHeaderStartLocFromHttpRequest( &xRequestHeaders, &pcHeaderStart, &xHeadersLen );
+
+ /* Setup the HTTP parameters. */
+ xSigv4HttpParams.pHttpMethod = xRequestInfo.pMethod;
+ xSigv4HttpParams.httpMethodLen = xRequestInfo.methodLen;
+ /* None of the requests parameters below are pre-canonicalized */
+ xSigv4HttpParams.flags = 0;
+ xSigv4HttpParams.pPath = xRequestInfo.pPath;
+ xSigv4HttpParams.pathLen = xRequestInfo.pathLen;
+ /* AWS S3 request does not require any Query parameters. */
+ xSigv4HttpParams.pQuery = NULL;
+ xSigv4HttpParams.queryLen = 0;
+ xSigv4HttpParams.pHeaders = pcHeaderStart;
+ xSigv4HttpParams.headersLen = xHeadersLen;
+ xSigv4HttpParams.pPayload = S3_REQUEST_EMPTY_PAYLOAD;
+ xSigv4HttpParams.payloadLen = sizeof( S3_REQUEST_EMPTY_PAYLOAD ) - 1U;
+
+ /* Initializing sigv4Params with Http parameters required for the HTTP request. */
+ xSigv4Params.pHttpParameters = &xSigv4HttpParams;
+
+ /* Generate HTTP Authorization header using SigV4_GenerateHTTPAuthorization API. */
+ xSigv4Status = SigV4_GenerateHTTPAuthorization( &xSigv4Params, cSigv4Auth, &xSigv4AuthLen, &pcSignature, &xSignatureLen );
+
+ if( xSigv4Status != SigV4Success )
+ {
+ LogError( ( "Failed to generate HTTP AUTHORIZATION Header: %d", xSigv4Status ) );
+ xStatus = pdFAIL;
+ }
+ }
+
+ if( xStatus == pdPASS )
+ {
+ /* Add the authorization header to the HTTP request headers. */
+ xHttpStatus = HTTPClient_AddHeader( &xRequestHeaders,
+ SIGV4_AUTH_HEADER_FIELD_NAME,
+ sizeof( SIGV4_AUTH_HEADER_FIELD_NAME ) - 1,
+ cSigv4Auth,
+ xSigv4AuthLen );
+
+ if( xHttpStatus != HTTPSuccess )
+ {
+ LogError( ( "Failed to add Sigv4 auth header. Error=%s.",
+ HTTPClient_strerror( xHttpStatus ) ) );
+ xStatus = pdFAIL;
+ }
+ }
+
+ if( xStatus == pdPASS )
+ {
+ /* Send out the http request */
+ xHttpStatus = HTTPClient_Send( pxTransportInterface,
+ &xRequestHeaders,
+ NULL,
+ 0,
+ pxResponse,
+ 0 );
+ if( xHttpStatus != HTTPSuccess )
+ {
+ LogError( ( "Failed to send HTTP GET request to %s%s: Error=%s.",
+ xRequestInfo.pHost, xRequestInfo.pPath, HTTPClient_strerror( xHttpStatus ) ) );
+ xStatus = pdFAIL;
+ }
+ }
+
+ if( xStatus == pdPASS )
+ {
+ LogDebug( ( "Received HTTP response from %s%s...",
+ xRequestInfo.pHost, xRequestInfo.pPath ) );
+ LogDebug( ( "Response Headers:\n%.*s",
+ pxResponse->headersLen,
+ pxResponse->pHeaders ) );
+ LogDebug( ( "Response Body:\n%.*s\n",
+ pxResponse->bodyLen,
+ pxResponse->pBody ) );
+
+ /* Since Range is set in the header, the success status is 206 Partial Content. */
+ if( pxResponse->statusCode != httpexampleHTTP_STATUS_CODE_PARTIAL_CONTENT )
+ {
+ LogError( ( "Received an invalid response from the server "
+ "(Status Code: %u).",
+ pxResponse->statusCode ) );
+ xStatus = pdFAIL;
+ }
+ }
+
+ return xStatus;
+}
+
+static BaseType_t prvDownloadS3ObjectFile( const TransportInterface_t * pxTransportInterface,
+ const char * pcPath )
+{
+ BaseType_t xStatus = pdFAIL;
+ HTTPResponse_t xResponse;
+ /* The size of the file we are trying to download in S3. */
+ size_t xFileSize = 0;
+ /* The number of bytes we want to request with in each range of the file bytes. */
+ size_t xNumReqBytes = 0;
+ /* curByte indicates which starting byte we want to download next. */
+ size_t xCurByte = 0;
/* Verify the file exists by retrieving the file size. */
xStatus = prvGetS3ObjectFileSize( &xFileSize,
pxTransportInterface,
- cServerHost,
- xServerHostLength,
+ AWS_S3_ENDPOINT,
+ sizeof( AWS_S3_ENDPOINT ) - 1,
pcPath );
if( xFileSize < democonfigRANGE_REQUEST_LENGTH )
@@ -722,82 +1119,340 @@ static BaseType_t prvDownloadS3ObjectFile( const TransportInterface_t * pxTransp
/* Here we iterate sending byte range requests until the full file has been
* downloaded. We keep track of the next byte to download with xCurByte. When
* this reaches the xFileSize we stop downloading. */
- while( ( xStatus == pdPASS ) && ( xHTTPStatus == HTTPSuccess ) && ( xCurByte < xFileSize ) )
+ while( ( xStatus == pdPASS ) && ( xCurByte < xFileSize ) )
{
- xHTTPStatus = HTTPClient_InitializeRequestHeaders( &xRequestHeaders,
- &xRequestInfo );
+ xStatus = prvSendS3HttpEmptyGet( pxTransportInterface,
+ xCurByte,
+ xCurByte + xNumReqBytes - 1,
+ pcPath,
+ &xResponse );
- if( xHTTPStatus == HTTPSuccess )
+ if( xStatus == pdPASS )
{
- xHTTPStatus = HTTPClient_AddRangeHeader( &xRequestHeaders,
- xCurByte,
- xCurByte + xNumReqBytes - 1 );
+ /* We increment by the content length because the server may not
+ * have sent us the range we request. */
+ xCurByte += xResponse.contentLength;
+
+ if( ( xFileSize - xCurByte ) < xNumReqBytes )
+ {
+ xNumReqBytes = xFileSize - xCurByte;
+ }
+
+ xStatus = ( xResponse.statusCode == httpexampleHTTP_STATUS_CODE_PARTIAL_CONTENT ) ? pdPASS : pdFAIL;
}
else
{
- LogError( ( "Failed to initialize HTTP request headers: Error=%s.",
- HTTPClient_strerror( xHTTPStatus ) ) );
+ LogError( ( "An error occurred in downloading the file. "
+ "Failed to send HTTP GET request to %s%s: Error=%u.",
+ AWS_S3_ENDPOINT, pcPath, xResponse.statusCode ) );
}
+ }
+
+ return xStatus;
+}
+
+static BaseType_t prvGetTemporaryCredentials( TransportInterface_t * pxTransportInterface,
+ const char * pcDateISO8601,
+ size_t xDateISO8601Len,
+ HTTPResponse_t * pxResponse,
+ SigV4Credentials_t * pxSigvCreds )
+{
+ BaseType_t xStatus = pdPASS;
+ HTTPStatus_t xHttpStatus = HTTPSuccess;
+ SigV4Status_t xSigv4Status = SigV4Success;
+ JSONStatus_t xJsonStatus = JSONSuccess;
+ HTTPRequestHeaders_t xRequestHeaders = { 0 };
+ HTTPRequestInfo_t xRequestInfo = { 0 };
+ const char * pcCredServer = democonfigIOT_CREDENTIAL_PROVIDER_ENDPOINT;
+ size_t xCredServerLen = strlen( democonfigIOT_CREDENTIAL_PROVIDER_ENDPOINT );
+ const char * pcPath = AWS_IOT_CREDENTIAL_PROVIDER_URI_PATH;
+ size_t xPathLen = strlen( AWS_IOT_CREDENTIAL_PROVIDER_URI_PATH );
+ const char * pDate = NULL;
+ size_t xDateLen;
- if( xHTTPStatus == HTTPSuccess )
+ configASSERT( pxTransportInterface != NULL );
+ configASSERT( pxSigvCreds != NULL );
+ configASSERT( pcDateISO8601 != NULL );
+ configASSERT( xDateISO8601Len > 0 );
+
+ /* Initialize Request header buffer. */
+ xRequestHeaders.pBuffer = ucUserBuffer;
+ xRequestHeaders.bufferLen = democonfigUSER_BUFFER_LENGTH;
+
+ /* Set HTTP request parameters to get temporary AWS IoT credentials. */
+ xRequestInfo.pMethod = HTTP_METHOD_GET;
+ xRequestInfo.methodLen = sizeof( HTTP_METHOD_GET ) - 1;
+ xRequestInfo.pPath = pcPath;
+ xRequestInfo.pathLen = xPathLen;
+ xRequestInfo.pHost = pcCredServer;
+ xRequestInfo.hostLen = xCredServerLen;
+ xRequestInfo.reqFlags = 0;
+
+ pxResponse->pHeaderParsingCallback = NULL;
+
+ /* Initialize request headers. */
+ xHttpStatus = HTTPClient_InitializeRequestHeaders( &xRequestHeaders, &xRequestInfo );
+
+ if( xHttpStatus != HTTPSuccess )
+ {
+ LogError( ( "Failed to initialize request headers: Error=%s.",
+ HTTPClient_strerror( xHttpStatus ) ) );
+ xStatus = pdFAIL;
+ }
+
+ if( xStatus == pdPASS )
+ {
+ /* Add AWS_IOT_THING_NAME_HEADER_FIELD header to the HTTP request headers. */
+ xHttpStatus = HTTPClient_AddHeader( &xRequestHeaders,
+ AWS_IOT_THING_NAME_HEADER_FIELD,
+ sizeof( AWS_IOT_THING_NAME_HEADER_FIELD ) - 1U,
+ democonfigIOT_THING_NAME,
+ sizeof( democonfigIOT_THING_NAME ) - 1U );
+
+ if( xHttpStatus != HTTPSuccess )
{
- LogInfo( ( "Downloading bytes %d-%d, out of %d total bytes, from %s...: ",
- ( int32_t ) ( xCurByte ),
- ( int32_t ) ( xCurByte + xNumReqBytes - 1 ),
- ( int32_t ) xFileSize,
- cServerHost ) );
- LogDebug( ( "Request Headers:\n%.*s",
- ( int32_t ) xRequestHeaders.headersLen,
- ( char * ) xRequestHeaders.pBuffer ) );
- xHTTPStatus = HTTPClient_Send( pxTransportInterface,
- &xRequestHeaders,
- NULL,
- 0,
- &xResponse,
- 0 );
+ LogError( ( "Failed to add x-amz-iot-thing-name header to request headers: Error=%s.",
+ HTTPClient_strerror( xHttpStatus ) ) );
+ xStatus = pdFAIL;
}
- else
+ }
+
+ if( xStatus == pdPASS )
+ {
+ /* Send the request to AWS IoT Credentials Provider to obtain temporary credentials
+ * so that the demo application can access configured S3 bucket thereafter. */
+ xHttpStatus = HTTPClient_Send( pxTransportInterface,
+ &xRequestHeaders,
+ NULL,
+ 0,
+ pxResponse,
+ 0 );
+
+ if( xHttpStatus != HTTPSuccess )
{
- LogError( ( "Failed to add Range header to request headers: Error=%s.",
- HTTPClient_strerror( xHTTPStatus ) ) );
+ LogError( ( "Failed to send HTTP GET request to %s%s for obtaining temporary credentials: Error=%s.",
+ pcCredServer, pcPath, HTTPClient_strerror( xHttpStatus ) ) );
+ xStatus = pdFAIL;
+ }
+ }
+
+ if( xStatus == pdPASS )
+ {
+ LogDebug( ( "AWS IoT credential provider response: %.*s.",
+ ( int32_t ) pxResponse->bufferLen, pxResponse->pBuffer ) );
+
+ /* Parse the credentials received in the response. */
+ xJsonStatus = prvParseCredentials( pxResponse, pxSigvCreds );
+
+ if( xJsonStatus != JSONSuccess )
+ {
+ LogError( ( "Failed to parse temporary IoT credentials retrieved from AWS IoT credential provider" ) );
+ xStatus = pdFAIL;
}
+ }
+
+ /* Get the AWS IoT date from the http response. */
+ if( xStatus == pdPASS )
+ {
+ xHttpStatus = HTTPClient_ReadHeader( pxResponse,
+ AWS_IOT_CRED_PROVIDER_RESPONSE_DATE_HEADER,
+ sizeof( AWS_IOT_CRED_PROVIDER_RESPONSE_DATE_HEADER ) - 1,
+ &pDate,
+ &xDateLen );
- if( xHTTPStatus == HTTPSuccess )
+ if( xHttpStatus != HTTPSuccess )
{
- LogDebug( ( "Received HTTP response from %s%s...",
- cServerHost, pcPath ) );
- LogDebug( ( "Response Headers:\n%.*s",
- ( int32_t ) xResponse.headersLen,
- xResponse.pHeaders ) );
- LogInfo( ( "Response Body:\n%.*s\n",
- ( int32_t ) xResponse.bodyLen,
- xResponse.pBody ) );
+ LogError( ( "Failed to retrieve \"%s\" header from response: Error=%s.",
+ AWS_IOT_CRED_PROVIDER_RESPONSE_DATE_HEADER, HTTPClient_strerror( xHttpStatus ) ) );
+ xStatus = pdFAIL;
+ }
+ }
- /* We increment by the content length because the server may not
- * have sent us the range we request. */
- xCurByte += xResponse.contentLength;
+ if( xStatus == pdPASS )
+ {
+ /* Convert AWS IoT date retrieved from IoT server to ISO 8601 date format. */
+ xSigv4Status = SigV4_AwsIotDateToIso8601( pDate, xDateLen, pcDateISO8601, xDateISO8601Len );
- if( ( xFileSize - xCurByte ) < xNumReqBytes )
- {
- xNumReqBytes = xFileSize - xCurByte;
- }
+ if( xSigv4Status != SigV4Success )
+ {
+ LogError( ( "Failed to convert AWS IoT date to ISO 8601 format." ) );
+ xStatus = pdFAIL;
+ }
+ }
- xStatus = ( xResponse.statusCode == httpexampleHTTP_STATUS_CODE_PARTIAL_CONTENT ) ? pdPASS : pdFAIL;
+ return xStatus;
+}
+
+/*-----------------------------------------------------------*/
+
+static JSONStatus_t prvParseCredentials( HTTPResponse_t * pxResponse,
+ SigV4Credentials_t * pxSigvCreds )
+{
+ JSONStatus_t xJsonStatus = JSONSuccess;
+ /* Expiration time for temporary credentials */
+ char * pcExpiration;
+ size_t xExpirationLen;
+
+ configASSERT( pxResponse != NULL );
+ configASSERT( pxSigvCreds != NULL );
+
+ if( xJsonStatus == JSONSuccess )
+ {
+ /* Get accessKeyId from HTTP response. */
+ xJsonStatus = JSON_Search( ( char * ) pxResponse->pBody,
+ pxResponse->bodyLen,
+ CREDENTIALS_RESPONSE_ACCESS_KEY_ID_KEY,
+ strlen( CREDENTIALS_RESPONSE_ACCESS_KEY_ID_KEY ),
+ ( char ** ) &( pxSigvCreds->pAccessKeyId ),
+ &( pxSigvCreds->accessKeyIdLen ) );
+
+ if( xJsonStatus != JSONSuccess )
+ {
+ LogError( ( "Error parsing accessKeyId in the credentials." ) );
+ }
+ }
+
+ if( xJsonStatus == JSONSuccess )
+ {
+ /* Get secretAccessKey from HTTP response. */
+ xJsonStatus = JSON_Search( ( char * ) pxResponse->pBody,
+ pxResponse->bodyLen,
+ CREDENTIALS_RESPONSE_SECRET_ACCESS_KEY,
+ strlen( CREDENTIALS_RESPONSE_SECRET_ACCESS_KEY ),
+ ( char ** ) &( pxSigvCreds->pSecretAccessKey ),
+ &( pxSigvCreds->secretAccessKeyLen ) );
+
+ if( xJsonStatus != JSONSuccess )
+ {
+ LogError( ( "Error parsing secretAccessKey in the credentials." ) );
+ }
+ }
+
+ if( xJsonStatus == JSONSuccess )
+ {
+ /* Get sessionToken from HTTP response. */
+ xJsonStatus = JSON_Search( ( char * ) pxResponse->pBody,
+ pxResponse->bodyLen,
+ CREDENTIALS_RESPONSE_SESSION_TOKEN_KEY,
+ strlen( CREDENTIALS_RESPONSE_SESSION_TOKEN_KEY ),
+ ( char ** ) &( pcSecurityToken ),
+ &( xSecurityTokenLen ) );
+
+ if( xJsonStatus != JSONSuccess )
+ {
+ LogError( ( "Error parsing sessionToken in the credentials." ) );
+ }
+ }
+
+ if( xJsonStatus == JSONSuccess )
+ {
+ /* Get expiration date from HTTP response. */
+ xJsonStatus = JSON_Search( ( char * ) pxResponse->pBody,
+ pxResponse->bodyLen,
+ CREDENTIALS_RESPONSE_EXPIRATION_DATE_KEY,
+ strlen( CREDENTIALS_RESPONSE_EXPIRATION_DATE_KEY ),
+ ( char ** ) &( pcExpiration ),
+ &( xExpirationLen ) );
+
+ if( xJsonStatus != JSONSuccess )
+ {
+ LogError( ( "Error parsing expiration date in the credentials." ) );
}
else
{
- LogError( ( "An error occurred in downloading the file. "
- "Failed to send HTTP GET request to %s%s: Error=%s.",
- cServerHost, pcPath, HTTPClient_strerror( xHTTPStatus ) ) );
+ LogInfo( ( "AWS IoT credentials will expire after this timestamp: %.*s.", xExpirationLen, pcExpiration ) );
}
+ }
+
+ return xJsonStatus;
+}
+
+static int32_t prvSha256Init( void * pxHashContext )
+{
+ mbedtls_sha256_init( ( mbedtls_sha256_context * ) pxHashContext );
+ return mbedtls_sha256_starts_ret( ( mbedtls_sha256_context * ) pxHashContext, 0 );
+}
+
+/*-----------------------------------------------------------*/
+
+static int32_t prvSha256Update( void * pxHashContext,
+ const uint8_t * pucInput,
+ size_t xInputLen )
+{
+ return mbedtls_sha256_update_ret( ( mbedtls_sha256_context * ) pxHashContext,
+ ( const unsigned char * ) pucInput,
+ xInputLen );
+}
+
+/*-----------------------------------------------------------*/
+
+static int32_t prvSha256Final( void * pxHashContext,
+ uint8_t * pucOutput,
+ size_t xOutputLen )
+{
+ configASSERT( xOutputLen >= SHA256_HASH_DIGEST_LENGTH );
- if( xStatus != pdPASS )
+ ( void ) xOutputLen;
+
+ return mbedtls_sha256_finish_ret( ( mbedtls_sha256_context * ) pxHashContext,
+ ( unsigned char * ) pucOutput );
+}
+
+static void prvGetHeaderStartLocFromHttpRequest( HTTPRequestHeaders_t * pxRequestHeaders,
+ char ** pcStartHeaderLoc,
+ size_t * pxHeadersDataLen )
+{
+ size_t xHeaderLen = pxRequestHeaders->headersLen;
+ char * pcHeaders = ( char * ) pxRequestHeaders->pBuffer;
+ bool xNewLineFound = false;
+
+ configASSERT( pcStartHeaderLoc != NULL );
+ configASSERT( pxHeadersDataLen != NULL );
+
+ while( xHeaderLen >= 2 )
+ {
+ /* The request line ends in \r\n. Look for \r\n. */
+ if( 0 == strncmp( pcHeaders, "\r\n", strlen( "\r\n" ) ) )
{
- LogError( ( "Received an invalid response from the server "
- "(Status Code: %u).",
- xResponse.statusCode ) );
+ xNewLineFound = true;
+ break;
}
+
+ pcHeaders++;
+ xHeaderLen--;
+ }
+
+ if( xNewLineFound == false )
+ {
+ LogError( ( "Failed to find starting location of HTTP headers in HTTP request: \"\\r\\n\" missing before start of HTTP headers." ) );
}
- return( ( xStatus == pdPASS ) && ( xHTTPStatus == HTTPSuccess ) );
+ configASSERT( xNewLineFound != false );
+
+ /* Moving header pointer past "\r\n" .*/
+ *pxHeadersDataLen = xHeaderLen - 2;
+ *pcStartHeaderLoc = pcHeaders + 2;
+}
+
+static void prvSha256Encode( const char * pcInputStr,
+ size_t xInputStrLen,
+ char * pcHexOutput )
+{
+ configASSERT( pcInputStr != NULL );
+ configASSERT( xInputStrLen >= 0 );
+ configASSERT( pcHexOutput != NULL );
+
+ const char cHexChars[] = "0123456789abcdef";
+ char * pcOutputChar = pcHexOutput;
+ static uint8_t ucSha256[ SHA256_HASH_DIGEST_LENGTH ];
+
+ mbedtls_sha256_ret( pcInputStr, xInputStrLen, ucSha256, 0 );
+
+ for(size_t i = 0; i < SHA256_HASH_DIGEST_LENGTH; i++ )
+ {
+ *pcOutputChar = cHexChars[ ( ucSha256[ i ] & 0xF0 ) >> 4 ];
+ pcOutputChar++;
+ *pcOutputChar = cHexChars[ ( ucSha256[ i ] & 0x0F ) ];
+ pcOutputChar++;
+ }
}
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/README.md b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/README.md
new file mode 100644
index 000000000..cbd1d9645
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/README.md
@@ -0,0 +1,201 @@
+# Configure HTTP S3 Download Demo using SigV4 Library.
+
+Following steps needs to be followed to configure HTTP S3 Download Demo to use SigV4 library for authenticating the requests sent to AWS S3.
+
+### Prerequisites
+
+1. You will need an AWS Account with S3 access before beginning. You must be familiar with AWS IoT and IAM to perform steps using the AWS CLI. You must install and configure the AWS CLI in order to follow the steps.
+ For information on AWS S3 please see: https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html
+ For AWS CLI installation information please see: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html
+ For AWS CLI configuration information please see: https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html
+
+ ```sh
+ aws configure
+ ```
+
+### Detailed Steps
+
+#### 1. Create an AWS IoT thing:
+
+You may utilize an already existing AWS IoT Thing or create a new one in the IoT Core section of the AWS Management Console UI.
+
+You may also use the AWS CLI with the following command to create a Thing, keeping track of its name:
+```sh
+aws iot create-thing --thing-name device_thing_name
+```
+
+#### 2. Register a certificate:
+
+If your AWS IoT Thing already has a certificate attached to it, then that certificate's ARN can be used in [step 5](#5. attach-a-policy). Otherwise, you can create a certificate and attach it to the thing through IoT Core in the AWS Management Console UI. By doing any of these, you may skip to [step 3](#3-configure-an-iam-role).
+
+It is also possible to sign the Thing's certificate using your own Certificate Authority (CA) certificate, and register both certificates with AWS IoT before your device can authenticate to AWS IoT. If you do not already have a CA certificate, you can use OpenSSL to create a CA certificate, as described in [Use Your Own Certificate](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html). To register your CA certificate with AWS IoT, follow the steps on [Registering Your CA Certificate](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html#register-CA-cert).
+
+You then have to create a device certificate signed by the CA certificate and register it with AWS IoT, which you can do by following the steps on [Creating a Device Certificate Using Your CA Certificate](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html#create-device-cert). Save the certificate and the corresponding key pair; you will use them when you request a security token later. Also, remember the password you provide when you create the certificate.
+
+Run the following command in the AWS CLI to attach the device certificate to your thing so that you can use thing attributes in policy variables.
+
+```sh
+aws iot attach-thing-principal --thing-name device_thing_name --principal <certificate-arn>
+```
+
+#### 3. Configure an IAM role:
+
+Next, configure an IAM role in your AWS account that will be assumed by the credentials provider on behalf of your device. You are required to associate two policies with the role: a trust policy that controls who can assume the role, and an access policy that controls which actions can be performed on which resources by assuming the role.
+
+The following trust policy grants the credentials provider permission to assume the role. Put it in a text document and save the document with the name, trustpolicyforiot.json.
+
+```
+{
+ "Version": "2012-10-17",
+ "Statement": {
+ "Effect": "Allow",
+ "Principal": {"Service": "credentials.iot.amazonaws.com"},
+ "Action": "sts:AssumeRole"
+ }
+}
+```
+Run the following command in the AWS CLI to create an IAM role with the preceding trust policy.
+
+```sh
+aws iam create-role --role-name s3-access-role --assume-role-policy-document file://trustpolicyforiot.json
+```
+The following s3 access policy allows you to perform actions on S3. Put the following policy in a text document and save the document with the name `accesspolicyfors3.json`.
+```
+{
+ "Version": "2012-10-17",
+ "Statement": {
+ "Effect": "Allow",
+ "Action": [
+ "s3:GetObject"
+ ],
+ "Resource": "arn:aws:s3:::BUCKET_NAME/*"
+ }
+}
+```
+Run the following command in the AWS CLI to create the access policy.
+```sh
+aws iam create-policy --policy-name accesspolicyfors3 --policy-document file://accesspolicyfors3.json
+```
+Finally, run the following command in the AWS CLI to attach the access policy to your role.
+```sh
+aws iam attach-role-policy --role-name s3-access-role --policy-arn arn:aws:iam::<your_aws_account_id>:policy/accesspolicyfors3
+```
+
+Configure the PassRole permissions
+
+The IAM role that you have created must be passed to AWS IoT to create a role alias, as described in Step 4. The IAM user who performs the operation requires `iam:PassRole` permission to authorize this action. You also should add permission for the `iam:GetRole` action to allow the IAM user to retrieve information about the specified role. Create the following policy to grant `iam:PassRole` and `iam:GetRole` permissions. Name this policy `passrolepermission.json`.
+```
+{
+ "Version": "2012-10-17",
+ "Statement": {
+ "Effect": "Allow",
+ "Action": [
+ "iam:GetRole",
+ "iam:PassRole"
+ ],
+ "Resource": "arn:aws:iam::<your_aws_account_id>:role/s3-access-role"
+ }
+}
+```
+
+Run the following command in the AWS CLI to create the policy in your AWS account.
+```sh
+aws iam create-policy --policy-name passrolepermission --policy-document file://passrolepermission.json
+```
+
+Now, run the following command to attach the policy to the IAM user.
+```sh
+aws iam attach-user-policy --policy-arn arn:aws:iam::<your_aws_account_id>:policy/passrolepermission --user-name <user_name>
+```
+
+#### 4. Create a role alias:
+
+Now that you have configured the IAM role, you will create a role alias with AWS IoT. You must provide the following pieces of information when creating a role alias:
+
+RoleAlias: This is the primary key of the role alias data model and hence a mandatory attribute. It is a string; the minimum length is 1 character, and the maximum length is 128 characters.
+
+RoleArn: This is the [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the IAM role you have created. This is also a mandatory attribute.
+
+CredentialDurationSeconds: This is an optional attribute specifying the validity (in seconds) of the security token. The minimum value is 900 seconds (15 minutes), and the maximum value is 3,600 seconds (60 minutes); the default value is 3,600 seconds, if not specified.
+
+Run the following command in the AWS CLI to create a role alias. Use the credentials of the user to whom you have given the iam:PassRole permission.
+```sh
+aws iot create-role-alias --role-alias name-s3-access-role-alias --role-arn arn:aws:iam::<your_aws_account_id>:role/s3-access-role --credential-duration-seconds 3600
+```
+
+#### 5. Attach a policy:
+You created and registered a certificate with AWS IoT earlier for successful authentication of your device. Now, you need to create and attach a policy to the certificate to authorize the request for the security token.
+```
+{
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": "iot:AssumeRoleWithCertificate",
+ "Resource": "arn:aws:iot:<aws_region_name>:<your_aws_account_id>:rolealias/name-s3-access-role-alias"
+ }
+ ]
+}
+```
+Run the following command in the AWS CLI to create the policy in your AWS IoT database.
+```sh
+aws iot create-policy --policy-name Thing_Policy_Name --policy-document file://thingpolicy.json
+```
+Use the following command to attach the policy with the certificate you registered earlier.
+```sh
+aws iot attach-policy --policy-name Thing_Policy_Name --target <certificate-arn>
+```
+
+#### 6. Request a security token:
+
+Make an HTTPS request to the credentials provider to fetch a security token. You have to supply the following information:
+
+Certificate and key pair: Because this is an HTTP request over TLS mutual authentication, you have to provide the certificate and the corresponding key pair to your client while making the request. Use the same certificate and key pair that you used during certificate registration with AWS IoT.
+
+RoleAlias: Provide the role alias (in this example, Thermostat-dynamodb-access-role-alias) to be assumed in the request.
+
+ThingName: Provide the thing name that you created earlier in the AWS IoT thing registry database. This is passed as a header with the name, x-amzn-iot-thingname. Note that the thing name is mandatory only if you have thing attributes as policy variables in AWS IoT or IAM policies.
+
+Run the following command in the AWS CLI to obtain your AWS account-specific endpoint for the credentials provider. See the [DescribeEndpoint API documentation](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEndpoint.html) for further details.
+
+```sh
+aws iot describe-endpoint --endpoint-type iot:CredentialProvider
+```
+The following is sample output of the describe-endpoint command. It contains the endpointAddress.
+```
+{
+ "endpointAddress": "<your_aws_account_specific_prefix>.credentials.iot.us-east-1.amazonaws.com"
+}
+```
+
+#### 7. Copy and paste the output to `demo_config.h` for macros `democonfigIOT_CREDENTIAL_PROVIDER_ENDPOINT`.
+```c
+#define democonfigIOT_CREDENTIAL_PROVIDER_ENDPOINT "<your_aws_account_specific_prefix>.credentials.iot.us-east-1.amazonaws.com"
+
+#define CLIENT_CERT_PATH "path of the client certificate downloaded when setting up the device certificate in AWS IoT Account Setup"
+
+#define CLIENT_PRIVATE_KEY_PATH "path of the private key downloaded when setting up the device certificate in AWS IoT Account Setup"
+```
+
+#### 8. After the following the above steps, configure the below macros in `demo_config.h`.
+```c
+#define democonfigIOT_THING_NAME "Name of IOT Thing that you provided in STEP 1"
+#define democonfigIOT_CREDENTIAL_PROVIDER_ROLE "Name of ROLE ALIAS that you provided in STEP 4"
+#define democonfigS3_BUCKET_NAME "Name of Bucket that contains the object that needs to be downloaded"
+#define democonfigS3_BUCKET_REGION "Region where Bucket is located"
+#define democonfigS3_OBJECT_NAME "Name of object that needs to be downloaded from AWS S3"
+```
+
+### Parameters
+
+#### device_thing_name
+The name of the AWS IoT thing for your device registered with AWS IoT core.
+
+#### thing_name-s3-access-role-alias
+The name for the role alias for S3.
+
+#### Thing_Policy_Name
+The name of the policy attached to the device certificate in [step 5](#5-attach-a-policy).
+
+#### BUCKET_NAME
+The name of the S3 bucket from which the demo will download.
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj
index ec64c8860..3e4aedccf 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj
@@ -1,615 +1,633 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{C686325E-3261-42F7-AEB1-DDE5280E1CEB}</ProjectGuid>
- <ProjectName>RTOSDemo</ProjectName>
- <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseOfMfc>false</UseOfMfc>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v142</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseOfMfc>false</UseOfMfc>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v142</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</IntDir>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</IntDir>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
- <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Midl>
- <TypeLibraryName>.\Debug/WIN32.tlb</TypeLibraryName>
- <HeaderFileName>
- </HeaderFileName>
- </Midl>
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\..\Source\Application-Protocols\coreHTTP\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\http_parser;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\using_mbedtls\using_mbedtls;..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\Source\mbedtls_utils;..\..\..\ThirdParty\mbedtls\include;..\Common;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>false</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <PrecompiledHeaderOutputFile>.\Debug/WIN32.pch</PrecompiledHeaderOutputFile>
- <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
- <ObjectFileName>.\Debug/</ObjectFileName>
- <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
- <WarningLevel>Level4</WarningLevel>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <DisableLanguageExtensions>false</DisableLanguageExtensions>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- <AdditionalOptions>/wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)</AdditionalOptions>
- <BrowseInformation>true</BrowseInformation>
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
- <ExceptionHandling>false</ExceptionHandling>
- <CompileAs>CompileAsC</CompileAs>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <Culture>0x0c09</Culture>
- </ResourceCompile>
- <Link>
- <OutputFile>.\Debug/RTOSDemo.exe</OutputFile>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <ProgramDatabaseFile>.\Debug/WIN32.pdb</ProgramDatabaseFile>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <AdditionalDependencies>wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>..\..\Common\WinPCap</AdditionalLibraryDirectories>
- <Profile>false</Profile>
- <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
- </Link>
- <Bscmake>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <OutputFile>.\Debug/WIN32.bsc</OutputFile>
- </Bscmake>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Midl>
- <TypeLibraryName>.\Release/WIN32.tlb</TypeLibraryName>
- <HeaderFileName>
- </HeaderFileName>
- </Midl>
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
- <PreprocessorDefinitions>_WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <StringPooling>true</StringPooling>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeaderOutputFile>.\Release/WIN32.pch</PrecompiledHeaderOutputFile>
- <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
- <ObjectFileName>.\Release/</ObjectFileName>
- <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
- <WarningLevel>Level3</WarningLevel>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <AdditionalIncludeDirectories>..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\Source\include;..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- </ClCompile>
- <ResourceCompile>
- <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <Culture>0x0c09</Culture>
- </ResourceCompile>
- <Link>
- <OutputFile>.\Release/RTOSDemo.exe</OutputFile>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <ProgramDatabaseFile>.\Release/WIN32.pdb</ProgramDatabaseFile>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- <AdditionalLibraryDirectories>..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap</AdditionalLibraryDirectories>
- <AdditionalDependencies>wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- <Bscmake>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <OutputFile>.\Release/WIN32.bsc</OutputFile>
- </Bscmake>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\event_groups.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\list.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\portable\MemMang\heap_4.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW\port.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\queue.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\stream_buffer.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\tasks.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\timers.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_ARP.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_DHCP.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_DNS.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_IP.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_Sockets.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_Stream_Buffer.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_TCP_IP.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_TCP_WIN.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_UDP_IP.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement\BufferAllocation_2.c" />
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\NetworkInterface\WinPCap\NetworkInterface.c" />
- <ClCompile Include="..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp\sockets_wrapper.c" />
- <ClCompile Include="..\..\..\Source\Application-Protocols\network_transport\using_mbedtls\using_mbedtls\using_mbedtls.c" />
- <ClCompile Include="..\..\..\Source\Utilities\mbedtls_freertos\mbedtls_bio_freertos_plus_tcp.c" />
- <ClCompile Include="..\..\..\Source\Utilities\mbedtls_freertos\mbedtls_freertos_port.c" />
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c" />
- <ClCompile Include="..\..\..\Source\Utilities\backoff_algorithm\source\backoff_algorithm.c" />
- <ClCompile Include="..\..\..\Source\Application-Protocols\coreHTTP\source\core_http_client.c" />
- <ClCompile Include="..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\http_parser\http_parser.c" />
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\aes.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\aesni.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\arc4.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\aria.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\asn1parse.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\asn1write.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\base64.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\bignum.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\blowfish.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\camellia.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ccm.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\certs.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\chacha20.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\chachapoly.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\cipher.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\cipher_wrap.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\cmac.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ctr_drbg.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\debug.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\des.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\dhm.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecdh.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecdsa.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecjpake.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecp.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecp_curves.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\entropy.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\entropy_poll.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\gcm.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\havege.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\hkdf.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\hmac_drbg.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md2.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md4.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md5.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\memory_buffer_alloc.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\net_sockets.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\nist_kw.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\oid.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\padlock.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pem.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pk.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkcs11.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkcs12.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkcs5.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkparse.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkwrite.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pk_wrap.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\platform.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\platform_util.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\poly1305.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ripemd160.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\rsa.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\rsa_internal.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\sha1.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\sha256.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\sha512.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_cache.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_ciphersuites.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_cli.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_cookie.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_msg.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_srv.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_ticket.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_tls.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\threading.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\timing.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\version.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\version_features.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509write_crt.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509write_csr.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_create.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_crl.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_crt.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_csr.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\xtea.c">
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
- <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Demo\Common\Logging\windows\Logging_WinSim.c" />
- <ClCompile Include="..\Common\main.c" />
- <ClCompile Include="DemoTasks\S3DownloadHTTPExample.c" />
- <ClCompile Include="..\Common\http_demo_utils.c" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\event_groups.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\FreeRTOS.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\portable.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\projdefs.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\queue.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\semphr.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\task.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\timers.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW\portmacro.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOSIPConfigDefaults.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_ARP.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_DHCP.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_DNS.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_IP.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_IP_Private.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_Sockets.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_Stream_Buffer.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_TCP_IP.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_TCP_WIN.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_UDP_IP.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\IPTraceMacroDefaults.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\NetworkBufferManagement.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\NetworkInterface.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging\logging.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging\logging_levels.h" />
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging\logging_stack.h" />
- <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\include\core_http_client.h" />
- <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\include\core_http_client_private.h" />
- <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\include\core_http_config_defaults.h" />
- <ClInclude Include="..\..\..\Source\Application-Protocols\coreMQTT\source\interface\transport_interface.h" />
- <ClInclude Include="..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp\sockets_wrapper.h" />
- <ClInclude Include="..\..\..\Source\Application-Protocols\network_transport\using_mbedtls\using_mbedtls\using_mbedtls.h" />
- <ClInclude Include="..\..\..\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_errno_TCP.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h" />
- <ClInclude Include="..\..\..\Source\Utilities\mbedtls_freertos\threading_alt.h" />
- <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\http_parser\http_parser.h" />
- <ClInclude Include="..\..\..\Source\Utilities\backoff_algorithm\source\include\backoff_algorithm.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\aes.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\aesni.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\arc4.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\aria.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\asn1.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\asn1write.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\base64.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\bignum.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\blowfish.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\bn_mul.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\camellia.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ccm.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\certs.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\chacha20.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\chachapoly.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\check_config.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\cipher.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\cipher_internal.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\cmac.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\compat-1.3.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\config.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ctr_drbg.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\debug.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\des.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\dhm.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecdh.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecdsa.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecjpake.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecp.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecp_internal.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\entropy.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\entropy_poll.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\gcm.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\havege.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\hkdf.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\hmac_drbg.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md2.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md4.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md5.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md_internal.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\memory_buffer_alloc.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\net.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\net_sockets.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\nist_kw.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\oid.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\padlock.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pem.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pk.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pkcs11.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pkcs12.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pkcs5.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pk_internal.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\platform.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\platform_time.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\platform_util.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\poly1305.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\psa_util.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ripemd160.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\rsa.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\rsa_internal.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\sha1.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\sha256.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\sha512.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_cache.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_ciphersuites.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_cookie.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_internal.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_ticket.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\threading.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\timing.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\version.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509_crl.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509_crt.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509_csr.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\xtea.h" />
- <ClInclude Include="mbedtls_config.h" />
- <ClInclude Include="demo_config.h" />
- <ClInclude Include="FreeRTOSConfig.h" />
- <ClInclude Include="FreeRTOSIPConfig.h" />
- <ClInclude Include="core_http_config.h" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C686325E-3261-42F7-AEB1-DDE5280E1CEB}</ProjectGuid>
+ <ProjectName>RTOSDemo</ProjectName>
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v142</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v142</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <TypeLibraryName>.\Debug/WIN32.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..\..\Source\FreeRTOS-Plus-Trace\Include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement;..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\Compiler\MSVC;..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging;..\..\Common\WinPCap;..\..\..\..\FreeRTOS\Source\include;..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW;..\..\..\Source\Application-Protocols\coreMQTT\source\include;..\..\..\Source\Application-Protocols\coreMQTT\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\include;..\..\..\Source\Application-Protocols\coreHTTP\source\interface;..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\http_parser;..\..\..\Source\Utilities\backoff_algorithm\source\include;..\..\..\Source\Application-Protocols\network_transport\freertos_plus_tcp;..\..\..\Source\Application-Protocols\network_transport\freertos_plus_tcp\using_mbedtls;..\..\..\Source\Utilities\mbedtls_freertos;..\..\..\..\Source\mbedtls_utils;..\..\..\ThirdParty\mbedtls\include;..\Common;.;%(AdditionalIncludeDirectories);..\..\..\Source\coreJSON\source\include;..\..\..\Source\AWS\sigv4\source\include</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>MBEDTLS_CONFIG_FILE="mbedtls_config.h";WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>.\Debug/WIN32.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
+ <ObjectFileName>.\Debug/</ObjectFileName>
+ <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DisableLanguageExtensions>false</DisableLanguageExtensions>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <AdditionalOptions>/wd4210 /wd4127 /wd4214 /wd4201 /wd4244 /wd4310 /wd4200 %(AdditionalOptions)</AdditionalOptions>
+ <BrowseInformation>true</BrowseInformation>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <ExceptionHandling>false</ExceptionHandling>
+ <CompileAs>CompileAsC</CompileAs>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0c09</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>.\Debug/RTOSDemo.exe</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>.\Debug/WIN32.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ <AdditionalDependencies>wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>..\..\Common\WinPCap</AdditionalLibraryDirectories>
+ <Profile>false</Profile>
+ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\Debug/WIN32.bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <TypeLibraryName>.\Release/WIN32.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <PreprocessorDefinitions>_WINSOCKAPI_;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>.\Release/WIN32.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
+ <ObjectFileName>.\Release/</ObjectFileName>
+ <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalIncludeDirectories>..\Common\Utils;..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap;..\Common\ethernet\lwip-1.4.0\src\include\ipv4;..\Common\ethernet\lwip-1.4.0\src\include;..\..\..\Source\include;..\..\..\Source\portable\MSVC-MingW;..\Common\ethernet\lwip-1.4.0\ports\win32\include;..\Common\Include;.\lwIP_Apps;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0c09</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>.\Release/RTOSDemo.exe</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ProgramDatabaseFile>.\Release/WIN32.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ <AdditionalLibraryDirectories>..\Common\ethernet\lwip-1.4.0\ports\win32\WinPCap</AdditionalLibraryDirectories>
+ <AdditionalDependencies>wpcap.lib;Bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\Release/WIN32.bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\event_groups.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\list.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\portable\MemMang\heap_4.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW\port.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\queue.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\stream_buffer.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\tasks.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\timers.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_ARP.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_DHCP.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_DNS.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_IP.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_Sockets.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_Stream_Buffer.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_TCP_IP.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_TCP_WIN.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_UDP_IP.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement\BufferAllocation_2.c" />
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\NetworkInterface\WinPCap\NetworkInterface.c" />
+ <ClCompile Include="..\..\..\Source\AWS\sigv4\source\sigv4.c" />
+ <ClCompile Include="..\..\..\Source\AWS\sigv4\source\sigv4_quicksort.c" />
+ <ClCompile Include="..\..\..\Source\coreJSON\source\core_json.c" />
+ <ClCompile Include="..\..\..\Source\Utilities\mbedtls_freertos\mbedtls_freertos_port.c" />
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c" />
+ <ClCompile Include="..\..\..\Source\Utilities\backoff_algorithm\source\backoff_algorithm.c" />
+ <ClCompile Include="..\..\..\Source\Application-Protocols\network_transport\freertos_plus_tcp\sockets_wrapper.c" />
+ <ClCompile Include="..\..\..\Source\Application-Protocols\network_transport\freertos_plus_tcp\using_mbedtls\using_mbedtls.c" />
+ <ClCompile Include="..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp\sockets_wrapper.c" />
+ <ClCompile Include="..\..\..\Source\Application-Protocols\network_transport\using_mbedtls\using_mbedtls\using_mbedtls.c" />
+ <ClCompile Include="..\..\..\Source\Utilities\mbedtls_freertos\mbedtls_bio_freertos_plus_tcp.c" />
+ <ClCompile Include="..\..\..\Source\Utilities\mbedtls_freertos\mbedtls_freertos_port.c" />
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c" />
+ <ClCompile Include="..\..\..\Source\Utilities\backoff_algorithm\source\backoff_algorithm.c" />
+ <ClCompile Include="..\..\..\Source\Application-Protocols\coreHTTP\source\core_http_client.c" />
+ <ClCompile Include="..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\http_parser\http_parser.c" />
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\aes.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\aesni.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\arc4.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\aria.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\asn1parse.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\asn1write.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\base64.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\bignum.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\blowfish.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\camellia.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ccm.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\certs.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\chacha20.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\chachapoly.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\cipher.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\cipher_wrap.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\cmac.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ctr_drbg.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\debug.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\des.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\dhm.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecdh.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecdsa.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecjpake.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecp.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecp_curves.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\entropy.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\entropy_poll.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\gcm.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\havege.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\hkdf.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\hmac_drbg.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md2.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md4.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md5.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\memory_buffer_alloc.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\net_sockets.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\nist_kw.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\oid.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\padlock.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pem.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pk.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkcs11.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkcs12.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkcs5.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkparse.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkwrite.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pk_wrap.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\platform.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\platform_util.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\poly1305.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ripemd160.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\rsa.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\rsa_internal.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\sha1.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\sha256.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\sha512.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_cache.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_ciphersuites.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_cli.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_cookie.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_msg.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_srv.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_ticket.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_tls.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\threading.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\timing.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\version.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\version_features.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509write_crt.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509write_csr.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_create.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_crl.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_crt.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_csr.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\xtea.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TurnOffAllWarnings</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TurnOffAllWarnings</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Demo\Common\Logging\windows\Logging_WinSim.c" />
+ <ClCompile Include="..\Common\main.c" />
+ <ClCompile Include="DemoTasks\S3DownloadHTTPExample.c" />
+ <ClCompile Include="..\Common\http_demo_utils.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\event_groups.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\FreeRTOS.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\portable.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\projdefs.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\queue.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\semphr.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\task.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\timers.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW\portmacro.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOSIPConfigDefaults.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_ARP.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_DHCP.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_DNS.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_IP.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_IP_Private.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_Sockets.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_Stream_Buffer.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_TCP_IP.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_TCP_WIN.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_UDP_IP.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\IPTraceMacroDefaults.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\NetworkBufferManagement.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\NetworkInterface.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging\logging.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging\logging_levels.h" />
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging\logging_stack.h" />
+ <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\include\core_http_client.h" />
+ <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\include\core_http_client_private.h" />
+ <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\include\core_http_config_defaults.h" />
+ <ClInclude Include="..\..\..\Source\Application-Protocols\coreMQTT\source\interface\transport_interface.h" />
+ <ClInclude Include="..\..\..\Source\AWS\sigv4\source\include\sigv4.h" />
+ <ClInclude Include="..\..\..\Source\AWS\sigv4\source\include\sigv4_config_defaults.h" />
+ <ClInclude Include="..\..\..\Source\AWS\sigv4\source\include\sigv4_internal.h" />
+ <ClInclude Include="..\..\..\Source\AWS\sigv4\source\include\sigv4_quicksort.h" />
+ <ClInclude Include="..\..\..\Source\coreJSON\source\include\core_json.h" />
+ <ClInclude Include="..\..\..\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_errno_TCP.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h" />
+ <ClInclude Include="..\..\..\Source\Utilities\mbedtls_freertos\threading_alt.h" />
+ <ClInclude Include="..\..\..\Source\Application-Protocols\network_transport\freertos_plus_tcp\sockets_wrapper.h" />
+ <ClInclude Include="..\..\..\Source\Application-Protocols\network_transport\freertos_plus_tcp\using_mbedtls\using_mbedtls.h" />
+ <ClInclude Include="..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp\sockets_wrapper.h" />
+ <ClInclude Include="..\..\..\Source\Application-Protocols\network_transport\using_mbedtls\using_mbedtls\using_mbedtls.h" />
+ <ClInclude Include="..\..\..\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_errno_TCP.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h" />
+ <ClInclude Include="..\..\..\Source\Utilities\mbedtls_freertos\threading_alt.h" />
+ <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\http_parser\http_parser.h" />
+ <ClInclude Include="..\..\..\Source\Utilities\backoff_algorithm\source\include\backoff_algorithm.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\aes.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\aesni.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\arc4.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\aria.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\asn1.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\asn1write.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\base64.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\bignum.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\blowfish.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\bn_mul.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\camellia.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ccm.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\certs.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\chacha20.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\chachapoly.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\check_config.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\cipher.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\cipher_internal.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\cmac.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\compat-1.3.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\config.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ctr_drbg.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\debug.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\des.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\dhm.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecdh.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecdsa.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecjpake.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecp.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecp_internal.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\entropy.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\entropy_poll.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\gcm.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\havege.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\hkdf.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\hmac_drbg.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md2.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md4.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md5.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md_internal.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\memory_buffer_alloc.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\net.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\net_sockets.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\nist_kw.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\oid.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\padlock.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pem.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pk.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pkcs11.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pkcs12.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pkcs5.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pk_internal.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\platform.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\platform_time.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\platform_util.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\poly1305.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\psa_util.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ripemd160.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\rsa.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\rsa_internal.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\sha1.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\sha256.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\sha512.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_cache.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_ciphersuites.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_cookie.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_internal.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_ticket.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\threading.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\timing.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\version.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509_crl.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509_crt.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509_csr.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\xtea.h" />
+ <ClInclude Include="mbedtls_config.h" />
+ <ClInclude Include="demo_config.h" />
+ <ClInclude Include="FreeRTOSConfig.h" />
+ <ClInclude Include="FreeRTOSIPConfig.h" />
+ <ClInclude Include="core_http_config.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
</Project> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj.filters b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj.filters
index 722971d86..5cab42331 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj.filters
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/WIN32.vcxproj.filters
@@ -1,775 +1,822 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="FreeRTOS">
- <UniqueIdentifier>{af3445a1-4908-4170-89ed-39345d90d30c}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS\Source">
- <UniqueIdentifier>{f32be356-4763-4cae-9020-974a2638cb08}</UniqueIdentifier>
- <Extensions>*.c</Extensions>
- </Filter>
- <Filter Include="FreeRTOS\Source\Portable">
- <UniqueIdentifier>{88f409e6-d396-4ac5-94bd-7a99c914be46}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+">
- <UniqueIdentifier>{e5ad4ec7-23dc-4295-8add-2acaee488f5a}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS\Source\include">
- <UniqueIdentifier>{d2dcd641-8d91-492b-852f-5563ffadaec6}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS+TCP">
- <UniqueIdentifier>{8672fa26-b119-481f-8b8d-086419c01a3e}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS+TCP\portable">
- <UniqueIdentifier>{4570be11-ec96-4b55-ac58-24b50ada980a}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS+TCP\include">
- <UniqueIdentifier>{5d93ed51-023a-41ad-9243-8d230165d34b}</UniqueIdentifier>
- </Filter>
- <Filter Include="DemoTasks">
- <UniqueIdentifier>{b71e974a-9f28-4815-972b-d930ba8a34d0}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries">
- <UniqueIdentifier>{60717407-397f-4ea5-8492-3314acdd25f0}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\standard">
- <UniqueIdentifier>{8a90222f-d723-4b4e-8e6e-c57afaf7fa92}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP">
- <UniqueIdentifier>{2d17d5e6-ed70-4e42-9693-f7a63baf4948}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include">
- <UniqueIdentifier>{6ad56e6d-c330-4830-8f4b-c75b05dfa866}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform">
- <UniqueIdentifier>{84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\mbedtls">
- <UniqueIdentifier>{7bedd2e3-adbb-4c95-9632-445132b459ce}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\mbedtls\include">
- <UniqueIdentifier>{07a14673-4d02-4780-a099-6b8c654dff91}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\mbedtls\library">
- <UniqueIdentifier>{e875c5e3-40a2-4408-941e-5e1a951cc663}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls">
- <UniqueIdentifier>{8a0aa896-6b3a-49b3-997e-681f0d1949ae}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\transport">
- <UniqueIdentifier>{c5a01679-3e7a-4320-97ac-ee5b872c1650}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include">
- <UniqueIdentifier>{c992824d-4198-46b2-8d59-5f99ab9946ab}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\transport">
- <UniqueIdentifier>{6a35782c-bc09-42d5-a850-98bcb668a4dc}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm">
- <UniqueIdentifier>{fcf93295-15e2-4a84-a5e9-b3c162e9f061}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include">
- <UniqueIdentifier>{e28148c9-3da7-4e2b-9753-995186714875}</UniqueIdentifier>
- </Filter>
- <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\logging">
- <UniqueIdentifier>{58e350db-d172-4809-92fe-fcad9dd3d2cf}</UniqueIdentifier>
- </Filter>
- <Filter Include="Config">
- <UniqueIdentifier>{64d18fee-0d61-476f-b5e2-9a778d994c6f}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW\port.c">
- <Filter>FreeRTOS\Source\Portable</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\timers.c">
- <Filter>FreeRTOS\Source</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\list.c">
- <Filter>FreeRTOS\Source</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\queue.c">
- <Filter>FreeRTOS\Source</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\tasks.c">
- <Filter>FreeRTOS\Source</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_UDP_IP.c">
- <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_DHCP.c">
- <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_DNS.c">
- <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_Sockets.c">
- <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement\BufferAllocation_2.c">
- <Filter>FreeRTOS+\FreeRTOS+TCP\portable</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\NetworkInterface\WinPCap\NetworkInterface.c">
- <Filter>FreeRTOS+\FreeRTOS+TCP\portable</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_ARP.c">
- <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_IP.c">
- <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_TCP_IP.c">
- <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_TCP_WIN.c">
- <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\event_groups.c">
- <Filter>FreeRTOS\Source</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\portable\MemMang\heap_4.c">
- <Filter>FreeRTOS\Source\Portable</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_Stream_Buffer.c">
- <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS\Source\stream_buffer.c">
- <Filter>FreeRTOS\Source</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\aes.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\aesni.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\arc4.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\aria.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\asn1parse.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\asn1write.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\base64.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\bignum.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\blowfish.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\camellia.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ccm.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\certs.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\chacha20.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\chachapoly.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\cipher.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\cipher_wrap.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\cmac.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ctr_drbg.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\debug.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\des.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\dhm.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecdh.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecdsa.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecjpake.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecp.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecp_curves.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\entropy.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\entropy_poll.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\gcm.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\havege.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\hkdf.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\hmac_drbg.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md2.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md4.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md5.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\memory_buffer_alloc.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\net_sockets.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\nist_kw.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\oid.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\padlock.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pem.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pk.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pk_wrap.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkcs5.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkcs11.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkcs12.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkparse.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkwrite.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\platform.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\platform_util.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\poly1305.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ripemd160.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\rsa.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\rsa_internal.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\sha1.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\sha256.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\sha512.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_cache.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_ciphersuites.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_cli.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_cookie.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_msg.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_srv.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_ticket.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_tls.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\threading.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\timing.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\version.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\version_features.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_create.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_crl.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_crt.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_csr.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509write_crt.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509write_csr.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\xtea.c">
- <Filter>FreeRTOS+\mbedtls\library</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Demo\Common\Logging\windows\Logging_WinSim.c" />
- <ClCompile Include="..\Common\main.c" />
- <ClCompile Include="DemoTasks\S3DownloadHTTPExample.c">
- <Filter>DemoTasks</Filter>
- </ClCompile>
- <ClCompile Include="..\Common\http_demo_utils.c" />
- <ClCompile Include="..\..\..\Source\Utilities\mbedtls_freertos\mbedtls_freertos_port.c">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\Source\Utilities\backoff_algorithm\source\backoff_algorithm.c">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\Source\Application-Protocols\coreHTTP\source\core_http_client.c">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\http_parser\http_parser.c">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c" />
- <ClCompile Include="..\..\..\Source\Utilities\mbedtls_freertos\mbedtls_bio_freertos_plus_tcp.c">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c" />
- <ClCompile Include="..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp\sockets_wrapper.c">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\transport</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\Source\Application-Protocols\network_transport\using_mbedtls\using_mbedtls\using_mbedtls.c">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\transport</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\NetworkInterface.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_DNS.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_Sockets.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_UDP_IP.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\timers.h">
- <Filter>FreeRTOS\Source\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\event_groups.h">
- <Filter>FreeRTOS\Source\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\FreeRTOS.h">
- <Filter>FreeRTOS\Source\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\queue.h">
- <Filter>FreeRTOS\Source\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\semphr.h">
- <Filter>FreeRTOS\Source\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\task.h">
- <Filter>FreeRTOS\Source\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW\portmacro.h">
- <Filter>FreeRTOS\Source\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_IP_Private.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\NetworkBufferManagement.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_ARP.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_DHCP.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_IP.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_TCP_IP.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_TCP_WIN.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOSIPConfigDefaults.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\IPTraceMacroDefaults.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_Stream_Buffer.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\portable.h">
- <Filter>FreeRTOS\Source\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\projdefs.h">
- <Filter>FreeRTOS\Source\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\http_parser\http_parser.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\aes.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\aesni.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\arc4.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\aria.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\asn1.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\asn1write.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\base64.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\bignum.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\blowfish.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\bn_mul.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\camellia.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ccm.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\certs.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\chacha20.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\chachapoly.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\check_config.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\cipher.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\cipher_internal.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\cmac.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\compat-1.3.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\config.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ctr_drbg.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\debug.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\des.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\dhm.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecdh.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecdsa.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecjpake.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecp.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecp_internal.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\entropy.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\entropy_poll.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\gcm.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\havege.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\hkdf.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\hmac_drbg.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md_internal.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md2.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md4.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md5.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\memory_buffer_alloc.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\net.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\net_sockets.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\nist_kw.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\oid.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\padlock.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pem.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pk.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pk_internal.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pkcs5.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pkcs11.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pkcs12.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\platform.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\platform_time.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\platform_util.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\poly1305.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\psa_util.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ripemd160.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\rsa.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\rsa_internal.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\sha1.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\sha256.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\sha512.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_cache.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_ciphersuites.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_cookie.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_internal.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_ticket.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\threading.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\timing.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\version.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509_crl.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509_crt.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509_csr.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\xtea.h">
- <Filter>FreeRTOS+\mbedtls\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\Source\Utilities\mbedtls_freertos\threading_alt.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_errno_TCP.h">
- <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\Source\Utilities\backoff_algorithm\source\include\backoff_algorithm.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\include\core_http_client.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\include\core_http_client_private.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\include\core_http_config_defaults.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include</Filter>
- </ClInclude>
- <ClInclude Include="core_http_config.h">
- <Filter>Config</Filter>
- </ClInclude>
- <ClInclude Include="demo_config.h">
- <Filter>Config</Filter>
- </ClInclude>
- <ClInclude Include="FreeRTOSConfig.h">
- <Filter>Config</Filter>
- </ClInclude>
- <ClInclude Include="FreeRTOSIPConfig.h">
- <Filter>Config</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging\logging.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\logging</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging\logging_levels.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\logging</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging\logging_stack.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\logging</Filter>
- </ClInclude>
- <ClInclude Include="mbedtls_config.h">
- <Filter>Config</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\Source\Application-Protocols\coreMQTT\source\interface\transport_interface.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h" />
- <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h" />
- <ClInclude Include="..\..\..\Source\Application-Protocols\network_transport\using_mbedtls\using_mbedtls\using_mbedtls.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp\sockets_wrapper.h">
- <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include</Filter>
- </ClInclude>
- </ItemGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="FreeRTOS">
+ <UniqueIdentifier>{af3445a1-4908-4170-89ed-39345d90d30c}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS\Source">
+ <UniqueIdentifier>{f32be356-4763-4cae-9020-974a2638cb08}</UniqueIdentifier>
+ <Extensions>*.c</Extensions>
+ </Filter>
+ <Filter Include="FreeRTOS\Source\Portable">
+ <UniqueIdentifier>{88f409e6-d396-4ac5-94bd-7a99c914be46}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+">
+ <UniqueIdentifier>{e5ad4ec7-23dc-4295-8add-2acaee488f5a}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS\Source\include">
+ <UniqueIdentifier>{d2dcd641-8d91-492b-852f-5563ffadaec6}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS+TCP">
+ <UniqueIdentifier>{8672fa26-b119-481f-8b8d-086419c01a3e}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS+TCP\portable">
+ <UniqueIdentifier>{4570be11-ec96-4b55-ac58-24b50ada980a}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS+TCP\include">
+ <UniqueIdentifier>{5d93ed51-023a-41ad-9243-8d230165d34b}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="DemoTasks">
+ <UniqueIdentifier>{b71e974a-9f28-4815-972b-d930ba8a34d0}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries">
+ <UniqueIdentifier>{60717407-397f-4ea5-8492-3314acdd25f0}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\standard">
+ <UniqueIdentifier>{8a90222f-d723-4b4e-8e6e-c57afaf7fa92}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP">
+ <UniqueIdentifier>{2d17d5e6-ed70-4e42-9693-f7a63baf4948}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include">
+ <UniqueIdentifier>{6ad56e6d-c330-4830-8f4b-c75b05dfa866}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform">
+ <UniqueIdentifier>{84613aa2-91dc-4e1a-a3b3-823b6d7bf0e0}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\mbedtls">
+ <UniqueIdentifier>{7bedd2e3-adbb-4c95-9632-445132b459ce}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\mbedtls\include">
+ <UniqueIdentifier>{07a14673-4d02-4780-a099-6b8c654dff91}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\mbedtls\library">
+ <UniqueIdentifier>{e875c5e3-40a2-4408-941e-5e1a951cc663}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls">
+ <UniqueIdentifier>{8a0aa896-6b3a-49b3-997e-681f0d1949ae}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\transport">
+ <UniqueIdentifier>{c5a01679-3e7a-4320-97ac-ee5b872c1650}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include">
+ <UniqueIdentifier>{c992824d-4198-46b2-8d59-5f99ab9946ab}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\transport">
+ <UniqueIdentifier>{6a35782c-bc09-42d5-a850-98bcb668a4dc}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm">
+ <UniqueIdentifier>{fcf93295-15e2-4a84-a5e9-b3c162e9f061}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include">
+ <UniqueIdentifier>{e28148c9-3da7-4e2b-9753-995186714875}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\logging">
+ <UniqueIdentifier>{58e350db-d172-4809-92fe-fcad9dd3d2cf}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Config">
+ <UniqueIdentifier>{64d18fee-0d61-476f-b5e2-9a778d994c6f}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON">
+ <UniqueIdentifier>{920b26be-50b9-439f-af06-96f14427dd9b}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON\include">
+ <UniqueIdentifier>{6b025b5c-b332-47e5-b751-b0aa5c21455d}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4">
+ <UniqueIdentifier>{168b4967-2a71-4793-8c4d-7fd177d5b76e}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4\include">
+ <UniqueIdentifier>{01f6051a-2c97-4942-bc76-90b1a968647d}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW\port.c">
+ <Filter>FreeRTOS\Source\Portable</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\timers.c">
+ <Filter>FreeRTOS\Source</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\list.c">
+ <Filter>FreeRTOS\Source</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\queue.c">
+ <Filter>FreeRTOS\Source</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\tasks.c">
+ <Filter>FreeRTOS\Source</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_UDP_IP.c">
+ <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_DHCP.c">
+ <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_DNS.c">
+ <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_Sockets.c">
+ <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\BufferManagement\BufferAllocation_2.c">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\portable</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\portable\NetworkInterface\WinPCap\NetworkInterface.c">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\portable</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_ARP.c">
+ <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_IP.c">
+ <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_TCP_IP.c">
+ <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_TCP_WIN.c">
+ <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\event_groups.c">
+ <Filter>FreeRTOS\Source</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\portable\MemMang\heap_4.c">
+ <Filter>FreeRTOS\Source\Portable</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\FreeRTOS_Stream_Buffer.c">
+ <Filter>FreeRTOS+\FreeRTOS+TCP</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS\Source\stream_buffer.c">
+ <Filter>FreeRTOS\Source</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\aes.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\aesni.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\arc4.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\aria.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\asn1parse.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\asn1write.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\base64.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\bignum.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\blowfish.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\camellia.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ccm.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\certs.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\chacha20.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\chachapoly.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\cipher.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\cipher_wrap.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\cmac.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ctr_drbg.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\debug.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\des.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\dhm.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecdh.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecdsa.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecjpake.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecp.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ecp_curves.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\entropy.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\entropy_poll.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\gcm.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\havege.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\hkdf.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\hmac_drbg.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md2.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md4.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\md5.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\memory_buffer_alloc.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\net_sockets.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\nist_kw.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\oid.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\padlock.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pem.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pk.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pk_wrap.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkcs5.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkcs11.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkcs12.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkparse.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\pkwrite.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\platform.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\platform_util.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\poly1305.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ripemd160.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\rsa.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\rsa_internal.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\sha1.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\sha256.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\sha512.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_cache.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_ciphersuites.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_cli.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_cookie.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_msg.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_srv.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_ticket.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\ssl_tls.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\threading.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\timing.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\version.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\version_features.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_create.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_crl.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_crt.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509_csr.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509write_crt.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\x509write_csr.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\xtea.c">
+ <Filter>FreeRTOS+\mbedtls\library</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\FreeRTOS-Plus\Demo\Common\Logging\windows\Logging_WinSim.c" />
+ <ClCompile Include="..\Common\main.c" />
+ <ClCompile Include="DemoTasks\S3DownloadHTTPExample.c">
+ <Filter>DemoTasks</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Common\http_demo_utils.c" />
+ <ClCompile Include="..\..\..\Source\Utilities\mbedtls_freertos\mbedtls_freertos_port.c">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Source\Utilities\backoff_algorithm\source\backoff_algorithm.c">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Source\Application-Protocols\network_transport\freertos_plus_tcp\using_mbedtls\using_mbedtls.c">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Source\Application-Protocols\network_transport\freertos_plus_tcp\sockets_wrapper.c">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Source\Application-Protocols\coreHTTP\source\core_http_client.c">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\http_parser\http_parser.c">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c" />
+ <ClCompile Include="..\..\..\Source\coreJSON\source\core_json.c">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Source\AWS\sigv4\source\sigv4.c">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Source\AWS\sigv4\source\sigv4_quicksort.c">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Source\Utilities\mbedtls_freertos\mbedtls_bio_freertos_plus_tcp.c">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c" />
+ <ClCompile Include="..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp\sockets_wrapper.c">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\Source\Application-Protocols\network_transport\using_mbedtls\using_mbedtls\using_mbedtls.c">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\ThirdParty\mbedtls\library\error.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\NetworkInterface.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_DNS.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_Sockets.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_UDP_IP.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\timers.h">
+ <Filter>FreeRTOS\Source\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\event_groups.h">
+ <Filter>FreeRTOS\Source\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\FreeRTOS.h">
+ <Filter>FreeRTOS\Source\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\queue.h">
+ <Filter>FreeRTOS\Source\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\semphr.h">
+ <Filter>FreeRTOS\Source\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\task.h">
+ <Filter>FreeRTOS\Source\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\portable\MSVC-MingW\portmacro.h">
+ <Filter>FreeRTOS\Source\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_IP_Private.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\NetworkBufferManagement.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_ARP.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_DHCP.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_IP.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_TCP_IP.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_TCP_WIN.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOSIPConfigDefaults.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\IPTraceMacroDefaults.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_Stream_Buffer.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\portable.h">
+ <Filter>FreeRTOS\Source\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS\Source\include\projdefs.h">
+ <Filter>FreeRTOS\Source\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\dependency\3rdparty\http_parser\http_parser.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\aes.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\aesni.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\arc4.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\aria.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\asn1.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\asn1write.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\base64.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\bignum.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\blowfish.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\bn_mul.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\camellia.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ccm.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\certs.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\chacha20.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\chachapoly.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\check_config.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\cipher.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\cipher_internal.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\cmac.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\compat-1.3.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\config.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ctr_drbg.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\debug.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\des.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\dhm.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecdh.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecdsa.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecjpake.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecp.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ecp_internal.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\entropy.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\entropy_poll.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\gcm.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\havege.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\hkdf.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\hmac_drbg.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md_internal.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md2.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md4.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\md5.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\memory_buffer_alloc.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\net.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\net_sockets.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\nist_kw.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\oid.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\padlock.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pem.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pk.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pk_internal.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pkcs5.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pkcs11.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\pkcs12.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\platform.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\platform_time.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\platform_util.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\poly1305.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\psa_util.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ripemd160.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\rsa.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\rsa_internal.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\sha1.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\sha256.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\sha512.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_cache.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_ciphersuites.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_cookie.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_internal.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\ssl_ticket.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\threading.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\timing.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\version.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509_crl.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509_crt.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\x509_csr.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\xtea.h">
+ <Filter>FreeRTOS+\mbedtls\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\Utilities\mbedtls_freertos\threading_alt.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\mbedtls</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\Application-Protocols\network_transport\freertos_plus_tcp\sockets_wrapper.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\Application-Protocols\network_transport\freertos_plus_tcp\using_mbedtls\using_mbedtls.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\FreeRTOS-Plus-TCP\include\FreeRTOS_errno_TCP.h">
+ <Filter>FreeRTOS+\FreeRTOS+TCP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\Utilities\backoff_algorithm\source\include\backoff_algorithm.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\backoff_algorithm\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\include\core_http_client.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\include\core_http_client_private.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\Application-Protocols\coreHTTP\source\include\core_http_config_defaults.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreHTTP\include</Filter>
+ </ClInclude>
+ <ClInclude Include="core_http_config.h">
+ <Filter>Config</Filter>
+ </ClInclude>
+ <ClInclude Include="demo_config.h">
+ <Filter>Config</Filter>
+ </ClInclude>
+ <ClInclude Include="FreeRTOSConfig.h">
+ <Filter>Config</Filter>
+ </ClInclude>
+ <ClInclude Include="FreeRTOSIPConfig.h">
+ <Filter>Config</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging\logging.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\logging</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging\logging_levels.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\logging</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\FreeRTOS-Plus\Source\Utilities\logging\logging_stack.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\logging</Filter>
+ </ClInclude>
+ <ClInclude Include="mbedtls_config.h">
+ <Filter>Config</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\Application-Protocols\coreMQTT\source\interface\transport_interface.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h" />
+ <ClInclude Include="..\..\..\Source\coreJSON\source\include\core_json.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\standard\coreJSON\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\AWS\sigv4\source\include\sigv4.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\AWS\sigv4\source\include\sigv4_config_defaults.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\AWS\sigv4\source\include\sigv4_internal.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\AWS\sigv4\source\include\sigv4_quicksort.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\sigv4\include</Filter>
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h" />
+ <ClInclude Include="..\..\..\ThirdParty\mbedtls\include\mbedtls\error.h" />
+ <ClInclude Include="..\..\..\Source\Application-Protocols\network_transport\using_mbedtls\using_mbedtls\using_mbedtls.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\Source\Application-Protocols\network_transport\sockets_wrapper\freertos_plus_tcp\sockets_wrapper.h">
+ <Filter>FreeRTOS+\FreeRTOS IoT Libraries\platform\transport\include</Filter>
+ </ClInclude>
+ </ItemGroup>
</Project> \ No newline at end of file
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/demo_config.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/demo_config.h
index 86c345f07..445bc5407 100644
--- a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/demo_config.h
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/demo_config.h
@@ -94,19 +94,105 @@ extern void vLoggingPrintf( const char * pcFormatString,
* "...base64 data...\n"\
* "-----END CERTIFICATE-----\n"
*
- * #define democonfigROOT_CA_PEM "...insert here..."
+ * #define democonfigS3_ROOT_CA_PEM "...insert here..."
*/
/**
- * @brief The pre-signed GET URL generated by the python script located in
- * FreeRTOS-Plus\Demo\coreHTTP_Windows_Simulator\Common\presigned_url_generator\presigned_urls_gen.py
+ * @brief Server's root CA certificate for TLS authentication with IoT
+ * credential provider.
*
- * @note This script requires AWS CLI to be configured. For instructions, see
- * https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html
+ * The CA can be found at https://www.amazontrust.com/repository.
*
- * Run this script and paste the output democonfigS3_PRESIGNED_GET_URL below.
+ * @note This certificate should be PEM-encoded.
*
- * #define democonfigS3_PRESIGNED_GET_URL "...insert here..."
+ * Must include the PEM header and footer:
+ * "-----BEGIN CERTIFICATE-----\n"\
+ * "...base64 data...\n"\
+ * "-----END CERTIFICATE-----\n"
+ * #define democonfigIOT_CRED_PROVIDER_ROOT_CA_PEM "...insert here..."
+ */
+
+
+/**
+ * @brief Client certificate.
+ *
+ * @note This certificate should be PEM-encoded.
+ *
+ * Must include the PEM header and footer:
+ * "-----BEGIN CERTIFICATE-----
+" * "...base64 data...
+" * "-----END CERTIFICATE-----
+"
+ *
+ * #define democonfigCLIENT_CERTIFICATE_PEM "...insert here..."
+ */
+
+
+/**
+ * @brief Client's private key.
+ *
+ *!!! Please note pasting a key into the header file in this manner is for
+ *!!! convenience of demonstration only and should not be done in production.
+ *!!! Never paste a production private key here!. Production devices should
+ *!!! store keys securely, such as within a secure element. Additionally,
+ *!!! we provide the corePKCS library that further enhances security by
+ *!!! enabling securely stored keys to be used without exposing them to
+ *!!! software.
+ *
+ * @note This private key should be PEM-encoded.
+ *
+ * Must include the PEM header and footer:
+ * "-----BEGIN RSA PRIVATE KEY-----\n"\
+ * "...base64 data...\n"\
+ * "-----END RSA PRIVATE KEY-----\n"
+ *
+ * #define democonfigCLIENT_PRIVATE_KEY_PEM "...insert here..."
+ */
+
+/**
+ * @brief Endpoint for the AWS IoT credential provider.
+ *
+ * @note Can be found with
+ * `aws iot describe-endpoint --endpoint-type iot:CredentialProvider` from
+ * the AWS CLI.
+ *
+ * #define democonfigIOT_CREDENTIAL_PROVIDER_ENDPOINT "...insert here..."
+ */
+
+/**
+ * @brief Role alias name for accessing the credential provider.
+ * 
+ * @note This is the name of the role alias created in AWS IoT
+ * while setting up AWS resources before running the demo.
+ * Refer to the demo setup instructions in the README.md file
+ * within the same directory as this file in the repository.
+
+ * #define democonfigIOT_CREDENTIAL_PROVIDER_ROLE "...insert here..."
+ */
+
+
+/**
+ * @brief Define AWS IoT thing name.
+ *
+ * #define democonfigIOT_THING_NAME "...insert here..."
+ */
+
+
+/**
+ * @brief Name of bucket in AWS S3 from where file needs to be downloaded.
+ *
+ * #define democonfigS3_BUCKET_NAME "...insert here..."
+ */
+
+
+/**
+ * @brief AWS Region where the bucket resides.
+ * #define democonfigS3_BUCKET_REGION "...insert here..."
+ */
+
+/**
+ * @brief Name of file that needs to be downloaded from AWS S3.
+ * #define democonfigS3_OBJECT_NAME "...insert here..."
*/
/**
diff --git a/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/sigv4_config.h b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/sigv4_config.h
new file mode 100644
index 000000000..34eb31223
--- /dev/null
+++ b/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download/sigv4_config.h
@@ -0,0 +1,94 @@
+/*
+ * FreeRTOS V202111.00
+ * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * https://www.FreeRTOS.org
+ * https://github.com/FreeRTOS
+ *
+ */
+
+#ifndef SIGV4_CONFIG_H_
+#define SIGV4_CONFIG_H_
+
+/**************************************************/
+/******* DO NOT CHANGE the following order ********/
+/**************************************************/
+
+/* Include logging header files and define logging macros in the following order:
+ * 1. Include the header file "logging_levels.h".
+ * 2. Define the LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL macros depending on
+ * the logging configuration for SIGV4.
+ * 3. Include the header file "logging_stack.h", if logging is enabled for SIGV4.
+ */
+
+#include "logging_levels.h"
+
+/* Logging configuration for the SigV4 library. */
+#ifndef LIBRARY_LOG_NAME
+ #define LIBRARY_LOG_NAME "SIGV4"
+#endif
+
+#ifndef LIBRARY_LOG_LEVEL
+ #define LIBRARY_LOG_LEVEL LOG_INFO
+#endif
+
+#include "logging_stack.h"
+
+/**
+ * @brief The size of the compile time allocated internal library buffer that is used
+ * for generating the canonical request.
+ */
+#define SIGV4_PROCESSING_BUFFER_LENGTH 1600U
+
+/**
+ * @brief Number of HTTP headers does not exceed a maximum of 10 in HTTP requests sent to S3
+ * for the demo application.
+ */
+#define SIGV4_MAX_HTTP_HEADER_COUNT 10U
+
+/**
+ * @brief Query parameters used in requests to S3.
+ */
+#define SIGV4_MAX_QUERY_PAIR_COUNT 1U
+
+/**
+ * @brief Maximum of all the block sizes of hashing algorithms used in the demo for the
+ * calculation of hash digest.
+ *
+ * @note SHA256 hashing Algorithm is used in the demo for calculating the
+ * hash digest and maximum block size for this is 64U.
+ */
+#define SIGV4_HASH_MAX_BLOCK_LENGTH 64U
+
+/**
+ * @brief Maximum digest length of hash algorithm used to calculate the hash digest.
+ *
+ * @note SHA256 hashing algorithm is used in the demo for calculating the
+ * hash digest and maximum length for this 32U.
+ */
+#define SIGV4_HASH_MAX_DIGEST_LENGTH 32U
+
+/**
+ * @brief Setting SIGV4_MAX_QUERY_PAIR_COUNT to 1 as the HTTP request is not pre-canonicalized
+ * in the demo application.
+ */
+#define SIGV4_USE_CANONICAL_SUPPORT 1
+
+#endif /* ifndef SIGV4_CONFIG_H_ */
diff --git a/FreeRTOS-Plus/Source/AWS/sigv4 b/FreeRTOS-Plus/Source/AWS/sigv4
new file mode 160000
+Subproject 1945a7e69cb57764853cb7930819a9f8dc781bf
diff --git a/lexicon.txt b/lexicon.txt
index a2ecacfbc..7dd1fb0ac 100644
--- a/lexicon.txt
+++ b/lexicon.txt
@@ -1,5 +1,6 @@
ab
abs
+accesskeyid
acclerator
ack
acks
@@ -33,6 +34,7 @@ amout
ampcorea
ampm
amptask
+amz
amzn
ansi
ap
@@ -390,6 +392,7 @@ controltask
coprocessor
copybrief
corehttp
+corejson
coremqtt
corepkcs
coresntp
@@ -417,6 +420,7 @@ createfile
createfileforrx
createthread
creceivedstring
+credentialprovider
cren
crend
crflash
@@ -430,6 +434,7 @@ crxlock
crxstring
crypotki
crypto
+cryptointerface
cryptoki
csamplepagefirstpart
csamplepagesecondpart
@@ -453,6 +458,7 @@ ctx
ctxbuffer
ctxlock
ctxstring
+curbyte
curson
cvore
cwd
@@ -1024,6 +1030,7 @@ irqn
irqs
ish
isn
+iso
isr
isrcode
isrs
@@ -1053,6 +1060,10 @@ jp
jquery
js
json
+jsonbadparameter
+jsonnotfound
+jsonnullparameter
+jsonsuccess
jtag
jtvic
june
@@ -1502,7 +1513,9 @@ pcfilebuffer
pcfilename
pcfrom
pchelpstring
+pchexoutput
pchost
+pcinputstr
pcjobdocument
pcjobid
pcjobstatusreport
@@ -1538,8 +1551,10 @@ pcrestcommand
pcrootdir
pcrxbuffer
pcrxedchar
+pcserver
pcshadowname
pcsource
+pcstartheaderloc
pcstatusmessage
pcstring
pcstringtoreceive
@@ -1913,6 +1928,7 @@ psocket
psr
psregistrationstatus
psslcontext
+pstartheaderloc
pstplatformimagestate
psval
psw
@@ -2020,6 +2036,7 @@ pxdeserializedinfo
pxexpiredtimer
pxfilesize
pxftpclient
+pxheadersdatalen
pxhigherprioritytaskwoken
pxincomingpacket
pxincomingpublishcallback
@@ -2050,9 +2067,12 @@ pxpublishinfo
pxqueue
pxreadhandle
pxreportdescriptor
+pxrequestheaders
pxrequestinfo
+pxresponse
pxreturninfo
pxsiglen
+pxsigvcreds
pxslotid
pxsocket
pxstaticstreambuffer
@@ -2249,6 +2269,7 @@ sctlr
sdk
sdklog
sec
+secretaccesskey
seg
segfault
sel
@@ -2278,6 +2299,7 @@ sertx
serveraddr
serverhost
serverport
+sessiontoken
setbaudratevalue
setfaketaskpriority
setimagestate
@@ -2692,6 +2714,8 @@ ulport
ulprescale
ulpriority
ulprioritysetcounter
+ulrangeend
+ulrangestart
ulreaddata
ulreceivedvalue
ulrecvbytes
@@ -3169,6 +3193,7 @@ xilinx
xincrement
xindex
xinterface
+xinputstrlen
xinterruptcontroller
xiptracevalues
xirqrequest
diff --git a/manifest.yml b/manifest.yml
index e62f8e549..8503070a6 100644
--- a/manifest.yml
+++ b/manifest.yml
@@ -24,6 +24,13 @@ dependencies:
url: "https://github.com/FreeRTOS/coreJSON.git"
path: "FreeRTOS-Plus/Source/coreJSON"
+ - name: "sigv4"
+ version: "1945a7e"
+ repository:
+ type: "git"
+ url: "https://github.com/aws/SigV4-for-AWS-IoT-embedded-sdk.git"
+ path: "FreeRTOS-Plus/Source/AWS/sigv4"
+
- name: "coreHTTP"
version: "v2.1.0"
repository: