From 34bbe3c039b9b8b5770e4787649d61c9735472dd Mon Sep 17 00:00:00 2001 From: Aruna Tennakoon Date: Fri, 17 Jan 2025 22:57:46 +0700 Subject: [PATCH 1/2] fix: invalid signature error --- changelog.md | 4 ++++ library.json | 2 +- library.properties | 2 +- src/SinricPro.h | 22 +++++++++++++++++++--- src/SinricProVersion.h | 2 +- 5 files changed, 26 insertions(+), 6 deletions(-) diff --git a/changelog.md b/changelog.md index d5216b89..d9592afa 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,9 @@ # Changelog +## Version 3.4.1 + New: + - Fix: invalid signature error message. + ## Version 3.4.0 New: - Support Image upload on camera devices diff --git a/library.json b/library.json index d03ce870..d018e23c 100644 --- a/library.json +++ b/library.json @@ -13,7 +13,7 @@ "maintainer": true } ], - "version": "3.4.0", + "version": "3.4.1", "frameworks": "arduino", "platforms": [ "espressif8266", diff --git a/library.properties b/library.properties index 223c1eeb..d610a1ad 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=SinricPro -version=3.4.0 +version=3.4.1 author=Boris Jaeger maintainer=Boris Jaeger sentence=Library for https://sinric.pro - simple way to connect your device to alexa diff --git a/src/SinricPro.h b/src/SinricPro.h index 9cb567a2..1ec9acfe 100644 --- a/src/SinricPro.h +++ b/src/SinricPro.h @@ -127,6 +127,7 @@ class SinricProClass : public SinricProInterface { void handleDeviceRequest(JsonDocument& requestMessage, interface_t Interface); void handleModuleRequest(JsonDocument& requestMessage, interface_t Interface); void handleResponse(JsonDocument& responseMessage); + void handleInvalidSignatureRequest(JsonDocument& requestMessage, interface_t Interface); JsonDocument prepareRequest(String deviceId, const char* action); @@ -327,7 +328,7 @@ void SinricProClass::handleResponse(JsonDocument& responseMessage) { } void SinricProClass::handleModuleRequest(JsonDocument& requestMessage, interface_t Interface) { - DEBUG_SINRIC("[SinricPro.handleModuleScopeRequest()]: handling device sope request\r\n"); + DEBUG_SINRIC("[SinricPro.handleModuleScopeRequest()]: handling module sope request\r\n"); #ifndef NODEBUG_SINRIC serializeJsonPretty(requestMessage, DEBUG_ESP_PORT); #endif @@ -434,13 +435,28 @@ void SinricProClass::handleReceiveQueue() { } }; } else { - DEBUG_SINRIC("[SinricPro.handleReceiveQueue()]: Signature is invalid! \r\n"); - if (messageType == FSTR_SINRICPRO_request) handleDeviceRequest(jsonMessage, rawMessage->getInterface()); + handleInvalidSignatureRequest(jsonMessage, rawMessage->getInterface()); } delete rawMessage; } } +void SinricProClass::handleInvalidSignatureRequest(JsonDocument& requestMessage, interface_t Interface) { + DEBUG_SINRIC("[SinricPro.handleInvalidSignatureRequest()]: Signature is invalid!\r\n"); + +#ifndef NODEBUG_SINRIC + serializeJsonPretty(requestMessage, DEBUG_ESP_PORT); +#endif + + JsonDocument responseMessage = prepareResponse(requestMessage); + responseMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_success] = false; + responseMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_message] = "Signature is invalid"; + + String responseString; + serializeJson(responseMessage, responseString); + sendQueue.push(new SinricProMessage(Interface, responseString.c_str())); +} + void SinricProClass::handleSendQueue() { if (!isConnected()) return; if (!timestamp.getTimestamp()) return; diff --git a/src/SinricProVersion.h b/src/SinricProVersion.h index 60f49f78..749ec458 100644 --- a/src/SinricProVersion.h +++ b/src/SinricProVersion.h @@ -6,7 +6,7 @@ // Version Configuration #define SINRICPRO_VERSION_MAJOR 3 #define SINRICPRO_VERSION_MINOR 4 -#define SINRICPRO_VERSION_REVISION 0 +#define SINRICPRO_VERSION_REVISION 1 #define SINRICPRO_VERSION STR(SINRICPRO_VERSION_MAJOR) "." STR(SINRICPRO_VERSION_MINOR) "." STR(SINRICPRO_VERSION_REVISION) #define SINRICPRO_VERSION_STR "SinricPro (v" SINRICPRO_VERSION ")" #define SINRICPRO_VERISON_INT SINRICPRO_VERSION_MAJOR * 1000000 + SINRICPRO_VERSION_MINOR * 1000 + SINRICPRO_VERSION_REVISION \ No newline at end of file From 5f1f759d9ba5793d1b6f392f81ce181cb57e677b Mon Sep 17 00:00:00 2001 From: Aruna Tennakoon Date: Sat, 18 Jan 2025 13:06:55 +0700 Subject: [PATCH 2/2] fix: typo --- src/SinricPro.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SinricPro.h b/src/SinricPro.h index 1ec9acfe..a6375a52 100644 --- a/src/SinricPro.h +++ b/src/SinricPro.h @@ -328,7 +328,7 @@ void SinricProClass::handleResponse(JsonDocument& responseMessage) { } void SinricProClass::handleModuleRequest(JsonDocument& requestMessage, interface_t Interface) { - DEBUG_SINRIC("[SinricPro.handleModuleScopeRequest()]: handling module sope request\r\n"); + DEBUG_SINRIC("[SinricPro.handleModuleScopeRequest()]: handling module scope request\r\n"); #ifndef NODEBUG_SINRIC serializeJsonPretty(requestMessage, DEBUG_ESP_PORT); #endif