esp8266 / esp8266/Arduino

Weird Behaviour with BearSSL on GPIO

Open
#8,976 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
16.7k
Forks
13.1k
PR merge metrics
No merged PRs in 30d

Description

I use GPIO 5 to trigger a relay, my code also connects with a secure MQTT connection for which I have to use the BearSSL certificate definitions.
Without the BearSSL certificates, when the esp restarts it does not re-trigger the relay, and the GPIO maintains its' state between reboots, but when I use the bearSSL certificates the behavior changes, and GPIO 5 goes low on restart. Any explanation why and how to mitigate it?
I am 100% sure it is because of the import, cause I removed components of my code until I could find the piece of code that causes this, and it was because of the declarations.

```
#include
static const char AWS_CERT_CA[] PROGMEM = R"EOF(
aws root)EOF";

static const char AWS_CERT_CRT[] PROGMEM = R"KEY(
device cert)KEY";

static const char AWS_CERT_KEY[] PROGMEM = R"KEY(
device key )KEY";

BearSSL::X509List cert(AWS_CERT_CA);
BearSSL::X509List client_crt(AWS_CERT_CRT);
BearSSL::PrivateKey key(AWS_CERT_KEY);

WiFiClientSecure espClient;
void setup() {
pinMode(5, OUTPUT);
delay(2000);
digitalWrite(5, HIGH);
delay(2000);
ESP.restart();
}

void loop() {}
```

Without the following three lines

```
BearSSL::X509List cert(AWS_CERT_CA);
BearSSL::X509List client_crt(AWS_CERT_CRT);
BearSSL::PrivateKey key(AWS_CERT_KEY);
```

The LED on GPIO 5 does not flicker on restarts but adding these lines makes them flicker. Any solution or suggestion towards a solution for this problem will be really helpful.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.