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

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))