from prototype import * from tls97 import hs_key from hashlib import sha256 from fastecdsa.encoding.der import DEREncoder from fastecdsa.curve import P256 from fastecdsa.ecdsa import verify from fastecdsa.point import Point from fastecdsa.keys import get_public_key #4f 0000 0000 blob4f=unhex(''' 00000c000000100000100000000020000100f000010407000010000000100000000000009da 6bb3eb1d4d1641811b0a2402ba5010d6d0f2f7ffd8debc7e7e68c31473333020102000020000000e00300 00000000840acfea4e998b5302df52db54b7654b164a1057681149fcbb3ec7a559c80db20505030000000 40000800000000000005c70f7ccce2fc2d7620f69da63548fc392877c88393e9c45327a10c21d46267f06 0603000080040000800000000000005a5eeb284ee05ddae47ee27dc75fafaf09bc8b112a652bde4eab8af c61f2df75040305000000050000000300000000000e828eaff826a0454f6a50f60a36d5014372aaaf2621 41e5ced9d0a0056907c20500bc01170000002000000000b0330e8b22509dd47b3bc2b48540d5bf8946097 678663c23a04ca43911567300000000000000000000000000000000000000000000000000000000000000 000000000069ebc98290a346b0b7be5bb697c24c653ee885e12f497bf44cdf563f7f26af0c00000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000004600000030440220593e87ba9cd31 4bbfddb3feaa2392bd23906d0f5191a3f2a886c4e87d55ac469022025fb00eaa8b29896ec891d7fc6f51c 7dacaba244c4987b772ce221a6f7028c59000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000300a40117000000000 1000001000000fcffffffffffffffffffffff00000000000000000000000001000000ffffffff00000000 00000000000000000000000000000000000000000000000000000000000000004b60d2273e3cce3bf6b05 3ccb0061d65bc86987655bdebb3e7933aaad835c65a000000000000000000000000000000000000000000 00000000000000000000000000000096c298d84539a1f4a033eb2d817d0377f240a463e5e6bcf847422ce 1f2d1176b000000000000000000000000000000000000000000000000000000000000000000000000f551 bf376840b6cbce5e316b5733ce2b169e0f7c4aebe78e9b7f1afee242e34f0000000000000000000000000 00000000000000000000000000000000000000000000000512563fcc2cab9f3849e17a7adfae6bcffffff ffffffffff00000000ffffffff00000000000000000000000000000000000000000000000000000000000 0000000000000ffffffffffffffffffffffff00000000000000000000000001000000ffffffff00000000 0000000000000000000000000000000000000000000000000000000000000000 ''') while len(blob4f) > 0: hdr, blob4f = blob4f[:4], blob4f[4:] id, l = unpack(' 0: d, align, hsh, p = p[:12], p[12:12+4], p[12+4:12+4+32], p[12+4+32:] if align != b'\0' * 4: raise Exception('align should be blank') m=sha256() m.update(d) if m.digest() != hsh: raise Exception('Hash mismatch') print('block 1, blob: %s' % hexlify(d).decode()) elif id == 5: hdr, p = p[:4+4], p[4+4:] magic, keysz = unpack('