blob: ce2c5e5c8f11fe2663dd5f3f09909083a319424e [file] [log] [blame]
import platform
import subprocess
import os
import config
SUPPORTED_SYSTEMS = [
'Linux',
'MacOS',
'BSD',
]
class Keystore:
def __init__(self):
self.config = config.Config()
self.private_key = self.config.getKey("mdt")
self.public_key = self.config.getKey("mdt.pub")
def privateKeyPath(self):
return os.path.join(config.CONFIG_KEYSDIR, "mdt")
def generateKey(self):
if platform.system() not in SUPPORTED_SYSTEMS:
print('Sorry, MDT doesn\'t support generating SSH keys on platforms other than:')
print('\n'.join(SUPPORTED_SYSTEMS))
return False
try:
subprocess.run([
"ssh-keygen",
"-f",
self.privateKeyPath(),
"-P",
""
], check=True)
except FileNotFoundError as e:
print('Couldn\'t find ssh-keygen in your PATH.')
return False
except subprocess.CalledProcessError as e:
print('Couldn\'t generate SSH keys.')
print('ssh-keygen failed with error code {0}'.format(e.returncode))
return False
self.private_key = self.config.getKey("mdt")
self.public_key = self.config.getKey("mdt.pub")
return True
def publicKey(self):
return self.public_key
def privateKey(self):
return self.private_key
def pushKey(self):
pass
class GenKey:
def __init__(self):
self.keystore = Keystore()
def run(self, args):
self.keystore.generateKey()