|
|
@@ -0,0 +1,35 @@
|
|
|
+#!/usr/bin/env python3
|
|
|
+'''
|
|
|
+generate a public/private key pair using Monocypher
|
|
|
+'''
|
|
|
+
|
|
|
+import sys
|
|
|
+import base64
|
|
|
+
|
|
|
+try:
|
|
|
+ import monocypher
|
|
|
+except ImportError:
|
|
|
+ print("Please install monocypher with: python3 -m pip install pymonocypher")
|
|
|
+ sys.exit(1)
|
|
|
+
|
|
|
+
|
|
|
+if len(sys.argv) != 2:
|
|
|
+ print("Usage: generate_keys.py BASENAME")
|
|
|
+ sys.exit(1)
|
|
|
+
|
|
|
+bname = sys.argv[1]
|
|
|
+
|
|
|
+def encode_key(ktype, key):
|
|
|
+ return ktype + "_KEYV1:" + base64.b64encode(key).decode('utf-8')
|
|
|
+
|
|
|
+private_key = monocypher.generate_key()
|
|
|
+public_key = monocypher.compute_signing_public_key(private_key)
|
|
|
+
|
|
|
+public_fname = "%s_public_key.dat" % bname
|
|
|
+private_fname = "%s_private_key.dat" % bname
|
|
|
+
|
|
|
+open(private_fname, "w").write(encode_key("PRIVATE", private_key))
|
|
|
+print("Generated %s" % private_fname)
|
|
|
+
|
|
|
+open(public_fname, "w").write(encode_key("PUBLIC", public_key))
|
|
|
+print("Generated %s" % public_fname)
|