From d8e76be40ee6a8c89a4d9ba0787254505731cda9 Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Wed, 29 Jan 2025 17:26:36 +1100 Subject: [PATCH] feat: Add json signature checker --- signature-checker.py | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/signature-checker.py b/signature-checker.py index c0ff812..62923b1 100644 --- a/signature-checker.py +++ b/signature-checker.py @@ -37,6 +37,24 @@ functions = { "type": "text" } } + }, + "advancedValidate":{ + "name": "Validate signature from json", + "type": "default", + "description": "Validate that a message was signed by a specific domain using json format", + "params": { + "json": { + "name": "JSON signature object", + "type": "longText", + } + }, + "returns": { + "status": + { + "name": "Validity of the signature", + "type": "text" + } + } } } @@ -47,4 +65,22 @@ def validate(params, authentication): if account.verifyMessageWithName(domain, signature,message): return {"status": "Valid"} - return {"status": "Invalid signature"} \ No newline at end of file + return {"status": "Invalid signature"} + +def advancedValidate(params, authentication): + data = params["json"] + + try: + data = json.loads(data) + except: + return {"status": "Invalid JSON"} + + if "domain" in data and "message" in data and "signature" in data: + domain = data["domain"] + message = data["message"] + signature = data["signature"] + + if account.verifyMessageWithName(domain, signature,message): + return {"status": "Valid"} + return {"status": "Invalid signature"} + return {"status": "Invalid JSON"} \ No newline at end of file