86 lines
2.2 KiB
Python
86 lines
2.2 KiB
Python
import json
|
|
import account
|
|
import requests
|
|
|
|
# Plugin Data
|
|
info = {
|
|
"name": "Check signatures",
|
|
"description": "Validate signatures",
|
|
"version": "1.0",
|
|
"author": "Nathan.Woodburn/"
|
|
}
|
|
|
|
# Functions
|
|
functions = {
|
|
"validate":{
|
|
"name": "Validate signature",
|
|
"type": "default",
|
|
"description": "Validate that a message was signed by a specific domain",
|
|
"params": {
|
|
"domain": {
|
|
"name": "Signing domain",
|
|
"type": "text",
|
|
},
|
|
"message": {
|
|
"name": "Message",
|
|
"type": "text",
|
|
},
|
|
"signature": {
|
|
"name": "Signature",
|
|
"type": "text",
|
|
}
|
|
},
|
|
"returns": {
|
|
"status":
|
|
{
|
|
"name": "Validity of the signature",
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
def validate(params, authentication):
|
|
domain = params["domain"]
|
|
message = params["message"]
|
|
signature = params["signature"]
|
|
|
|
if account.verifyMessageWithName(domain, signature,message):
|
|
return {"status": "Valid"}
|
|
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"} |