cloud/dps_demo/dps_demo_common.h

/*******************************************************************************
* # License
* Copyright 2019 Silicon Laboratories Inc. www.silabs.com
*******************************************************************************
*
* The licensor of this software is Silicon Laboratories Inc. Your use of this
* software is governed by the terms of Silicon Labs Master Software License
* Agreement (MSLA) available at
* www.silabs.com/about-us/legal/master-software-license-agreement. This
* software is distributed to you in Source Code format and is governed by the
* sections of the MSLA applicable to Source Code.
*
******************************************************************************/
#pragma once
#include "gos.h"
#include "string.h"
#define DPS_DEMO_SETTINGS_MAGIC 0x01234567
#define DEFAULT_PROVISIONING_HOST ""
#define DEFAULT_PROVISIONING_PORT 8883
#define DEFAULT_CONNECTOR_CODE "DPS_CONNECTOR"
#define DEFAULT_CA_CERT_FILE "BaltimoreCyberTrustRoot.crt"
#define DEFAULT_CLIENT_CERT_FILE "client_cert.pem"
#define DEFAULT_CLIENT_KEY_FILE "client_key.pem"
#define MAX_BROKER_HOSTNAME_LENGTH 64
#define MAX_CONNECTOR_CODE_LENGTH 64
#define MAX_FILENAME_LENGTH 64
// Settings struct for saving to NVM
typedef struct
{
uint32_t magic;
uint16_t port;
char hostname[MAX_BROKER_HOSTNAME_LENGTH];
char connector[MAX_CONNECTOR_CODE_LENGTH];
char ca_cert[MAX_FILENAME_LENGTH];
char key_filename[MAX_FILENAME_LENGTH];
char cert_filename[MAX_FILENAME_LENGTH];
} dps_demo_settings_t;
extern dps_demo_settings_t* dps_settings;
gos_result_t send_provisioning_request(dps_demo_settings_t* settings);
gos_result_t validate_device_credentials(dps_demo_settings_t* settings);