Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
def change_pub():
    try:
        fromEmail = sys.argv[2]
        toEmail = sys.argv[3]
        pubkey = sys.argv[4]

    except (IndexError):
        print 'You need to supply fromEmail, toEmail, and public key!'
        print 'Ex: '+sys.argv[0]+' --change-pub <fromEmail> <toEmail> <pub-key>'
        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)

    keys = dhutils.changePubKey(fromEmail,toEmail,pubkey,gpg,dbpassphrase)
Ejemplo n.º 3
0
def change_pub():
    try:
        fromEmail = sys.argv[2]
        toEmail = sys.argv[3]
        pubkey = sys.argv[4]

    except (IndexError):
        print 'You need to supply fromEmail, toEmail, and public key!'
        print 'Ex: ' + sys.argv[
            0] + ' --change-pub <fromEmail> <toEmail> <pub-key>'
        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)

    keys = dhutils.changePubKey(fromEmail, toEmail, pubkey, gpg, dbpassphrase)
Ejemplo n.º 4
0
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)