Skip to content

Commit 3fc8408

Browse files
Earle F. Philhower, IIIEarle F. Philhower, III
Earle F. Philhower, III
authored and
Earle F. Philhower, III
committed
Move BearSSLHelpers into BearSSL namespace
BearSSLX509List, BearSSLSession, BearSSLPublicKey, and BearSSLPrivateKey were all in the global namespace and not in the BearSSL:: one, due to an oversight when they were originally created. Move them to the proper namespace with the following mapping: BearSSLX509List => BearSSL::X509List BearSSLSession => BearSSL::Session BearSSLPublicKey => BearSSL::PublicKey BearSSLPrivateKey => BearSSL::PrivateKey
1 parent 8785143 commit 3fc8408

File tree

17 files changed

+133
-120
lines changed

17 files changed

+133
-120
lines changed

libraries/ESP8266HTTPUpdateServer/examples/SecureBearSSLUpdater/SecureBearSSLUpdater.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ void setup()
101101

102102
MDNS.begin(host);
103103

104-
httpServer.setRSACert(new BearSSLX509List(serverCert), new BearSSLPrivateKey(serverKey));
104+
httpServer.setRSACert(new BearSSL::X509List(serverCert), new BearSSL::PrivateKey(serverKey));
105105
httpUpdater.setup(&httpServer, update_path, update_username, update_password);
106106
httpServer.begin();
107107

libraries/ESP8266WebServer/examples/HelloServerBearSSL/HelloServerBearSSL.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ void setup(void){
123123
Serial.println("MDNS responder started");
124124
}
125125

126-
server.setRSACert(new BearSSLX509List(serverCert), new BearSSLPrivateKey(serverKey));
126+
server.setRSACert(new BearSSL::X509List(serverCert), new BearSSL::PrivateKey(serverKey));
127127

128128
server.on("/", handleRoot);
129129

libraries/ESP8266WebServer/src/ESP8266WebServerSecureBearSSL.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ ESP8266WebServerSecure::ESP8266WebServerSecure(int port)
4646
{
4747
}
4848

49-
void ESP8266WebServerSecure::setRSACert(const BearSSLX509List *chain, const BearSSLPrivateKey *sk)
49+
void ESP8266WebServerSecure::setRSACert(const X509List *chain, const PrivateKey *sk)
5050
{
5151
_serverSecure.setRSACert(chain, sk);
5252
}
5353

