1#ifndef _NOSTR_ESP32_PLATFORM_H
2#define _NOSTR_ESP32_PLATFORM_H 1
10#include "bootloader_random.h"
11#include "esp_random.h"
14#include <initializer_list>
18namespace ESP32Platform {
20inline unsigned long getUnixTimestamp() {
23 while (!getLocalTime(&timeinfo)) {
24 Serial.println(
"Still waiting for ntp sync");
31inline bool fillRandom(uint8_t *output,
size_t outputSize) {
32 if (output ==
nullptr && outputSize != 0)
return false;
33 if (outputSize == 0)
return true;
43 while (offset < outputSize) {
44 uint32_t word = esp_random();
45 for (
size_t i = 0; i <
sizeof(word) && offset < outputSize; ++i) {
46 output[offset++] =
static_cast<uint8_t
>(word & 0xFF);
49 if (offset < outputSize) delay(1);
54 Serial.println(str.c_str());
62 WiFi.persistent(
false);
63 WiFi.begin(ssid, passphrase);
64 Serial.println(
"Connecting to " + ssid);
65 while (WiFi.status() != WL_CONNECTED) {
70 Serial.println(
"WiFi connected");
71 Serial.println(
"IP address: ");
72 Serial.println(WiFi.localIP());
78inline void initTime(
const char *ntpServer,
long unused1 = 0,
int unused2 = 3600) {
79 configTime(0, 0, ntpServer);
90inline void initNostr(
bool withLogger,
bool initializeRngWithoutRadio =
false) {
91 if (initializeRngWithoutRadio) bootloader_random_enable();
106inline ESP32Transport *getTransport() {
107 return new nostr::esp32::ESP32Transport();
109inline ESP32Transport *getTransport(
const ESP32TransportConfig &config) {
110 return new nostr::esp32::ESP32Transport(config);
#define NostrString
Definition NostrString.h:10
static void setRandomBytesProvider(std::function< bool(uint8_t *, size_t)> randomBytesProvider)
Definition NostrUtils.cpp:87
static void setUnixTimeSecondsProvider(std::function< unsigned long long()> timeSecondsProvider)
Definition NostrUtils.cpp:83
static void setLogger(std::function< void(const NostrString &)> logger)
Definition NostrUtils.cpp:91
Definition CryptoLock.h:6