/* * AWS IoT Device Embedded C SDK for ZephyrRTOS * Copyright (C) 2021 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. */ #ifndef DEMO_CONFIG_H_ #define DEMO_CONFIG_H_ /**************************************************/ /******* DO NOT CHANGE the following order ********/ /**************************************************/ /* Logging related header files are required to be included in the following order: * 1. Include the header file "logging_levels.h". * 2. Define LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL. * 3. Include the header file "logging_stack.h". */ /* Include header that defines log levels. */ #include "logging_levels.h" /* Logging configuration for the Demo. */ #ifndef LIBRARY_LOG_NAME #define LIBRARY_LOG_NAME "DEMO" #endif #ifndef LIBRARY_LOG_LEVEL #define LIBRARY_LOG_LEVEL LOG_DEBUG #endif #include "logging_stack.h" /************ End of logging configuration ****************/ /** * @brief Details of the MQTT broker to connect to. * * @note Your AWS IoT Core endpoint can be found in the AWS IoT console under * Settings/Custom Endpoint, or using the describe-endpoint API. * * #define AWS_IOT_ENDPOINT "...insert here..." */ /** * @brief AWS IoT MQTT broker port number. * * In general, port 8883 is for secured MQTT connections. * * @note Port 443 requires use of the ALPN TLS extension with the ALPN protocol * name. When using port 8883, ALPN is not required. */ #ifndef AWS_MQTT_PORT #define AWS_MQTT_PORT ( 8883 ) #endif /** * @brief Server's root CA certificate. * * For AWS IoT MQTT broker, this certificate is used to identify the AWS IoT * server and is publicly available. Refer to the AWS documentation available * in the link below. * https://docs.aws.amazon.com/iot/latest/developerguide/server-authentication.html#server-authentication-certs * * The preset default value is of AmazonRootCA1.pem, which can be found in the link below. * https://www.amazontrust.com/repository/AmazonRootCA1.pem * * @note This certificate should be PEM-encoded. * * Must include the PEM header and footer: * "-----BEGIN CERTIFICATE-----\n"\ * "...base64 data...\n"\ * "-----END CERTIFICATE-----" * * #define ROOT_CA_CERT_PEM "...insert here..." */ #ifndef ROOT_CA_CERT_PEM #define ROOT_CA_CERT_PEM "-----BEGIN CERTIFICATE-----\n"\ "MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF\n"\ "ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\n"\ "b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL\n"\ "MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv\n"\ "b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj\n"\ "ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM\n"\ "9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw\n"\ "IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6\n"\ "VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L\n"\ "93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm\n"\ "jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC\n"\ "AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA\n"\ "A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI\n"\ "U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs\n"\ "N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv\n"\ "o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU\n"\ "5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy\n"\ "rqXRfboQnoZsG4q5WTP468SQvvG5\n"\ "-----END CERTIFICATE-----" #endif /** * @brief Client certificate. * * For AWS IoT MQTT broker, refer to the AWS documentation below for details * regarding client authentication. * https://docs.aws.amazon.com/iot/latest/developerguide/client-authentication.html * * @note This certificate should be PEM-encoded. * * Must include the PEM header and footer: * "-----BEGIN CERTIFICATE-----\n"\ * "...base64 data...\n"\ * "-----END CERTIFICATE-----" * * #define CLIENT_CERT_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. * * For AWS IoT MQTT broker, refer to the AWS documentation below for details * regarding clientauthentication. * https://docs.aws.amazon.com/iot/latest/developerguide/client-authentication.html * * @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-----" * * #define CLIENT_PRIVATE_KEY_PEM "...insert here..." */ /** * @brief The username value for authenticating client to MQTT broker when * username/password based client authentication is used. * * Refer to the AWS IoT documentation below for details regarding client * authentication with a username and password. * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html * As mentioned in the link above, an authorizer setup needs to be done to use * username/password based client authentication. * * @note AWS IoT message broker requires either a set of client certificate/private key * or username/password to authenticate the client. If this config is defined, * the username and password will be used instead of the client certificate and * private key for client authentication. * * #define CLIENT_USERNAME "...insert here..." */ /** * @brief The password value for authenticating client to MQTT broker when * username/password based client authentication is used. * * Refer to the AWS IoT documentation below for details regarding client * authentication with a username and password. * https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html * As mentioned in the link above, an authorizer setup needs to be done to use * username/password based client authentication. * * @note AWS IoT message broker requires either a set of client certificate/private key * or username/password to authenticate the client. * * #define CLIENT_PASSWORD "...insert here..." */ /** * @brief MQTT client identifier. * * No two clients may use the same client identifier simultaneously. */ #ifndef CLIENT_IDENTIFIER #define CLIENT_IDENTIFIER "testclient" #endif /** * @brief Size of the network buffer for MQTT packets. */ #define NETWORK_BUFFER_SIZE ( 1024U ) /** * @brief The name of the operating system that the application is running on. * The current value is given as an example. Please update for your specific * operating system. */ #define OS_NAME "Zephyr" /** * @brief The version of the operating system that the application is running * on. The current value is given as an example. Please update for your specific * operating system version. */ #define OS_VERSION "2.6.0" /** * @brief The name of the hardware platform the application is running on. The * current value is given as an example. Please update for your specific * hardware platform. */ #define HARDWARE_PLATFORM_NAME "ESP32" /** * @brief The name of the MQTT library used and its version, following an "@" * symbol. */ #include "core_mqtt.h" #define MQTT_LIB "core-mqtt@" MQTT_LIBRARY_VERSION /** * @brief The name of the Wi-Fi network to join. * * #define WIFI_NETWORK_SSID "...insert here..." */ /** * @brief Password needed to join Wi-Fi network. If you are using WPA, set this * to your network password. If there is no password, use the empty string "". * * #define WIFI_NETWORK_PASSWORD "...insert here...." */ #endif /* ifndef DEMO_CONFIG_H_ */