def importKey(): try: file = sys.argv[2] except (IndexError): print 'You need to supply a source key file!' print 'Ex: '+sys.argv[0]+' --import <key file>' sys.exit(1) try: with open(KEYS_DB): pass except IOError: print 'No keys database (keys.db)' print 'initialize the database with '+sys.argv[0]+' --init' sys.exit(1) print 'Importing new DH public key to database' with open (file, "r") as f: signed_data=f.read() verified = gpg.verify(str(signed_data)) if verified.username is not None: print('Verified signed by: %s' % verified.username) print('at trust level: %s' % verified.trust_text) else: print 'Signature not valid' sys.exit(0) data = signed_data.split('\n') pubkey = '' for line in data: if len(line) == 50: pubkey += line while pubkey[:1] == '0': pubkey = pubkey[1:] try: toEmail = verified.username.split('<')[1].split('>')[0] # regular email except IndexError: toEmail = verified.username # only a name - probably anonymous print 'To Email is: %s' % toEmail.lower() fromEmail = raw_input('Enter From Email: ') keys = dhutils.getKeys(fromEmail.lower(),toEmail.lower(),gpg,dbpassphrase) if not keys: print 'key doesn\'t exist for the '+fromEmail+' -> '+toEmail+' route' print 'create new key?' ans = raw_input('y/N: ') if ans == 'y': dhutils.insertKeys(fromEmail.lower(),toEmail.lower(),pubkey.lower(),gpg,dbpassphrase) else: print 'key exists for the '+fromEmail.lower()+' -> '+toEmail.lower()+' route' print 'change key?' ans = raw_input('y/N: ') if ans == 'y': dhutils.changePubKey(fromEmail.lower(),toEmail.lower(),pubkey.lower(),gpg,dbpassphrase)
def gen(): try: fromEmail = sys.argv[2] toEmail = sys.argv[3] except (IndexError): print 'You need to supply a fromEmail, and toEmail!' print 'Ex: '+sys.argv[0]+' --gen-key <fromEmail> <toEmail>' sys.exit(1) try: with open(KEYS_DB): pass except IOError: print 'No keys database (keys.db)' print 'initialize the database with '+sys.argv[0]+' --init' sys.exit(1) dhutils.makeKeys() dhutils.insertKeys(fromEmail,toEmail,1,gpg,dbpassphrase)
def gen(): try: fromEmail = sys.argv[2] toEmail = sys.argv[3] except (IndexError): print 'You need to supply a fromEmail, and toEmail!' print 'Ex: ' + sys.argv[0] + ' --gen-key <fromEmail> <toEmail>' sys.exit(1) try: with open(KEYS_DB): pass except IOError: print 'No keys database (keys.db)' print 'initialize the database with ' + sys.argv[0] + ' --init' sys.exit(1) dhutils.makeKeys() dhutils.insertKeys(fromEmail, toEmail, 1, gpg, dbpassphrase)
def importKey(): try: file = sys.argv[2] except (IndexError): print 'You need to supply a source key file!' print 'Ex: ' + sys.argv[0] + ' --import <key file>' sys.exit(1) try: with open(KEYS_DB): pass except IOError: print 'No keys database (keys.db)' print 'initialize the database with ' + sys.argv[0] + ' --init' sys.exit(1) print 'Importing new DH public key to database' with open(file, "r") as f: signed_data = f.read() verified = gpg.verify(str(signed_data)) if verified.username is not None: print('Verified signed by: %s' % verified.username) print('at trust level: %s' % verified.trust_text) else: print 'Signature not valid' sys.exit(0) data = signed_data.split('\n') pubkey = '' for line in data: if len(line) == 50: pubkey += line while pubkey[:1] == '0': pubkey = pubkey[1:] try: toEmail = verified.username.split('<')[1].split('>')[ 0] # regular email except IndexError: toEmail = verified.username # only a name - probably anonymous print 'To Email is: %s' % toEmail.lower() fromEmail = raw_input('Enter From Email: ') keys = dhutils.getKeys(fromEmail.lower(), toEmail.lower(), gpg, dbpassphrase) if not keys: print 'key doesn\'t exist for the ' + fromEmail + ' -> ' + toEmail + ' route' print 'create new key?' ans = raw_input('y/N: ') if ans == 'y': dhutils.insertKeys(fromEmail.lower(), toEmail.lower(), pubkey.lower(), gpg, dbpassphrase) else: print 'key exists for the ' + fromEmail.lower( ) + ' -> ' + toEmail.lower() + ' route' print 'change key?' ans = raw_input('y/N: ') if ans == 'y': dhutils.changePubKey(fromEmail.lower(), toEmail.lower(), pubkey.lower(), gpg, dbpassphrase)