Include ESP8266 example
This commit is contained in:
parent
8dcf7c5e4d
commit
1d9b34f9ff
5 changed files with 144 additions and 0 deletions
4
esp8266example/.gitignore
vendored
Normal file
4
esp8266example/.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
.pio
|
||||||
|
.vscode
|
||||||
|
include/theSecrets.h
|
||||||
|
include/theCerts.h
|
59
esp8266example/include/theCerts-example.h
Normal file
59
esp8266example/include/theCerts-example.h
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
#ifndef THECERTS_H
|
||||||
|
#define THECERTS_H
|
||||||
|
|
||||||
|
#include "pgmspace.h"
|
||||||
|
|
||||||
|
const char cert[] PROGMEM = R"EOF(
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDSzCCAjMCCQD2ahcfZAwXxDANBgkqhkiG9w0BAQsFADCBiTELMAkGA1UEBhMC
|
||||||
|
VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU9yYW5nZSBDb3VudHkx
|
||||||
|
EDAOBgNVBAoMB1ByaXZhZG8xGjAYBgNVBAMMEXNlcnZlci56bGFiZWwuY29tMR8w
|
||||||
|
HQYJKoZIhvcNAQkBFhBlYXJsZUB6bGFiZWwuY29tMB4XDTE4MDMwNjA1NDg0NFoX
|
||||||
|
DTE5MDMwNjA1NDg0NFowRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3Rh
|
||||||
|
dGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZI
|
||||||
|
hvcNAQEBBQADggEPADCCAQoCggEBAPVKBwbZ+KDSl40YCDkP6y8Sv4iNGvEOZg8Y
|
||||||
|
X7sGvf/xZH7UiCBWPFIRpNmDSaZ3yjsmFqm6sLiYSGSdrBCFqdt9NTp2r7hga6Sj
|
||||||
|
oASSZY4B9pf+GblDy5m10KDx90BFKXdPMCLT+o76Nx9PpCvw13A848wHNG3bpBgI
|
||||||
|
t+w/vJCX3bkRn8yEYAU6GdMbYe7v446hX3kY5UmgeJFr9xz1kq6AzYrMt/UHhNzO
|
||||||
|
S+QckJaY0OGWvmTNspY3xCbbFtIDkCdBS8CZAw+itnofvnWWKQEXlt6otPh5njwy
|
||||||
|
+O1t/Q+Z7OMDYQaH02IQx3188/kW3FzOY32knER1uzjmRO+jhA8CAwEAATANBgkq
|
||||||
|
hkiG9w0BAQsFAAOCAQEAnDrROGRETB0woIcI1+acY1yRq4yAcH2/hdq2MoM+DCyM
|
||||||
|
E8CJaOznGR9ND0ImWpTZqomHOUkOBpvu7u315blQZcLbL1LfHJGRTCHVhvVrcyEb
|
||||||
|
fWTnRtAQdlirUm/obwXIitoz64VSbIVzcqqfg9C6ZREB9JbEX98/9Wp2gVY+31oC
|
||||||
|
JfUvYadSYxh3nblvA4OL+iEZiW8NE3hbW6WPXxvS7Euge0uWMPc4uEcnsE0ZVG3m
|
||||||
|
+TGimzSdeWDvGBRWZHXczC2zD4aoE5vrl+GD2i++c6yjL/otHfYyUpzUfbI2hMAA
|
||||||
|
5tAF1D5vAAwA8nfPysumlLsIjohJZo4lgnhB++AlOg==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
)EOF";
|
||||||
|
|
||||||
|
const char key[] PROGMEM = R"EOF(
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpQIBAAKCAQEA9UoHBtn4oNKXjRgIOQ/rLxK/iI0a8Q5mDxhfuwa9//FkftSI
|
||||||
|
IFY8UhGk2YNJpnfKOyYWqbqwuJhIZJ2sEIWp2301OnavuGBrpKOgBJJljgH2l/4Z
|
||||||
|
uUPLmbXQoPH3QEUpd08wItP6jvo3H0+kK/DXcDzjzAc0bdukGAi37D+8kJfduRGf
|
||||||
|
zIRgBToZ0xth7u/jjqFfeRjlSaB4kWv3HPWSroDNisy39QeE3M5L5ByQlpjQ4Za+
|
||||||
|
ZM2yljfEJtsW0gOQJ0FLwJkDD6K2eh++dZYpAReW3qi0+HmePDL47W39D5ns4wNh
|
||||||
|
BofTYhDHfXzz+RbcXM5jfaScRHW7OOZE76OEDwIDAQABAoIBAQDKov5NFbNFQNR8
|
||||||
|
djcM1O7Is6dRaqiwLeH4ZH1pZ3d9QnFwKanPdQ5eCj9yhfhJMrr5xEyCqT0nMn7T
|
||||||
|
yEIGYDXjontfsf8WxWkH2TjvrfWBrHOIOx4LJEvFzyLsYxiMmtZXvy6YByD+Dw2M
|
||||||
|
q2GH/24rRdI2klkozIOyazluTXU8yOsSGxHr/aOa9/sZISgLmaGOOuKI/3Zqjdhr
|
||||||
|
eHeSqoQFt3xXa8jw01YubQUDw/4cv9rk2ytTdAoQUimiKtgtjsggpP1LTq4xcuqN
|
||||||
|
d4jWhTcnorWpbD2cVLxrEbnSR3VuBCJEZv5axg5ZPxLEnlcId8vMtvTRb5nzzszn
|
||||||
|
geYUWDPhAoGBAPyKVNqqwQl44oIeiuRM2FYenMt4voVaz3ExJX2JysrG0jtCPv+Y
|
||||||
|
84R6Cv3nfITz3EZDWp5sW3OwoGr77lF7Tv9tD6BptEmgBeuca3SHIdhG2MR+tLyx
|
||||||
|
/tkIAarxQcTGsZaSqra3gXOJCMz9h2P5dxpdU+0yeMmOEnAqgQ8qtNBfAoGBAPim
|
||||||
|
RAtnrd0WSlCgqVGYFCvDh1kD5QTNbZc+1PcBHbVV45EmJ2fLXnlDeplIZJdYxmzu
|
||||||
|
DMOxZBYgfeLY9exje00eZJNSj/csjJQqiRftrbvYY7m5njX1kM5K8x4HlynQTDkg
|
||||||
|
rtKO0YZJxxmjRTbFGMegh1SLlFLRIMtehNhOgipRAoGBAPnEEpJGCS9GGLfaX0HW
|
||||||
|
YqwiEK8Il12q57mqgsq7ag7NPwWOymHesxHV5mMh/Dw+NyBi4xAGWRh9mtrUmeqK
|
||||||
|
iyICik773Gxo0RIqnPgd4jJWN3N3YWeynzulOIkJnSNx5BforOCTc3uCD2s2YB5X
|
||||||
|
jx1LKoNQxLeLRN8cmpIWicf/AoGBANjRSsZTKwV9WWIDJoHyxav/vPb+8WYFp8lZ
|
||||||
|
zaRxQbGM6nn4NiZI7OF62N3uhWB/1c7IqTK/bVHqFTuJCrCNcsgld3gLZ2QWYaMV
|
||||||
|
kCPgaj1BjHw4AmB0+EcajfKilcqtSroJ6MfMJ6IclVOizkjbByeTsE4lxDmPCDSt
|
||||||
|
/9MKanBxAoGAY9xo741Pn9WUxDyRplww606ccdNf/ksHWNc/Y2B5SPwxxSnIq8nO
|
||||||
|
j01SmsCUYVFAgZVOTiiycakjYLzxlc6p8BxSVqy6LlJqn95N8OXoQ+bkwUux/ekg
|
||||||
|
gz5JWYhbD6c38khSzJb0pNXCo3EuYAVa36kDM96k1BtWuhRS10Q1VXk=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
|
)EOF";
|
||||||
|
|
||||||
|
#endif
|
9
esp8266example/include/theSecrets-example.h
Normal file
9
esp8266example/include/theSecrets-example.h
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#ifndef _THE_SECRETS_H_
|
||||||
|
#define _THE_SECRETS_H_
|
||||||
|
|
||||||
|
const char *ssid = "Wifi";
|
||||||
|
const char *psk = "password";
|
||||||
|
const char *username = "username";
|
||||||
|
const char *password = "password";
|
||||||
|
|
||||||
|
#endif
|
19
esp8266example/platformio.ini
Normal file
19
esp8266example/platformio.ini
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
; PlatformIO Project Configuration File
|
||||||
|
;
|
||||||
|
; Build options: build flags, source filter
|
||||||
|
; Upload options: custom upload port, speed and extra flags
|
||||||
|
; Library options: dependencies, extra library storages
|
||||||
|
; Advanced options: extra scripting
|
||||||
|
;
|
||||||
|
; Please visit documentation for the other options and examples
|
||||||
|
; https://docs.platformio.org/page/projectconf.html
|
||||||
|
|
||||||
|
[platformio]
|
||||||
|
default_envs = esp8266
|
||||||
|
|
||||||
|
[env:esp8266]
|
||||||
|
platform = espressif8266
|
||||||
|
board = d1_mini
|
||||||
|
framework = arduino
|
||||||
|
monitor_speed = 115200
|
||||||
|
lib_deps = https://gitlab.hs-esslingen.de/toheer/iot-security-tools.git
|
53
esp8266example/src/main.cpp
Normal file
53
esp8266example/src/main.cpp
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
#include <Arduino.h>
|
||||||
|
#include "theSecrets.h"
|
||||||
|
#include "theCerts.h"
|
||||||
|
#include "ESP8266WiFi.h"
|
||||||
|
|
||||||
|
#include "esp8266/Firewall.hpp"
|
||||||
|
#include "esp8266/API.hpp"
|
||||||
|
|
||||||
|
fw::Firewall *firewall;
|
||||||
|
fw::API *firewallApi;
|
||||||
|
|
||||||
|
WiFiEventHandler wifiConnectHandler;
|
||||||
|
WiFiEventHandler wifiDisconnectHandler;
|
||||||
|
WiFiEventHandler wifiGotIpHandler;
|
||||||
|
|
||||||
|
void initFirewall(const String ip)
|
||||||
|
{
|
||||||
|
firewall = new fw::Firewall();
|
||||||
|
firewallApi = new fw::API(firewall, cert, key, username, password, ip);
|
||||||
|
}
|
||||||
|
|
||||||
|
void onConnect(const WiFiEventStationModeConnected &event)
|
||||||
|
{
|
||||||
|
Serial.println("[WiFi] connected");
|
||||||
|
}
|
||||||
|
|
||||||
|
void onDisconnect(const WiFiEventStationModeDisconnected &event)
|
||||||
|
{
|
||||||
|
Serial.println("[WiFi] disconnected");
|
||||||
|
WiFi.reconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
void onGotIp(const WiFiEventStationModeGotIP &event)
|
||||||
|
{
|
||||||
|
initFirewall(WiFi.localIP().toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
Serial.begin(115200);
|
||||||
|
WiFi.mode(WIFI_STA);
|
||||||
|
wifiConnectHandler = WiFi.onStationModeConnected(onConnect);
|
||||||
|
wifiDisconnectHandler = WiFi.onStationModeDisconnected(onDisconnect);
|
||||||
|
wifiGotIpHandler = WiFi.onStationModeGotIP(onGotIp);
|
||||||
|
WiFi.begin(ssid, psk);
|
||||||
|
Serial.println("[WiFi] connecting...");
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
if (firewallApi != NULL)
|
||||||
|
firewallApi->handle_client();
|
||||||
|
}
|
Reference in a new issue