Script for checking event hashes
This commit is contained in:
parent
fe6832fae8
commit
af83bf6712
|
@ -0,0 +1,43 @@
|
||||||
|
from synapse.crypto.event_signing import *
|
||||||
|
from syutil.base64util import encode_base64
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import hashlib
|
||||||
|
import sys
|
||||||
|
import json
|
||||||
|
|
||||||
|
class dictobj(dict):
|
||||||
|
def __init__(self, *args, **kargs):
|
||||||
|
dict.__init__(self, *args, **kargs)
|
||||||
|
self.__dict__ = self
|
||||||
|
|
||||||
|
def get_dict(self):
|
||||||
|
return dict(self)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("input_json", nargs="?", type=argparse.FileType('r'),
|
||||||
|
default=sys.stdin)
|
||||||
|
args = parser.parse_args()
|
||||||
|
logging.basicConfig()
|
||||||
|
|
||||||
|
event_json = dictobj(json.load(args.input_json))
|
||||||
|
|
||||||
|
algorithms = {
|
||||||
|
"sha256": hashlib.sha256,
|
||||||
|
}
|
||||||
|
|
||||||
|
for alg_name in event_json.hashes:
|
||||||
|
if check_event_pdu_content_hash(event_json, algorithms[alg_name]):
|
||||||
|
print "PASS content hash %s" % (alg_name,)
|
||||||
|
else:
|
||||||
|
print "FAIL content hash %s" % (alg_name,)
|
||||||
|
|
||||||
|
for algorithm in algorithms.values():
|
||||||
|
name, h_bytes = compute_pdu_event_reference_hash(event_json, algorithm)
|
||||||
|
print "Reference hash %s: %s" % (name, encode_base64(bytes))
|
||||||
|
|
||||||
|
if __name__=="__main__":
|
||||||
|
main()
|
||||||
|
|
Loading…
Reference in New Issue