Skip to content

Commit cd425e1

Browse files
committed
Further hiding BearSSL for ESP8266 patching
This makes it at least compile for ESP32 again. Unfortunately ESP32 chose mbedtls rather than BearSSL, and the APIs are quite different, so this is the most minimal porting only so far.
1 parent e0247d2 commit cd425e1

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

airrohr-firmware/airrohr-firmware.ino

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,6 @@ enum class PmSensorCmd {
337337
};
338338

339339
LoggerConfig loggerConfigs[LoggerCount];
340-
BearSSL::X509List x509_dst_root_ca(dst_root_ca_x3);
341340

342341
long int sample_count = 0;
343342
bool htu21d_init_failed = false;
@@ -1092,30 +1091,35 @@ static void writeConfig() {
10921091
* Prepare information for data Loggers *
10931092
*****************************************************************/
10941093
static void createLoggerConfigs() {
1094+
#if defined(ESP8266)
1095+
auto new_session = []() { return new BearSSL::Session; };
1096+
#else
1097+
auto new_session = []() { return nullptr; };
1098+
#endif
10951099
if (cfg::send2dusti) {
10961100
loggerConfigs[LoggerSensorCommunity].destport = 80;
10971101
if (cfg::ssl_dusti) {
10981102
loggerConfigs[LoggerSensorCommunity].destport = 443;
1099-
loggerConfigs[LoggerSensorCommunity].session = new BearSSL::Session;
1103+
loggerConfigs[LoggerSensorCommunity].session = new_session();
11001104
}
11011105
}
11021106
loggerConfigs[LoggerMadavi].destport = PORT_MADAVI;
11031107
if (cfg::send2madavi && cfg::ssl_madavi) {
11041108
loggerConfigs[LoggerMadavi].destport = 443;
1105-
loggerConfigs[LoggerMadavi].session = new BearSSL::Session;
1109+
loggerConfigs[LoggerMadavi].session = new_session();
11061110
}
11071111
loggerConfigs[LoggerSensemap].destport = PORT_SENSEMAP;
1108-
loggerConfigs[LoggerSensemap].session = new BearSSL::Session;
1112+
loggerConfigs[LoggerSensemap].session = new_session();
11091113
loggerConfigs[LoggerFSapp].destport = PORT_FSAPP;
1110-
loggerConfigs[LoggerFSapp].session = new BearSSL::Session;
1114+
loggerConfigs[LoggerFSapp].session = new_session();
11111115
loggerConfigs[Loggeraircms].destport = PORT_AIRCMS;
11121116
loggerConfigs[LoggerInflux].destport = cfg::port_influx;
11131117
if (cfg::send2influx && cfg::ssl_influx) {
1114-
loggerConfigs[LoggerInflux].session = new BearSSL::Session;
1118+
loggerConfigs[LoggerInflux].session = new_session();
11151119
}
11161120
loggerConfigs[LoggerCustom].destport = cfg::port_custom;
11171121
if (cfg::send2custom && (cfg::ssl_custom || (cfg::port_custom == 443))) {
1118-
loggerConfigs[LoggerCustom].session = new BearSSL::Session;
1122+
loggerConfigs[LoggerCustom].session = new_session();
11191123
}
11201124
}
11211125

@@ -2339,6 +2343,9 @@ static void connectWifi() {
23392343
last_signal_strength = WiFi.RSSI();
23402344
}
23412345

2346+
#if defined(ESP8266)
2347+
BearSSL::X509List x509_dst_root_ca(dst_root_ca_x3);
2348+
23422349
static void configureCACertTrustAnchor(WiFiClientSecure* client) {
23432350
constexpr time_t fw_built_year = (__DATE__[ 7] - '0') * 1000 + \
23442351
(__DATE__[ 8] - '0') * 100 + \
@@ -2352,12 +2359,14 @@ static void configureCACertTrustAnchor(WiFiClientSecure* client) {
23522359
client->setTrustAnchors(&x509_dst_root_ca);
23532360
}
23542361
}
2362+
#endif
23552363

23562364
static WiFiClient* getNewLoggerWiFiClient(const LoggerEntry logger) {
23572365

23582366
WiFiClient* _client;
23592367
if (loggerConfigs[logger].session) {
23602368
_client = new WiFiClientSecure;
2369+
#if defined(ESP8266)
23612370
static_cast<WiFiClientSecure*>(_client)->setSession(loggerConfigs[logger].session);
23622371
static_cast<WiFiClientSecure*>(_client)->setBufferSizes(1024, TCP_MSS > 1024 ? 2048 : 1024);
23632372
switch (logger) {
@@ -2370,6 +2379,7 @@ static WiFiClient* getNewLoggerWiFiClient(const LoggerEntry logger) {
23702379
default:
23712380
configureCACertTrustAnchor(static_cast<WiFiClientSecure*>(_client));
23722381
}
2382+
#endif
23732383
} else {
23742384
_client = new WiFiClient;
23752385
}

airrohr-firmware/ext_def.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@ enum LoggerEntry {
4545
struct LoggerConfig {
4646
uint16_t destport;
4747
uint16_t _unused;
48+
#if defined(ESP8266)
4849
BearSSL::Session* session;
50+
#else
51+
void* session;
52+
#endif
4953
};
5054

5155
// IMPORTANT: NO MORE CHANGES TO VARIABLE NAMES NEEDED FOR EXTERNAL APIS

0 commit comments

Comments
 (0)