Mercurial > dropbear-fuzzcorpus
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make_verify.py Fri May 26 00:20:12 2017 +0800 @@ -0,0 +1,29 @@ +#!/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)) +