Mercurial > dropbear-fuzzcorpus
view make_verify.py @ 2:e5383cd558e5
fuzzer-verify corpus
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Fri, 26 May 2017 00:20:12 +0800 |
parents | |
children |
line wrap: on
line source
#!/usr/bin/env python3 """ takes a pubkey, turns it into fuzzer-verify input """ import sys import struct import re import binascii BLOB_RE=re.compile(r'(?:ssh-rsa|ecdsa-\S+|ssh-dss) ([a-zA-Z0-9/+=]+)') inp = sys.stdin.read() b64blob = BLOB_RE.search(inp).groups(1)[0] blob = binascii.a2b_base64(b64blob) sigtypelen = struct.unpack('>I', blob[:4])[0] sigtype = blob[4:4+sigtypelen] print("Type is %s" % sigtype, file=sys.stderr) # a bodgy key followed by signature # eg rfc4253 # string "ssh-rsa" # string rsa_signature_blob sys.stdout.buffer.write(blob) sys.stdout.buffer.write(struct.pack('>I', sigtypelen)) sys.stdout.buffer.write(sigtype) sys.stdout.buffer.write(struct.pack('>II', 4, 20))