From bfecdb0e390e78670706ee276d120f587914e2aa Mon Sep 17 00:00:00 2001 From: deive Date: Fri, 4 Sep 2020 20:03:55 +0100 Subject: [PATCH] Update DigestAuthorization.ino (Simple example update) (#7579) Simple example update to pass the method as a parameter to getDigestAuth(), so it is more easily used for POST. Add setting the ransom seed to RANDOM_REG32 in setup() for better getCNonce() values. --- .../examples/DigestAuthorization/DigestAuthorization.ino | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libraries/ESP8266HTTPClient/examples/DigestAuthorization/DigestAuthorization.ino b/libraries/ESP8266HTTPClient/examples/DigestAuthorization/DigestAuthorization.ino index 504c5d889..db8fe8cbd 100644 --- a/libraries/ESP8266HTTPClient/examples/DigestAuthorization/DigestAuthorization.ino +++ b/libraries/ESP8266HTTPClient/examples/DigestAuthorization/DigestAuthorization.ino @@ -47,7 +47,7 @@ String getCNonce(const int len) { return s; } -String getDigestAuth(String& authReq, const String& username, const String& password, const String& uri, unsigned int counter) { +String getDigestAuth(String& authReq, const String& username, const String& password, const String& method, const String& uri, unsigned int counter) { // extracting required parameters for RFC 2069 simpler Digest String realm = exractParam(authReq, "realm=\"", '"'); String nonce = exractParam(authReq, "nonce=\"", '"'); @@ -64,7 +64,7 @@ String getDigestAuth(String& authReq, const String& username, const String& pass String h1 = md5.toString(); md5.begin(); - md5.add(String("GET:") + uri); + md5.add(method + ":" + uri); md5.calculate(); String h2 = md5.toString(); @@ -81,6 +81,7 @@ String getDigestAuth(String& authReq, const String& username, const String& pass } void setup() { + randomSeed(RANDOM_REG32); Serial.begin(115200); WiFi.mode(WIFI_STA); @@ -118,7 +119,7 @@ void loop() { String authReq = http.header("WWW-Authenticate"); Serial.println(authReq); - String authorization = getDigestAuth(authReq, String(username), String(password), String(uri), 1); + String authorization = getDigestAuth(authReq, String(username), String(password), "GET", String(uri), 1); http.end(); http.begin(client, String(server) + String(uri));