]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
scripts: utility to get base64 url encoded query for DoH GET
authorTomas Krizek <tomas.krizek@nic.cz>
Thu, 5 Nov 2020 09:42:21 +0000 (10:42 +0100)
committerTomas Krizek <tomas.krizek@nic.cz>
Thu, 5 Nov 2020 09:42:21 +0000 (10:42 +0100)
scripts/doh_b64encode_query.py [new file with mode: 0755]

diff --git a/scripts/doh_b64encode_query.py b/scripts/doh_b64encode_query.py
new file mode 100755 (executable)
index 0000000..59569b8
--- /dev/null
@@ -0,0 +1,26 @@
+#!/usr/bin/env python3
+import argparse
+import base64
+
+import dns
+import dns.message
+
+
+def main():
+    parser = argparse.ArgumentParser(
+        description='Convert query name and type to base64 URL-encoded form')
+    parser.add_argument('qname', type=str, help='query name')
+    parser.add_argument('qtype', type=str, help='query type')
+    args = parser.parse_args()
+
+    msg = dns.message.make_query(args.qname, args.qtype, dns.rdataclass.IN)
+    msg.id = 0
+    wire = msg.to_wire()
+    encoded = base64.urlsafe_b64encode(wire)
+    printable = encoded.decode('utf-8')
+
+    print(printable)
+
+
+if __name__ == '__main__':
+    main()