54-
void ESP8266WebServerSecure::setECCert(const BearSSLX509List *chain, unsigned cert_issuer_key_type, const BearSSLPrivateKey *sk)
54+
void ESP8266WebServerSecure::setECCert(const X509List *chain, unsigned cert_issuer_key_type, const PrivateKey *sk)
5555
{
5656
_serverSecure.setECCert(chain, cert_issuer_key_type, sk);
5757
}
@@ -83,7 +83,7 @@ void ESP8266WebServerSecure::begin() {
8383

8484
void ESP8266WebServerSecure::handleClient() {
8585
if (_currentStatus == HC_NONE) {
86-
BearSSL::WiFiClientSecure client = _serverSecure.available();
86+
WiFiClientSecure client = _serverSecure.available();
8787
if (!client) {
8888
return;
8989
}
@@ -136,7 +136,7 @@ void ESP8266WebServerSecure::handleClient() {
136136
}
137137

138138
if (!keepCurrentClient) {
139-
_currentClientSecure = BearSSL::WiFiClientSecure();
139+
_currentClientSecure = WiFiClientSecure();
140140
_currentStatus = HC_NONE;
141141
_currentUpload.reset();
142142
}

libraries/ESP8266WebServer/src/ESP8266WebServerSecureBearSSL.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ class ESP8266WebServerSecure : public ESP8266WebServer
3737
virtual ~ESP8266WebServerSecure();
3838

3939
void setBufferSizes(int recv, int xmit);
40-
void setRSACert(const BearSSLX509List *chain, const BearSSLPrivateKey *sk);
41-
void setECCert(const BearSSLX509List *chain, unsigned cert_issuer_key_type, const BearSSLPrivateKey *sk);
40+
void setRSACert(const X509List *chain, const PrivateKey *sk);
41+
void setECCert(const X509List *chain, unsigned cert_issuer_key_type, const PrivateKey *sk);
4242

4343
WiFiClient client() override { return _currentClientSecure; }
4444

@@ -61,8 +61,8 @@ class ESP8266WebServerSecure : public ESP8266WebServer
6161
size_t _currentClientWrite_P (PGM_P bytes, size_t len) override { return _currentClientSecure.write_P(bytes, len); }
6262

6363
protected:
64-
BearSSL::WiFiServerSecure _serverSecure;
65-
BearSSL::WiFiClientSecure _currentClientSecure;
64+
WiFiServerSecure _serverSecure;
65+
WiFiClientSecure _currentClientSecure;
6666
};
6767

6868
};

libraries/ESP8266WiFi/examples/BearSSL_Server/BearSSL_Server.ino

+2-2
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,8 @@ void setup() {
121121
Serial.println(WiFi.localIP());
122122

123123
// Attach the server private cert/key combo
124-
BearSSLX509List *serverCertList = new BearSSLX509List(server_cert);
125-
BearSSLPrivateKey *serverPrivKey = new BearSSLPrivateKey(server_private_key);
124+
BearSSL::X509List *serverCertList = new BearSSL::X509List(server_cert);
125+
BearSSL::PrivateKey *serverPrivKey = new BearSSL::PrivateKey(server_private_key);
126126
server.setRSACert(serverCertList, serverPrivKey);
127127

128128
// Actually start accepting connections

libraries/ESP8266WiFi/examples/BearSSL_ServerClientCert/BearSSL_ServerClientCert.ino

+3-3
Original file line numberDiff line numberDiff line change
@@ -197,12 +197,12 @@ void setup() {
197197
setClock(); // Required for X.509 validation
198198

199199
// Attach the server private cert/key combo
200-
BearSSLX509List *serverCertList = new BearSSLX509List(server_cert);
201-
BearSSLPrivateKey *serverPrivKey = new BearSSLPrivateKey(server_private_key);
200+
BearSSL::X509List *serverCertList = new BearSSL::X509List(server_cert);
201+
BearSSL::PrivateKey *serverPrivKey = new BearSSL::PrivateKey(server_private_key);
202202
server.setRSACert(serverCertList, serverPrivKey);
203203

204204
// Require a certificate validated by the trusted CA
205-
BearSSLX509List *serverTrustedCA = new BearSSLX509List(ca_cert);
205+
BearSSL::X509List *serverTrustedCA = new BearSSL::X509List(ca_cert);
206206
server.setClientTrustAnchor(serverTrustedCA);
207207

208208
// Actually start accepting connections

libraries/ESP8266WiFi/examples/BearSSL_Sessions/BearSSL_Sessions.ino

+2-2
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
119119
)EOF";
120120
uint32_t start, finish;
121121
BearSSL::WiFiClientSecure client;
122-
BearSSLX509List cert(digicert);
122+
BearSSL::X509List cert(digicert);
123123

124124
Serial.printf("Connecting without sessions...");
125125
start = millis();
@@ -128,7 +128,7 @@ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
128128
finish = millis();
129129
Serial.printf("Total time: %dms\n", finish - start);
130130

131-
BearSSLSession session;
131+
BearSSL::Session session;
132132
client.setSession(&session);
133133
Serial.printf("Connecting with an unitialized session...");
134134
start = millis();

libraries/ESP8266WiFi/examples/BearSSL_Validation/BearSSL_Validation.ino

+2-2
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ wQIDAQAB
144144
-----END PUBLIC KEY-----
145145
)KEY";
146146
BearSSL::WiFiClientSecure client;
147-
BearSSLPublicKey key(pubkey);
147+
BearSSL::PublicKey key(pubkey);
148148
client.setKnownKey(&key);
149149
fetchURL(&client, host, port, path);
150150
}
@@ -186,7 +186,7 @@ BearSSL does verify the notValidBefore/After fields.
186186
)EOF");
187187

188188
BearSSL::WiFiClientSecure client;
189-
BearSSLX509List cert(digicert);
189+
BearSSL::X509List cert(digicert);
190190
client.setTrustAnchors(&cert);
191191
Serial.printf("Try validating without setting the time (should fail)\n");
192192
fetchURL(&client, host, port, path);

libraries/ESP8266WiFi/keywords.txt

