2024-06-02 23:35:20 +02:00
|
|
|
#ifndef UTILITIES_H
|
|
|
|
#define UTILITIES_H
|
|
|
|
|
|
|
|
#include <Arduino.h>
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Validates whether a given string contains only characters allowed in WiFi SSIDs and passwords.
|
|
|
|
*
|
|
|
|
* This function checks each character in the provided string to ensure
|
|
|
|
* that it contains only characters allowed in WiFi SSIDs and passwords.
|
|
|
|
* It considers characters from 'A' to 'Z', 'a' to 'z', '0' to '9', as well as
|
|
|
|
* the following special characters: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
|
|
|
|
*
|
|
|
|
* @param string Pointer to the string to be validated.
|
|
|
|
* @param size Size of the string including the null-terminator.
|
|
|
|
* @return true if the string contains only allowed characters or is NULL,
|
|
|
|
* false otherwise.
|
|
|
|
*/
|
|
|
|
bool validateWiFiString(char *string, size_t size);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Copies a string to a buffer, replacing invalid WiFi SSID characters with a placeholder.
|
|
|
|
*
|
|
|
|
* This function checks each character in the provided input string to ensure
|
|
|
|
* that it contains only characters allowed in WiFi SSIDs and passwords. If a character
|
|
|
|
* is invalid, it replaces it with a placeholder character (e.g., '_').
|
|
|
|
* It considers characters from 'A' to 'Z', 'a' to 'z', '0' to '9', as well as
|
|
|
|
* the following special characters: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
|
|
|
|
*
|
|
|
|
* @param input Pointer to the input string to be validated and copied.
|
|
|
|
* @param buffer Pointer to the buffer where the output string will be copied.
|
|
|
|
* @param bufferSize Size of the buffer including the null-terminator.
|
|
|
|
*/
|
|
|
|
void sanitizeWiFiString(const char *input, char *buffer, size_t bufferSize);
|
|
|
|
|
2024-06-04 22:10:22 +02:00
|
|
|
/**
|
|
|
|
* @brief Generates a device-specific password based on a seed and the ESP8266 Chip ID.
|
|
|
|
*
|
|
|
|
* This function combines a given seed with the unique Chip ID of the ESP8266 device to create a device-specific password.
|
|
|
|
* The resulting password is stored in the provided character buffer.
|
|
|
|
*
|
|
|
|
* @param seed The seed string used for password generation. Should be up to 16 characters long.
|
|
|
|
* @param passwordBuffer The character buffer where the generated password will be stored.
|
|
|
|
* @param bufferLength The length of the password buffer. Should be large enough to hold the generated password and null terminator.
|
|
|
|
*/
|
|
|
|
void GenerateDeviceSpecificPassword(const char* seed, char* passwordBuffer, size_t bufferLength);
|
|
|
|
|
2024-06-02 23:35:20 +02:00
|
|
|
#endif // UTILITIES_H
|