File tree Expand file tree Collapse file tree 3 files changed +18
-8
lines changed Expand file tree Collapse file tree 3 files changed +18
-8
lines changed Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ extern "C" {
29
29
30
30
ArduinoOTAClass::ArduinoOTAClass ()
31
31
: _port(0 )
32
+ , _pass_is_hash(false )
32
33
, _udp_ota(0 )
33
34
, _initialized(false )
34
35
, _state(OTA_IDLE)
@@ -81,9 +82,10 @@ String ArduinoOTAClass::getHostname() {
81
82
return _hostname;
82
83
}
83
84
84
- void ArduinoOTAClass::setPassword (const char * password) {
85
+ void ArduinoOTAClass::setPassword (const char * password, bool isHash ) {
85
86
if (!_initialized && !_password.length () && password) {
86
87
_password = password;
88
+ _pass_is_hash = isHash;
87
89
}
88
90
}
89
91
@@ -206,11 +208,14 @@ void ArduinoOTAClass::_onRx(){
206
208
return ;
207
209
}
208
210
209
- MD5Builder _passmd5;
210
- _passmd5.begin ();
211
- _passmd5.add (_password);
212
- _passmd5.calculate ();
213
- String passmd5 = _passmd5.toString ();
211
+ String passmd5 = _password;
212
+ if (!_pass_is_hash){
213
+ MD5Builder _passmd5;
214
+ _passmd5.begin ();
215
+ _passmd5.add (_password);
216
+ _passmd5.calculate ();
217
+ passmd5 = _passmd5.toString ();
218
+ }
214
219
215
220
String challenge = passmd5 + " :" + String (_nonce) + " :" + cnonce;
216
221
MD5Builder _challengemd5;
Original file line number Diff line number Diff line change @@ -33,7 +33,7 @@ class ArduinoOTAClass
33
33
void setPort (uint16_t port);
34
34
void setHostname (const char *hostname);
35
35
String getHostname ();
36
- void setPassword (const char *password);
36
+ void setPassword (const char *password, bool isHash= false );
37
37
void onStart (THandlerFunction fn);
38
38
void onEnd (THandlerFunction fn);
39
39
void onError (THandlerFunction_Error fn);
@@ -44,6 +44,7 @@ class ArduinoOTAClass
44
44
45
45
private:
46
46
int _port;
47
+ bool _pass_is_hash;
47
48
String _password;
48
49
String _hostname;
49
50
String _nonce;
Original file line number Diff line number Diff line change @@ -24,7 +24,11 @@ void setup() {
24
24
// ArduinoOTA.setHostname("myesp8266");
25
25
26
26
// No authentication by default
27
- // ArduinoOTA.setPassword((const char *)"123");
27
+ // ArduinoOTA.setPassword("admin");
28
+
29
+ // Password can be set with it's md5 value as well
30
+ // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
31
+ // ArduinoOTA.setPassword("21232f297a57a5a743894a0e4a801fc3", true);
28
32
29
33
ArduinoOTA.onStart ([]() {
30
34
String type;
You can’t perform that action at this time.
0 commit comments