+6-3
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,14 @@ WiFiServerSecure KEYWORD1
1919
WiFiUDP KEYWORD1
2020
WiFiClientSecure KEYWORD1
2121
ESP8266WiFiMulti KEYWORD1
22-
BearSSLX509List KEYWORD1
23-
BearSSLPrivateKey KEYWORD1
24-
BearSSLPublicKey KEYWORD1
22+
BearSSL KEYWORD1
23+
X509List KEYWORD1
24+
PrivateKey KEYWORD1
25+
PublicKey KEYWORD1
2526
CertStoreSPIFFSBearSSL KEYWORD1
2627
CertStoreSDBearSSL KEYWORD1
28+
Session KEYWORD1
29+
2730

2831
#######################################
2932
# Methods and Functions (KEYWORD2)

libraries/ESP8266WiFi/src/BearSSLHelpers.cpp

+34-26
Original file line numberDiff line numberDiff line change
@@ -622,33 +622,36 @@ namespace brssl {
622622
};
623623

624624

625+
namespace BearSSL {
626+
627+
625628
// ----- Public Key -----
626629

627-
BearSSLPublicKey::BearSSLPublicKey() {
630+
PublicKey::PublicKey() {
628631
_key = nullptr;
629632
}
630633

631-
BearSSLPublicKey::BearSSLPublicKey(const char *pemKey) {
634+
PublicKey::PublicKey(const char *pemKey) {
632635
_key = nullptr;
633636
parse(pemKey);
634637
}
635638

636-
BearSSLPublicKey::BearSSLPublicKey(const uint8_t *derKey, size_t derLen) {
639+
PublicKey::PublicKey(const uint8_t *derKey, size_t derLen) {
637640
_key = nullptr;
638641
parse(derKey, derLen);
639642
}
640643

641-
BearSSLPublicKey::~BearSSLPublicKey() {
644+
PublicKey::~PublicKey() {
642645
if (_key) {
643646
brssl::free_public_key(_key);
644647
}
645648
}
646649

647-
bool BearSSLPublicKey::parse(const char *pemKey) {
650+
bool PublicKey::parse(const char *pemKey) {
648651
return parse((const uint8_t *)pemKey, strlen_P(pemKey));
649652
}
650653

651-
bool BearSSLPublicKey::parse(const uint8_t *derKey, size_t derLen) {
654+
bool PublicKey::parse(const uint8_t *derKey, size_t derLen) {
652655
if (_key) {
653656
brssl::free_public_key(_key);
654657
_key = nullptr;
@@ -657,28 +660,28 @@ bool BearSSLPublicKey::parse(const uint8_t *derKey, size_t derLen) {
657660
return _key ? true : false;
658661
}
659662

660-
bool BearSSLPublicKey::isRSA() const {
663+
bool PublicKey::isRSA() const {
661664
if (!_key || _key->key_type != BR_KEYTYPE_RSA) {
662665
return false;
663666
}
664667
return true;
665668
}
666669

667-
bool BearSSLPublicKey::isEC() const {
670+
bool PublicKey::isEC() const {
668671
if (!_key || _key->key_type != BR_KEYTYPE_EC) {
669672
return false;
670673
}
671674
return true;
672675
}
673676

674-
const br_rsa_public_key *BearSSLPublicKey::getRSA() const {
677+
const br_rsa_public_key *PublicKey::getRSA() const {
675678
if (!_key || _key->key_type != BR_KEYTYPE_RSA) {
676679
return nullptr;
677680
}
678681
return &_key->key.rsa;
679682
}
680683

681-
const br_ec_public_key *BearSSLPublicKey::getEC() const {
684+
const br_ec_public_key *PublicKey::getEC() const {
682685
if (!_key || _key->key_type != BR_KEYTYPE_EC) {
683686
return nullptr;
684687
}
@@ -687,31 +690,31 @@ const br_ec_public_key *BearSSLPublicKey::getEC() const {
687690

688691
// ----- Private Key -----
689692

690-
BearSSLPrivateKey::BearSSLPrivateKey() {
693+
PrivateKey::PrivateKey() {
691694
_key = nullptr;
692695
}
693696

694-
BearSSLPrivateKey::BearSSLPrivateKey(const char *pemKey) {
697+
PrivateKey::PrivateKey(const char *pemKey) {
695698
_key = nullptr;
696699
parse(pemKey);
697700
}
698701

699-
BearSSLPrivateKey::BearSSLPrivateKey(const uint8_t *derKey, size_t derLen) {
702+
PrivateKey::PrivateKey(const uint8_t *derKey, size_t derLen) {
700703
_key = nullptr;
701704
parse(derKey, derLen);
702705
}
703706

704-
BearSSLPrivateKey::~BearSSLPrivateKey() {
707+
PrivateKey::~PrivateKey() {
705708
if (_key) {
706709
brssl::free_private_key(_key);
707710
}
708711
}
709712

710-
bool BearSSLPrivateKey::parse(const char *pemKey) {
713+
bool PrivateKey::parse(const char *pemKey) {
711714
return parse((const uint8_t *)pemKey, strlen_P(pemKey));
712715
}
713716

714-
bool BearSSLPrivateKey::parse(const uint8_t *derKey, size_t derLen) {
717+
bool PrivateKey::parse(const uint8_t *derKey, size_t derLen) {
715718
if (_key) {
716719
brssl::free_private_key(_key);
717720
_key = nullptr;
@@ -720,68 +723,70 @@ bool BearSSLPrivateKey::parse(const uint8_t *derKey, size_t derLen) {
720723
return _key ? true : false;
721724
}
722725

723-
bool BearSSLPrivateKey::isRSA() const {
726+
bool PrivateKey::isRSA() const {
724727
if (!_key || _key->key_type != BR_KEYTYPE_RSA) {
725728
return false;
726729
}
727730
return true;
728731
}
729732

730-
bool BearSSLPrivateKey::isEC() const {
733+
bool PrivateKey::isEC() const {
731734
if (!_key || _key->key_type != BR_KEYTYPE_EC) {
732735
return false;
733736
}
734737
return true;
735738
}
736739

737-
const br_rsa_private_key *BearSSLPrivateKey::getRSA() const {
740+
const br_rsa_private_key *PrivateKey::getRSA() const {
738741
if (!_key || _key->key_type != BR_KEYTYPE_RSA) {
739742
return nullptr;
740743
}
741744
return &_key->key.rsa;
742745
}
743746

744-
const br_ec_private_key *BearSSLPrivateKey::getEC() const {
747+
const br_ec_private_key *PrivateKey::getEC() const {
745748
if (!_key || _key->key_type != BR_KEYTYPE_EC) {
746749
return nullptr;
747750
}
748751
return &_key->key.ec;
749752
}
750753

751-
BearSSLX509List::BearSSLX509List() {
754+
// ----- Certificate Lists -----
755+
756+
X509List::X509List() {
752757
_count = 0;
753758
_cert = nullptr;
754759
_ta = nullptr;
755760
}
756761

757-
BearSSLX509List::BearSSLX509List(const char *pemCert) {
762+
X509List::X509List(const char *pemCert) {
758763
_count = 0;
759764
_cert = nullptr;
760765
_ta = nullptr;
761766
append(pemCert);
762767
}
763768

764769

765-
BearSSLX509List::BearSSLX509List(const uint8_t *derCert, size_t derLen) {
770+
X509List::X509List(const uint8_t *derCert, size_t derLen) {
766771
_count = 0;
767772
_cert = nullptr;
768773
_ta = nullptr;
769774
append(derCert, derLen);
770775
}
771776

772-
BearSSLX509List::~BearSSLX509List() {
777+
X509List::~X509List() {
773778
brssl::free_certificates(_cert, _count); // also frees cert
774779
for (size_t i = 0; i < _count; i++) {
775780
brssl::free_ta_contents(&_ta[i]);
776781
}
777782
free(_ta);
778783
}
779784

780-
bool BearSSLX509List::append(const char *pemCert) {
785+
bool X509List::append(const char *pemCert) {
781786
return append((const uint8_t *)pemCert, strlen_P(pemCert));
782787
}
783788

784-
bool BearSSLX509List::append(const uint8_t *derCert, size_t derLen) {
789+
bool X509List::append(const uint8_t *derCert, size_t derLen) {
785790
size_t numCerts;
786791
br_x509_certificate *newCerts = brssl::read_certificates((const char *)derCert, derLen, &numCerts);
787792
if (!newCerts) {
@@ -819,3 +824,6 @@ bool BearSSLX509List::append(const uint8_t *derCert, size_t derLen) {
819824

820825
return true;
821826
}
827+
828+
};
829+

0 commit comments

Comments
 (0)