Skip to content

Commit 7708097

Browse files
committed
libraries/WiFi: Add WiFiWebClientTLS example.
Signed-off-by: iabdalkader <[email protected]>
1 parent af6ee6b commit 7708097

File tree

2 files changed

+118
-0
lines changed

2 files changed

+118
-0
lines changed
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
/*
2+
Web client with single CA certificate test
3+
4+
This sketch demonstrates how to load your own TLS CA certificates
5+
and use them to establish a secure connection to a remote server,
6+
such as www.howsmyssl.com.
7+
*/
8+
9+
#include <WiFi.h>
10+
#include <ZephyrSSLClient.h>
11+
#include "arduino_secrets.h"
12+
13+
char ssid[] = SECRET_SSID;
14+
char pass[] = SECRET_PASS;
15+
16+
char server[] = "www.howsmyssl.com";
17+
int port = 443;
18+
19+
ZephyrSSLClient client;
20+
int status = WL_IDLE_STATUS;
21+
22+
// ISRG Root X1 (Let's Encrypt root CA certificate)
23+
const char isrg_root_x1[] =
24+
"-----BEGIN CERTIFICATE-----\n"
25+
"MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw\n"
26+
"TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\n"
27+
"cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4\n"
28+
"WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu\n"
29+
"ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY\n"
30+
"MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc\n"
31+
"h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+\n"
32+
"0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U\n"
33+
"A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW\n"
34+
"T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH\n"
35+
"B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC\n"
36+
"B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv\n"
37+
"KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn\n"
38+
"OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn\n"
39+
"jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw\n"
40+
"qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI\n"
41+
"rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV\n"
42+
"HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq\n"
43+
"hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL\n"
44+
"ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ\n"
45+
"3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK\n"
46+
"NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5\n"
47+
"ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur\n"
48+
"TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC\n"
49+
"jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc\n"
50+
"oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq\n"
51+
"4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA\n"
52+
"mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d\n"
53+
"emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=\n"
54+
"-----END CERTIFICATE-----\n";
55+
56+
void setup() {
57+
Serial.begin(115200);
58+
while (!Serial) {
59+
;
60+
}
61+
62+
// Check for WiFi module
63+
if (WiFi.status() == WL_NO_SHIELD) {
64+
Serial.println("Communication with WiFi module failed!");
65+
return;
66+
}
67+
68+
// Connect to WiFi
69+
while (status != WL_CONNECTED) {
70+
Serial.print("Attempting to connect to SSID: ");
71+
Serial.println(ssid);
72+
status = WiFi.begin(ssid, pass);
73+
delay(3000);
74+
}
75+
76+
Serial.println("Connected to wifi");
77+
Serial.print("IP Address: ");
78+
Serial.println(WiFi.localIP());
79+
Serial.print("RSSI: ");
80+
Serial.println(WiFi.RSSI());
81+
82+
Serial.println("\nStarting connection to server...");
83+
84+
if (client.connect(server, port, isrg_root_x1)) {
85+
Serial.println("Connected to server!");
86+
87+
// Make HTTP request
88+
client.println("GET /a/check HTTP/1.1");
89+
client.print("Host: ");
90+
client.println(server);
91+
client.println("Connection: close");
92+
client.println();
93+
} else {
94+
Serial.println("Connection failed!");
95+
}
96+
}
97+
98+
void loop() {
99+
// if there are incoming bytes available
100+
// from the server, read them and print them:
101+
while (client.available()) {
102+
char c = client.read();
103+
Serial.write(c);
104+
}
105+
106+
// if the server's disconnected, stop the client:
107+
if (!client.connected()) {
108+
Serial.println();
109+
Serial.println("disconnecting from server.");
110+
client.stop();
111+
112+
// do nothing forevermore:
113+
while (true)
114+
;
115+
}
116+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#define SECRET_SSID ""
2+
#define SECRET_PASS ""

0 commit comments

Comments
 (0)