@@ -27,59 +27,10 @@ const char* password = STAPSK;
27
27
BearSSL::ESP8266WebServerSecure server (443 );
28
28
BearSSL::ServerSessions serverCache (5 );
29
29
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>
82
32
33
+ String bigChunk;
83
34
84
35
const int led = 13 ;
85
36
@@ -104,6 +55,16 @@ void handleNotFound() {
104
55
digitalWrite (led, 0 );
105
56
}
106
57
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
+
107
68
void setup (void ) {
108
69
pinMode (led, OUTPUT);
109
70
digitalWrite (led, 0 );
@@ -127,7 +88,7 @@ void setup(void) {
127
88
128
89
if (MDNS.begin (" esp8266" )) { Serial.println (" MDNS responder started" ); }
129
90
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 ));
131
92
132
93
// Cache SSL sessions to accelerate the TLS handshake.
133
94
server.getServer ().setCache (&serverCache);
@@ -138,8 +99,19 @@ void setup(void) {
138
99
server.send (200 , " text/plain" , " this works as well" );
139
100
});
140
101
102
+ server.on (" /chunks" , handleChunked);
103
+
141
104
server.onNotFound (handleNotFound);
142
105
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
+
143
115
server.begin ();
144
116
Serial.println (" HTTPS server started" );
145
117
}
0 commit comments