Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 97018a5

Browse filesBrowse files
authored
various minor web fixes (esp8266#8885)
* httpclient: use refs - httpserver: add chunks in examples * basic https client: update cert * debug log: read() returning -1 is usual and means "nothing to read" * emulation on host: SSL server has never been and is now working * style * move SSL server certs from examples into a single place with appropriate warnings * web-hello-servers: make chunks bigger * factorize template declaration * http-client: add getString(pre-reservation) * mock: add umm_info() * style * comment API in example * style * fix per review
1 parent d3c102e commit 97018a5
Copy full SHA for 97018a5

File tree

Expand file treeCollapse file tree

18 files changed

+251
-298
lines changed
Filter options
Expand file treeCollapse file tree

18 files changed

+251
-298
lines changed

‎libraries/ESP8266HTTPClient/examples/BasicHttpsClient/BasicHttpsClient.ino

Copy file name to clipboardExpand all lines: libraries/ESP8266HTTPClient/examples/BasicHttpsClient/BasicHttpsClient.ino
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ void loop() {
6262
// file found at server
6363
if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
6464
String payload = https.getString();
65+
// String payload = https.getString(1024); // optionally pre-reserve string to avoid reallocations in chunk mode
6566
Serial.println(payload);
6667
}
6768
} else {

‎libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp

Copy file name to clipboardExpand all lines: libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp
+16-16Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ bool HTTPClient::begin(WiFiClient &client, const String& host, uint16_t port, co
107107
_canReuse = false;
108108
disconnect(true);
109109
}
110-
110+
111111
_client = client.clone();
112112

113113
clear();
@@ -483,7 +483,7 @@ int HTTPClient::sendRequest(const char * type, const uint8_t * payload, size_t s
483483
//
484484
redirect = false;
485485
if (
486-
_followRedirects != HTTPC_DISABLE_FOLLOW_REDIRECTS &&
486+
_followRedirects != HTTPC_DISABLE_FOLLOW_REDIRECTS &&
487487
redirectCount < _redirectLimit &&
488488
_location.length() > 0
489489
) {
@@ -496,7 +496,7 @@ int HTTPClient::sendRequest(const char * type, const uint8_t * payload, size_t s
496496
// (the RFC require user to accept the redirection)
497497
_followRedirects == HTTPC_FORCE_FOLLOW_REDIRECTS ||
498498
// allow GET and HEAD methods without force
499-
!strcmp(type, "GET") ||
499+
!strcmp(type, "GET") ||
500500
!strcmp(type, "HEAD")
501501
) {
502502
redirectCount += 1;
@@ -631,20 +631,20 @@ WiFiClient* HTTPClient::getStreamPtr(void)
631631
* return all payload as String (may need lot of ram or trigger out of memory!)
632632
* @return String
633633
*/
634-
const String& HTTPClient::getString(void)
634+
const String& HTTPClient::getString(int reserve)
635635
{
636636
if (_payload) {
637637
return *_payload;
638638
}
639639

640640
_payload.reset(new StreamString());
641641

642-
if(_size > 0) {
643-
// try to reserve needed memory
644-
if(!_payload->reserve((_size + 1))) {
645-
DEBUG_HTTPCLIENT("[HTTP-Client][getString] not enough memory to reserve a string! need: %d\n", (_size + 1));
646-
return *_payload;
647-
}
642+
if (_size > 0 && _size > reserve)
643+
reserve = _size;
644+
645+
if (reserve > 0 && !_payload->reserve(reserve)) {
646+
DEBUG_HTTPCLIENT("[HTTP-Client][getString] not enough memory to reserve a string! need: %d\n", reserve);
647+
return *_payload;
648648
}
649649

650650
writeToStream(_payload.get());
@@ -732,30 +732,30 @@ void HTTPClient::collectHeaders(const char* headerKeys[], const size_t headerKey
732732
}
733733
}
734734

735-
String HTTPClient::header(const char* name)
735+
const String& HTTPClient::header(const char* name)
736736
{
737737
for(size_t i = 0; i < _headerKeysCount; ++i) {
738738
if(_currentHeaders[i].key == name) {
739739
return _currentHeaders[i].value;
740740
}
741741
}
742-
return String();
742+
return emptyString;
743743
}
744744

745-
String HTTPClient::header(size_t i)
745+
const String& HTTPClient::header(size_t i)
746746
{
747747
if(i < _headerKeysCount) {
748748
return _currentHeaders[i].value;
749749
}
750-
return String();
750+
return emptyString;
751751
}
752752

753-
String HTTPClient::headerName(size_t i)
753+
const String& HTTPClient::headerName(size_t i)
754754
{
755755
if(i < _headerKeysCount) {
756756
return _currentHeaders[i].key;
757757
}
758-
return String();
758+
return emptyString;
759759
}
760760

761761
int HTTPClient::headers()

‎libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h

Copy file name to clipboardExpand all lines: libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h
+10-4Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,9 +203,9 @@ class HTTPClient
203203

204204
/// Response handling
205205
void collectHeaders(const char* headerKeys[], const size_t headerKeysCount);
206-
String header(const char* name); // get request header value by name
207-
String header(size_t i); // get request header value by number
208-
String headerName(size_t i); // get request header name by number
206+
const String& header(const char* name); // get request header value by name
207+
const String& header(size_t i); // get request header value by number
208+
const String& headerName(size_t i); // get request header name by number
209209
int headers(); // get header count
210210
bool hasHeader(const char* name); // check if header exists
211211

@@ -217,7 +217,13 @@ class HTTPClient
217217
WiFiClient* getStreamPtr(void);
218218
template <typename S> int writeToPrint(S* print) [[deprecated]] { return writeToStream(print); }
219219
template <typename S> int writeToStream(S* output);
220-
const String& getString(void);
220+
221+
// In case of chunks = when size cannot be known in advance
222+
// by the library, it might be useful to pre-reserve enough
223+
// space instead of offending memory with a growing String
224+
const String& getString() { return getString(0); }
225+
const String& getString(int reserve);
226+
221227
static String errorToString(int error);
222228

223229
protected:

‎libraries/ESP8266WebServer/examples/HelloServer/HelloServer.ino

Copy file name to clipboardExpand all lines: libraries/ESP8266WebServer/examples/HelloServer/HelloServer.ino
+23Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ const char* password = STAPSK;
1313

1414
ESP8266WebServer server(80);
1515

16+
String bigChunk;
17+
1618
const int led = 13;
1719

1820
void handleRoot() {
@@ -36,6 +38,16 @@ void handleNotFound() {
3638
digitalWrite(led, 0);
3739
}
3840

41+
void handleChunked() {
42+
server.chunkedResponseModeStart(200, F("text/html"));
43+
44+
server.sendContent(bigChunk);
45+
server.sendContent(F("chunk 2"));
46+
server.sendContent(bigChunk);
47+
48+
server.chunkedResponseFinalize();
49+
}
50+
3951
void setup(void) {
4052
pinMode(led, OUTPUT);
4153
digitalWrite(led, 0);
@@ -80,6 +92,8 @@ void setup(void) {
8092
server.send(200, "image/gif", gif_colored, sizeof(gif_colored));
8193
});
8294

95+
server.on("/chunks", handleChunked);
96+
8397
server.onNotFound(handleNotFound);
8498

8599
/////////////////////////////////////////////////////////
@@ -142,6 +156,15 @@ void setup(void) {
142156
// Hook examples
143157
/////////////////////////////////////////////////////////
144158

159+
// prepare chunk in ram for sending
160+
constexpr int chunkLen = 4000; // ~4KB chunk
161+
bigChunk.reserve(chunkLen);
162+
bigChunk = F("chunk of len ");
163+
bigChunk += chunkLen;
164+
String piece = F("-blah");
165+
while (bigChunk.length() < chunkLen - piece.length())
166+
bigChunk += piece;
167+
145168
server.begin();
146169
Serial.println("HTTP server started");
147170
}

‎libraries/ESP8266WebServer/examples/HelloServerBearSSL/HelloServerBearSSL.ino

Copy file name to clipboardExpand all lines: libraries/ESP8266WebServer/examples/HelloServerBearSSL/HelloServerBearSSL.ino
+25-53Lines changed: 25 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -27,59 +27,10 @@ const char* password = STAPSK;
2727
BearSSL::ESP8266WebServerSecure server(443);
2828
BearSSL::ServerSessions serverCache(5);
2929

30-
static const char serverCert[] PROGMEM = R"EOF(
31-
-----BEGIN CERTIFICATE-----
32-
MIIDSzCCAjMCCQD2ahcfZAwXxDANBgkqhkiG9w0BAQsFADCBiTELMAkGA1UEBhMC
33-
VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU9yYW5nZSBDb3VudHkx
34-
EDAOBgNVBAoMB1ByaXZhZG8xGjAYBgNVBAMMEXNlcnZlci56bGFiZWwuY29tMR8w
35-
HQYJKoZIhvcNAQkBFhBlYXJsZUB6bGFiZWwuY29tMB4XDTE4MDMwNjA1NDg0NFoX
36-
DTE5MDMwNjA1NDg0NFowRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3Rh
37-
dGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZI
38-
hvcNAQEBBQADggEPADCCAQoCggEBAPVKBwbZ+KDSl40YCDkP6y8Sv4iNGvEOZg8Y
39-
X7sGvf/xZH7UiCBWPFIRpNmDSaZ3yjsmFqm6sLiYSGSdrBCFqdt9NTp2r7hga6Sj
40-
oASSZY4B9pf+GblDy5m10KDx90BFKXdPMCLT+o76Nx9PpCvw13A848wHNG3bpBgI
41-
t+w/vJCX3bkRn8yEYAU6GdMbYe7v446hX3kY5UmgeJFr9xz1kq6AzYrMt/UHhNzO
42-
S+QckJaY0OGWvmTNspY3xCbbFtIDkCdBS8CZAw+itnofvnWWKQEXlt6otPh5njwy
43-
+O1t/Q+Z7OMDYQaH02IQx3188/kW3FzOY32knER1uzjmRO+jhA8CAwEAATANBgkq
44-
hkiG9w0BAQsFAAOCAQEAnDrROGRETB0woIcI1+acY1yRq4yAcH2/hdq2MoM+DCyM
45-
E8CJaOznGR9ND0ImWpTZqomHOUkOBpvu7u315blQZcLbL1LfHJGRTCHVhvVrcyEb
46-
fWTnRtAQdlirUm/obwXIitoz64VSbIVzcqqfg9C6ZREB9JbEX98/9Wp2gVY+31oC
47-
JfUvYadSYxh3nblvA4OL+iEZiW8NE3hbW6WPXxvS7Euge0uWMPc4uEcnsE0ZVG3m
48-
+TGimzSdeWDvGBRWZHXczC2zD4aoE5vrl+GD2i++c6yjL/otHfYyUpzUfbI2hMAA
49-
5tAF1D5vAAwA8nfPysumlLsIjohJZo4lgnhB++AlOg==
50-
-----END CERTIFICATE-----
51-
)EOF";
52-
53-
static const char serverKey[] PROGMEM = R"EOF(
54-
-----BEGIN RSA PRIVATE KEY-----
55-
MIIEpQIBAAKCAQEA9UoHBtn4oNKXjRgIOQ/rLxK/iI0a8Q5mDxhfuwa9//FkftSI
56-
IFY8UhGk2YNJpnfKOyYWqbqwuJhIZJ2sEIWp2301OnavuGBrpKOgBJJljgH2l/4Z
57-
uUPLmbXQoPH3QEUpd08wItP6jvo3H0+kK/DXcDzjzAc0bdukGAi37D+8kJfduRGf
58-
zIRgBToZ0xth7u/jjqFfeRjlSaB4kWv3HPWSroDNisy39QeE3M5L5ByQlpjQ4Za+
59-
ZM2yljfEJtsW0gOQJ0FLwJkDD6K2eh++dZYpAReW3qi0+HmePDL47W39D5ns4wNh
60-
BofTYhDHfXzz+RbcXM5jfaScRHW7OOZE76OEDwIDAQABAoIBAQDKov5NFbNFQNR8
61-
djcM1O7Is6dRaqiwLeH4ZH1pZ3d9QnFwKanPdQ5eCj9yhfhJMrr5xEyCqT0nMn7T
62-
yEIGYDXjontfsf8WxWkH2TjvrfWBrHOIOx4LJEvFzyLsYxiMmtZXvy6YByD+Dw2M
63-
q2GH/24rRdI2klkozIOyazluTXU8yOsSGxHr/aOa9/sZISgLmaGOOuKI/3Zqjdhr
64-
eHeSqoQFt3xXa8jw01YubQUDw/4cv9rk2ytTdAoQUimiKtgtjsggpP1LTq4xcuqN
65-
d4jWhTcnorWpbD2cVLxrEbnSR3VuBCJEZv5axg5ZPxLEnlcId8vMtvTRb5nzzszn
66-
geYUWDPhAoGBAPyKVNqqwQl44oIeiuRM2FYenMt4voVaz3ExJX2JysrG0jtCPv+Y
67-
84R6Cv3nfITz3EZDWp5sW3OwoGr77lF7Tv9tD6BptEmgBeuca3SHIdhG2MR+tLyx
68-
/tkIAarxQcTGsZaSqra3gXOJCMz9h2P5dxpdU+0yeMmOEnAqgQ8qtNBfAoGBAPim
69-
RAtnrd0WSlCgqVGYFCvDh1kD5QTNbZc+1PcBHbVV45EmJ2fLXnlDeplIZJdYxmzu
70-
DMOxZBYgfeLY9exje00eZJNSj/csjJQqiRftrbvYY7m5njX1kM5K8x4HlynQTDkg
71-
rtKO0YZJxxmjRTbFGMegh1SLlFLRIMtehNhOgipRAoGBAPnEEpJGCS9GGLfaX0HW
72-
YqwiEK8Il12q57mqgsq7ag7NPwWOymHesxHV5mMh/Dw+NyBi4xAGWRh9mtrUmeqK
73-
iyICik773Gxo0RIqnPgd4jJWN3N3YWeynzulOIkJnSNx5BforOCTc3uCD2s2YB5X
74-
jx1LKoNQxLeLRN8cmpIWicf/AoGBANjRSsZTKwV9WWIDJoHyxav/vPb+8WYFp8lZ
75-
zaRxQbGM6nn4NiZI7OF62N3uhWB/1c7IqTK/bVHqFTuJCrCNcsgld3gLZ2QWYaMV
76-
kCPgaj1BjHw4AmB0+EcajfKilcqtSroJ6MfMJ6IclVOizkjbByeTsE4lxDmPCDSt
77-
/9MKanBxAoGAY9xo741Pn9WUxDyRplww606ccdNf/ksHWNc/Y2B5SPwxxSnIq8nO
78-
j01SmsCUYVFAgZVOTiiycakjYLzxlc6p8BxSVqy6LlJqn95N8OXoQ+bkwUux/ekg
79-
gz5JWYhbD6c38khSzJb0pNXCo3EuYAVa36kDM96k1BtWuhRS10Q1VXk=
80-
-----END RSA PRIVATE KEY-----
81-
)EOF";
30+
#define USING_INSECURE_CERTS_AND_KEYS_AND_CAS 1
31+
#include <ssl-tls-ca-key-cert-example.h>
8232

33+
String bigChunk;
8334

8435
const int led = 13;
8536

@@ -104,6 +55,16 @@ void handleNotFound() {
10455
digitalWrite(led, 0);
10556
}
10657

58+
void handleChunked() {
59+
server.chunkedResponseModeStart(200, F("text/html"));
60+
61+
server.sendContent(bigChunk);
62+
server.sendContent(F("chunk 2"));
63+
server.sendContent(bigChunk);
64+
65+
server.chunkedResponseFinalize();
66+
}
67+
10768
void setup(void) {
10869
pinMode(led, OUTPUT);
10970
digitalWrite(led, 0);
@@ -127,7 +88,7 @@ void setup(void) {
12788

12889
if (MDNS.begin("esp8266")) { Serial.println("MDNS responder started"); }
12990

130-
server.getServer().setRSACert(new BearSSL::X509List(serverCert), new BearSSL::PrivateKey(serverKey));
91+
server.getServer().setRSACert(new BearSSL::X509List(server_cert), new BearSSL::PrivateKey(server_private_key));
13192

13293
// Cache SSL sessions to accelerate the TLS handshake.
13394
server.getServer().setCache(&serverCache);
@@ -138,8 +99,19 @@ void setup(void) {
13899
server.send(200, "text/plain", "this works as well");
139100
});
140101

102+
server.on("/chunks", handleChunked);
103+
141104
server.onNotFound(handleNotFound);
142105

106+
// prepare chunk in ram for sending
107+
constexpr int chunkLen = 4000; // ~4KB chunk
108+
bigChunk.reserve(chunkLen);
109+
bigChunk = F("chunk of len ");
110+
bigChunk += chunkLen;
111+
String piece = F("-blah");
112+
while (bigChunk.length() < chunkLen - piece.length())
113+
bigChunk += piece;
114+
143115
server.begin();
144116
Serial.println("HTTPS server started");
145117
}

‎libraries/ESP8266WiFi/examples/BearSSL_Server/BearSSL_Server.ino

Copy file name to clipboardExpand all lines: libraries/ESP8266WiFi/examples/BearSSL_Server/BearSSL_Server.ino
+2-87Lines changed: 2 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -50,93 +50,8 @@ BearSSL::WiFiServerSecure server(443);
5050

5151
//#define USE_EC // Enable Elliptic Curve signed cert
5252

53-
#ifndef USE_EC
54-
55-
// The server's private key which must be kept secret
56-
const char server_private_key[] PROGMEM = R"EOF(
57-
-----BEGIN PRIVATE KEY-----
58-
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDJblrg47vF3qlE
59-
NMRM7uG8QwE6v/AKpxOL+CLb/32s+dW9Psgf+oZKJgzGkYUoJdWpLitTmTZeykAs
60-
Sq7Iax5Rq/mGqyAc7oJAUUAupfNRU0KwkD1XqtpQWEFoiqoIqZbOZ4CRX5q8z/MN
61-
BH1aPVBMKaL33uwknkgJBzxwZJ2+uGKxRJt8+koj1CXgUCk5lEAEEG5kqE326MjN
62-
O/c4gBqulBV8AIoq6/trY3apTS7FEOiN47qh1PVzoBm/oGVwXvoZAZOj7+gGGo91
63-
sBC5oHJy5Y2BOcNB3opTNXQTiK3Z80b5wc3iQS+h83qAfHwhs6tfAW22WkAf+jtt
64-
x8KdRWFNAgMBAAECggEAPd+jFL9/d1lc/zGCNuuN9YlTgFti/bKyo2UWOCOz1AVu
65-
LVJyoLgQtggYFoqur1Vn2y7uaiB+/gD8U16hb7jPuGCuJjq8g4aUBfOvVmTtZ8a+
66-
joPQA/TcWJ+zf8xQTJbjVwWeDYmje2oZC5+cbbK1zp9fiuoz+U+RawyI+TE+700i
67-
ESCmsKFIHy2Ifruva8HgcPYIPpZ9zLxJj0Dii+WDs7zM9h2dzO4HfImSG/DPmgoV
68-
ydo9IcrUE7KoMLa8Uo7u1b2h6BnTn7GfYiMSUsYcYR3CnpDBknBWjZMwrV0uqv9q
69-
TbVc4QXt+c1q89HDg7BIJaOAzbCvJfgAfXUqZyqwQQKBgQD5ENFjicUzCqPw7fOy
70-
Q5Z8GeUbIJ5urT1MheAq7SPd2kK8TsO3hUjNC0LLNSyKPs6gsYaIiObO3wDGeZZk
71-
xeHBhrUVaz2nIjI7TrnCUpMDOrdxcPr4bc+ifV5YT4W3OFBWQ9chQEx3Nm3DbiX4
72-
fpno34AiFrJF791JkTPFj9OIUQKBgQDPCgcae1pQr77q+GL5Q2tku3RrE4cWtExf
73-
m8DzAb4Vxe3EhPz8bVr+71rqr/KqNfG1uKE3sT0fhB6VMTkHTOQU13jDrvpPUS3W
74-
Vg8cVr5/+iiyF0xb+W8LQ+GVdR5xnMPSZHUtXyURvtzT4nnTAlAtN7lEytX9BzbX
75-
xhltOOwGPQKBgA/Y/BnDSGLpCGlqGpl7J3YaB7PkLXCJYV8fHZZdpGyXWKu2r0lc
76-
F7fEQanAZmcde/RJl2/UlisPkXMPhXxAAw9XTOph+nhJ+rw/VB6DNot8DvQO5kks
77-
Y4vJQlmIJc/0q1fx1RxuhO8I7Y8D0TKwi4Z/wh1pKEq+6mul649kiWchAoGAWn8B
78-
l9uvIHGRO9eSO23ytTcSrfL9Kzln4KqN7iom0hGP2kRe6F9MVP5+ePKrWSb3Hf0z
79-
ysoX83ymeYPob352e32rda04EA9lv7giJrrrzbikrSNt5w3iMcRcCB4HTpW9Kmtq
80-
pIhgBZ+tmpf1s/vg28LtoloeqtjKagpW9tzYnekCgYAZFZ84EGqS9SHw5LELgGY4
81-
mQLMwbYZ6wBMA2PlqYi/17hoAVWz37mLDjtWDB4ir78QMoGbesQVtK9W/4vzmez4
82-
ZLKlffdL5tCtA08Gq9aond1z83Xdnh1UjtwHIJvJPc/AoCFW1r5skv/G6acAk6I2
83-
Zs0aiirNGTEymRX4rw26Qg==
84-
-----END PRIVATE KEY-----
85-
)EOF";
86-
87-
// The server's public certificate which must be shared
88-
const char server_cert[] PROGMEM = R"EOF(
89-
-----BEGIN CERTIFICATE-----
90-
MIIDUTCCAjmgAwIBAgIJAOcfK7c3JQtnMA0GCSqGSIb3DQEBCwUAMD8xCzAJBgNV
91-
BAYTAkFVMQ0wCwYDVQQIDAROb25lMQ0wCwYDVQQKDAROb25lMRIwEAYDVQQDDAlF
92-
U1BTZXJ2ZXIwHhcNMTgwMzE0MTg1NTQ1WhcNMjkwNTMxMTg1NTQ1WjA/MQswCQYD
93-
VQQGEwJBVTENMAsGA1UECAwETm9uZTENMAsGA1UECgwETm9uZTESMBAGA1UEAwwJ
94-
RVNQU2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyW5a4OO7
95-
xd6pRDTETO7hvEMBOr/wCqcTi/gi2/99rPnVvT7IH/qGSiYMxpGFKCXVqS4rU5k2
96-
XspALEquyGseUav5hqsgHO6CQFFALqXzUVNCsJA9V6raUFhBaIqqCKmWzmeAkV+a
97-
vM/zDQR9Wj1QTCmi997sJJ5ICQc8cGSdvrhisUSbfPpKI9Ql4FApOZRABBBuZKhN
98-
9ujIzTv3OIAarpQVfACKKuv7a2N2qU0uxRDojeO6odT1c6AZv6BlcF76GQGTo+/o
99-
BhqPdbAQuaBycuWNgTnDQd6KUzV0E4it2fNG+cHN4kEvofN6gHx8IbOrXwFttlpA
100-
H/o7bcfCnUVhTQIDAQABo1AwTjAdBgNVHQ4EFgQUBEk8LqgV+sMjdl/gpP1OlcNW
101-
14EwHwYDVR0jBBgwFoAUBEk8LqgV+sMjdl/gpP1OlcNW14EwDAYDVR0TBAUwAwEB
102-
/zANBgkqhkiG9w0BAQsFAAOCAQEAO1IrqW21KfzrxKmtuDSHdH5YrC3iOhiF/kaK
103-
xXbigdtw6KHW/pIhGiA3BY5u+d5eVuHTR5YSwIbbRvOjuoNBATAw/8f5mt5Wa+C3
104-
PDpLNxDys561VbCW45RMQ0x5kybvDYi0D1R/grqZ18veuFSfE6QMJ/mzvr575fje
105-
8r5Ou0IZOYYF8cyqG5rA4U7BYXEnH44VgwlpkF8pitPsnyUWaAYqE0KnZ0qw0Py4
106-
HCkfGJNlNOOamnr6KakVlocwKY0SdxcLoXSs5ogTQvTSrAOjwcm1RA0hOCXr8f/f
107-
UsQIIGpPVh1plR1vYNndDeBpRJSFkoJTkgAIrlFzSMwNebU0pg==
108-
-----END CERTIFICATE-----
109-
)EOF";
110-
111-
#else
112-
const char server_cert[] PROGMEM = R"EOF(
113-
-----BEGIN CERTIFICATE-----
114-
MIIB0zCCAXqgAwIBAgIJALANi2eTiGD/MAoGCCqGSM49BAMCMEUxCzAJBgNVBAYT
115-
AkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn
116-
aXRzIFB0eSBMdGQwHhcNMTkwNjExMjIyOTU2WhcNMjAwNjEwMjIyOTU2WjBFMQsw
117-
CQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJu
118-
ZXQgV2lkZ2l0cyBQdHkgTHRkMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExIkZ
119-
w7zjk6TGcScff1PAehuEGmKZTf8VfnkjyJH0IbBgZibZ+qwYGBEnkz4KpKv7TkHo
120-
W+j7F5EMcLcSrUIpy6NTMFEwHQYDVR0OBBYEFI6A0f+g0HyxUT6xrbVmRU79urbj
121-
MB8GA1UdIwQYMBaAFI6A0f+g0HyxUT6xrbVmRU79urbjMA8GA1UdEwEB/wQFMAMB
122-
Af8wCgYIKoZIzj0EAwIDRwAwRAIgWvy7ofQTGZMNqxUfe4gjtkU+C9AkQtaOMW2U
123-
5xFFSvcCICvcGrQpoi7tRTq8xsXFmr8MYWgQTpVAtj6opXMQct/l
124-
-----END CERTIFICATE-----
125-
)EOF";
126-
127-
// The server's private key which must be kept secret
128-
const char server_private_key[] PROGMEM = R"EOF(
129-
-----BEGIN EC PARAMETERS-----
130-
BggqhkjOPQMBBw==
131-
-----END EC PARAMETERS-----
132-
-----BEGIN EC PRIVATE KEY-----
133-
MHcCAQEEIKyLR9/NT7ZdWM+2rklehveuk+jyIHJ+P8ZUQ392HOYvoAoGCCqGSM49
134-
AwEHoUQDQgAExIkZw7zjk6TGcScff1PAehuEGmKZTf8VfnkjyJH0IbBgZibZ+qwY
135-
GBEnkz4KpKv7TkHoW+j7F5EMcLcSrUIpyw==
136-
-----END EC PRIVATE KEY-----
137-
)EOF";
138-
139-
#endif
53+
#define USING_INSECURE_CERTS_AND_KEYS_AND_CAS 1
54+
#include <ssl-tls-ca-key-cert-example.h>
14055

14156
#define CACHE_SIZE 5 // Number of sessions to cache.
14257
#define USE_CACHE // Enable SSL session caching.

‎libraries/ESP8266WiFi/examples/BearSSL_Server/DO-NOT-USE-THESE-CERTS-IN-YOUR-OWN-APPS

Copy file name to clipboardExpand all lines: libraries/ESP8266WiFi/examples/BearSSL_Server/DO-NOT-USE-THESE-CERTS-IN-YOUR-OWN-APPS
Whitespace-only changes.

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.