summaryrefslogtreecommitdiffstats
path: root/scripts/doh_b64encode_query.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-08 20:37:50 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-08 20:37:50 +0000
commitc1f743ab2e4a7046d5500875a47d1f62c8624603 (patch)
tree709946d52f5f3bbaeb38be9e3f1d56d11f058237 /scripts/doh_b64encode_query.py
parentInitial commit. (diff)
downloadknot-resolver-c1f743ab2e4a7046d5500875a47d1f62c8624603.tar.xz
knot-resolver-c1f743ab2e4a7046d5500875a47d1f62c8624603.zip
Adding upstream version 5.7.1.upstream/5.7.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'scripts/doh_b64encode_query.py')
-rwxr-xr-xscripts/doh_b64encode_query.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/scripts/doh_b64encode_query.py b/scripts/doh_b64encode_query.py
new file mode 100755
index 0000000..59569b8
--- /dev/null
+++ b/scripts/doh_b64encode_query.py
@@ -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()