You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.5 KiB
39 lines
1.5 KiB
import base64
|
|
|
|
import pb
|
|
from mesht_device import FROMRADIO_SCHEMA, NODEINFO_SCHEMA, USER_SCHEMA, MESHPACKET_SCHEMA
|
|
|
|
from protobuf_decoder.protobuf_decoder import Parser
|
|
##
|
|
packet = "Ddg4d54VeDZ3nhgIKlwHxTE8NDD8eGEQJZ+dr51uXyYBbmqDz2eNhawRUqCrHOxVpvneHflbRZdM+TgRdQP37qZZd9A8r/HjeoSlrg78d8kXYbK/HtV7sct/4nw9ockVYGxvxeyM5gCyUjVE0aO1PXEXlmlIB1hGeAeQAXiYAdgB"
|
|
data = base64.b64decode(packet)
|
|
res = Parser().parse(data.hex())
|
|
|
|
print(res.to_dict(), "\n\n")
|
|
dec = pb.decode(data, MESHPACKET_SCHEMA)
|
|
print(dec, "\n\n")
|
|
from payload_decrypter import decrypt_aes128_ctr, CUSTOM_SCHEMA, _print_result
|
|
d = decrypt_aes128_ctr(base64.b64encode(dec["encrypted"]), "1PG7OiApB1nwvP+rz05pAQ==", dec["id"], dec["from"])
|
|
dec["decoded"] = pb.decode(d, CUSTOM_SCHEMA)
|
|
print("CUSTOM SCHEMA",pb.decode(d, CUSTOM_SCHEMA))
|
|
del dec["encrypted"]
|
|
print("DECODED", dec, "\n\n")
|
|
|
|
enc = pb.encode({"packet": dec}, FROMRADIO_SCHEMA)
|
|
decTwice = pb.decode(enc, FROMRADIO_SCHEMA)
|
|
print(decTwice)
|
|
|
|
|
|
###
|
|
#print(base64.b64decode('BtJrAGXS0BJzm9890X0uD1VawYhZ+woD5O6UI3oXUjmB'))
|
|
#from bson.binary import Binary as BinData
|
|
#enc = BinData('CgkhMDZmOTM5MDASEERyTzIgfCBDRU4gfCA4NjgaBERyTzIiBpAVBvk5ACgDOAxCIAvwvaWvYapqWHtbnIVK+Iil93nOk2DHMf0qMDg+Kf5XSAA='.encode("ascii"), 0)
|
|
#print(enc.hex)
|
|
#enc.
|
|
#from protobuf_decoder.protobuf_decoder import Parser
|
|
#packet = "BtJrAGXS0BJzm9890X0uD1VawYhZ+woD5O6UI3oXUjmB"
|
|
#data = base64.b64decode(packet)
|
|
#to_parse = ' '.join(f'{byte:02x}' for byte in data)
|
|
#res = Parser().parse(enc.hex())
|
|
#print(res.to_dict())
|
|
#print(pb.decode(data, FROMRADIO_SCHEMA))
|