49 lines
2.3 KiB
C
Raw Normal View History

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);
/**
* @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