diff --git a/cores/esp8266/Updater.cpp b/cores/esp8266/Updater.cpp index 2992d3c95..d6b6b621f 100644 --- a/cores/esp8266/Updater.cpp +++ b/cores/esp8266/Updater.cpp @@ -1,5 +1,4 @@ #include "Updater.h" -#include "Arduino.h" #include "eboot_command.h" #include @@ -11,10 +10,10 @@ #endif #if ARDUINO_SIGNING - #include "../../libraries/ESP8266WiFi/src/BearSSLHelpers.h" - static BearSSL::PublicKey signPubKey(signing_pubkey); - static BearSSL::HashSHA256 hash; - static BearSSL::SigningVerifier sign(&signPubKey); +namespace esp8266 { + extern UpdaterHashClass& updaterSigningHash; + extern UpdaterVerifyClass& updaterSigningVerifier; +} #endif extern "C" { @@ -39,7 +38,7 @@ UpdaterClass::UpdaterClass() , _progress_callback(nullptr) { #if ARDUINO_SIGNING - installSignature(&hash, &sign); + installSignature(&esp8266::updaterSigningHash, &esp8266::updaterSigningVerifier); #endif } diff --git a/libraries/ESP8266WiFi/src/BearSSLHelpers.cpp b/libraries/ESP8266WiFi/src/BearSSLHelpers.cpp index 6dcf0b384..ffce2b00e 100644 --- a/libraries/ESP8266WiFi/src/BearSSLHelpers.cpp +++ b/libraries/ESP8266WiFi/src/BearSSLHelpers.cpp @@ -20,6 +20,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "BearSSLHelpers.h" #include #include #include @@ -28,7 +29,10 @@ #include #include #include -#include "BearSSLHelpers.h" +#include +#ifndef ARDUINO_SIGNING + #define ARDUINO_SIGNING 0 +#endif namespace brssl { // Code here is pulled from brssl sources, with the copyright and license @@ -901,3 +905,17 @@ make_stack_thunk(br_ssl_engine_sendrec_buf); #endif }; + +#if ARDUINO_SIGNING +namespace { + static BearSSL::PublicKey signingPubKey(signing_pubkey); + static BearSSL::HashSHA256 __signingHash; + static BearSSL::SigningVerifier __signingVerifier(&signingPubKey); +}; + +namespace esp8266 { + UpdaterHashClass& updaterSigningHash = __signingHash; + UpdaterVerifyClass& updaterSigningVerifier = __signingVerifier; +}; +#endif + diff --git a/libraries/ESP8266WiFi/src/BearSSLHelpers.h b/libraries/ESP8266WiFi/src/BearSSLHelpers.h index 2f6eb8e84..282bab9cf 100644 --- a/libraries/ESP8266WiFi/src/BearSSLHelpers.h +++ b/libraries/ESP8266WiFi/src/BearSSLHelpers.h @@ -26,7 +26,6 @@ #include #include - // Internal opaque structures, not needed by user applications namespace brssl { class public_key;