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