Example #1
0
 def test_unlock_keyring(self):
     gkr.lock_sync(self.keyring)
     info = gkr.get_info_sync(self.keyring)
     assert(info.get_is_locked())
     self.openkeyring.unlock_keyring()
     info = gkr.get_info_sync(self.keyring)
     assert(not info.get_is_locked())
Example #2
0
 def password(self):
     n = self._password
     if n is None:
         if gtkpresence:
             try:
                 keyring = gnomekeyring.get_default_keyring_sync()
                 keyring_info = gnomekeyring.get_info_sync(keyring)
                 if keyring_info.get_is_locked():
                     nof_tries = 3
                     for i in range(nof_tries):
                         keyring_pass = getpass("Enter password to unlock your default keychain: ")
                         try:
                             gnomekeyring.unlock_sync(keyring, keyring_pass)
                             break
                         except gnomekeyring.DeniedError:
                             if i + 1 == nof_tries:
                                 sys.stderr.write("\nFailed to unlock keychain (%s times)\n" % (i + 1))
                             else:
                                 sys.stderr.write("\nInvalid password, try again...\n")
                 items = gnomekeyring.find_items_sync(
                     gnomekeyring.ITEM_NETWORK_PASSWORD,
                     {"server": self.server, "protocol": "ftp", "user": self.username},
                 )
                 if len(items) > 0:
                     n = items[0].secret
             except gnomekeyring.DeniedError:
                 sys.stderr.write("\nGnome keyring error : Access denied ..\n")
             except gnomekeyring.NoMatchError:
                 sys.stderr.write("\nGnome keyring error : No credential for %s..\n" % self.server)
             except Exception, msg:
                 sys.stderr.write("\nGnome keyring error : %s\n" % (msg))
             sys.stderr.flush()
         if n is None:
             n = getpass("Enter password for ftp://%s@%s: " % (self.username, self.server))
         self._password = n
Example #3
0
 def password(self):
     n = self._password
     if n is None:
         if gtkpresence:
             try:
                 keyring = gnomekeyring.get_default_keyring_sync()
                 keyring_info = gnomekeyring.get_info_sync(keyring)
                 if keyring_info.get_is_locked():
                     nof_tries = 3
                     for i in range(nof_tries):
                         keyring_pass = getpass('Enter password to unlock your default keychain: ')
                         try:
                             gnomekeyring.unlock_sync(keyring, keyring_pass)
                             break
                         except gnomekeyring.DeniedError:
                             if i+1==nof_tries:
                                 sys.stderr.write('\nFailed to unlock keychain (%s times)\n' % (i+1))
                             else:
                                 sys.stderr.write("\nInvalid password, try again...\n")
                 items = gnomekeyring.find_items_sync(gnomekeyring.ITEM_NETWORK_PASSWORD, 
                                                      {"server": self.server, 
                                                       "protocol": "ftp", 
                                                       "user": self.username})
                 if len(items) > 0:
                     n = items[0].secret
             except gnomekeyring.DeniedError:
                 sys.stderr.write("\nGnome keyring error : Access denied ..\n")
             except gnomekeyring.NoMatchError:
                 sys.stderr.write("\nGnome keyring error : No credential for %s..\n" % self.server)
             except Exception, msg:
                 sys.stderr.write("\nGnome keyring error : %s\n" % (msg))
             sys.stderr.flush()
         if n is None:
             n = getpass('Enter password for ftp://%s@%s: ' % (self.username, self.server))
         self._password = n
Example #4
0
    def connect(self):
        try:
            auth = netrc().authenticators(self.host)
            # TODO check if the host exists in netrc
        except IOError as msgio:
            if gtkpresence:
                try:
                    keyring = gnomekeyring.get_default_keyring_sync()
                    keyring_info = gnomekeyring.get_info_sync(keyring)
                    if keyring_info.get_is_locked():
                        keyring_pass = getpass('Enter password to unlock your '
                                               'keychain [%s]: ' % (keyring))
                        try:
                            gnomekeyring.unlock_sync(keyring, keyring_pass)
                        except Exception as msg:
                            sys.stderr.write("\nUnable to unlock your "
                                             "keychain: %s\n" % msg)
                        else:
                            _log().debug("+ [%s] unlocked." % keyring)
                            itempass = gnomekeyring.ITEM_NETWORK_PASSWORD
                            pars = {
                                "server": self.host,
                                "protocol": "ftp",
                                "user": self.user
                            }
                            items = gnomekeyring.find_items_sync(
                                itempass, pars)
                            if len(items) > 0:
                                ftp = ftplib.FTP(self.host, self.user,
                                                 items[0].secret)
                            else:
                                raise Exception('gnomekeyring', 'NoMatchError')
                except gnomekeyring.DeniedError:
                    sys.stderr.write("\nGnome keyring error : "
                                     "Access denied ..\n"
                                     "netrc error: %s\n" % (msgio))
                    sys.exit(1)
                except gnomekeyring.NoMatchError:
                    sys.stderr.write("\nGnome keyring error : "
                                     "No credential for %s..\n"
                                     "netrc error: %s\n" % (self.host, msgio))
                    sys.exit(1)
                except Exception as msg:
                    sys.stderr.write("\nGnome keyring error : %s\n"
                                     "netrc error: %s\n" % (msg, msgio))
                    sys.exit(1)

        else:
            assert self.user == auth[0]
            ftp = ftplib.FTP()
            ftp.connect(self.host, self.port)
            ftp.login(auth[0], auth[2])
        try:
            ftp.cwd(self.path)
        except ftplib.error_perm:
            ftp.mkd(self.path)
            ftp.cwd(self.path)
        self.ftp = ftp
        self.dirs = set()
Example #5
0
    def connect(self):
        try:
            auth = netrc().authenticators(self.host)
            # TODO check if the host exists in netrc
        except IOError as msgio:
            if gtkpresence:
                try:
                    keyring = gnomekeyring.get_default_keyring_sync()
                    keyring_info = gnomekeyring.get_info_sync(keyring)
                    if keyring_info.get_is_locked():
                        keyring_pass = getpass('Enter password to unlock your '
                                               'keychain [%s]: ' % (keyring))
                        try:
                            gnomekeyring.unlock_sync(keyring, keyring_pass)
                        except Exception as msg:
                            sys.stderr.write("\nUnable to unlock your "
                                             "keychain: %s\n" % msg)
                        else:
                            _log().debug("+ [%s] unlocked." % keyring)
                            itempass = gnomekeyring.ITEM_NETWORK_PASSWORD
                            pars = {
                                "server": self.host,
                                "protocol": "ftp",
                                "user": self.user
                            }
                            items = gnomekeyring.find_items_sync(
                                itempass, pars)
                            if len(items) > 0:
                                ftp = ftplib.FTP(self.host, self.user,
                                                 items[0].secret)
                            else:
                                raise Exception('gnomekeyring', 'NoMatchError')
                except gnomekeyring.DeniedError:
                    sys.stderr.write("\nGnome keyring error : "
                                     "Access denied ..\n"
                                     "netrc error: %s\n" % (msgio))
                    sys.exit(1)
                except gnomekeyring.NoMatchError:
                    sys.stderr.write("\nGnome keyring error : "
                                     "No credential for %s..\n"
                                     "netrc error: %s\n" % (self.host, msgio))
                    sys.exit(1)
                except Exception as msg:
                    sys.stderr.write("\nGnome keyring error : %s\n"
                                     "netrc error: %s\n" % (msg, msgio))
                    sys.exit(1)

        else:
            assert self.user == auth[0]
            ftp = ftplib.FTP()
            ftp.connect(self.host, self.port)
            ftp.login(auth[0], auth[2])
        try:
            ftp.cwd(self.path)
        except ftplib.error_perm:
            ftp.mkd(self.path)
            ftp.cwd(self.path)
        self.ftp = ftp
        self.dirs = set()
Example #6
0
def get_keyrings():
    l = []

    for name in gkr.list_keyring_names_sync():
        locked = gkr.get_info_sync(name).get_is_locked()

        keyring = {"id": name, "locked": locked}
        l.append(keyring)

    return l
Example #7
0
	def __init__(self):
		GLib.set_application_name('mailnag')
		self.was_locked = False											# True if Dialog shown. Required for Sortorder problem
		self.keyring_password = ''
		self.defaultKeyring = gnomekeyring.get_default_keyring_sync()
		if self.defaultKeyring == None:
			self.defaultKeyring = 'login'

		while gnomekeyring.get_info_sync(self.defaultKeyring).get_is_locked():		# Keyring locked?
			self.message_response = 'cancel'							# default response for message dialog
			try:
				try: gnomekeyring.unlock_sync(self.defaultKeyring, \
						self.keyring_password)
				except gnomekeyring.IOError:
					self.show_keyring_dialog()							# get keyring password
					Gtk.main()											# wait until dialog is closed
					result = gnomekeyring.unlock_sync(self.defaultKeyring, \
								self.keyring_password)
			except gnomekeyring.IOError:
				self.show_message(_('Failed to unlock Keyring "{0}".\nWrong password.\n\nDo you want to try again?').format(self.defaultKeyring))
				Gtk.main()												# wait until dialog is closed
				if self.message_response == 'cancel': exit(1)			# close application (else: continue getting password)
Example #8
0
	def __update_info(self):
		"""Update keyring status information"""
		self._info = keyring.get_info_sync(self.KEYRING_NAME)

		# update icon
		self.__update_icon()
Example #9
0
 def unlock_keyring(self):
     info = gkr.get_info_sync(self.keyring)
     if info.get_is_locked():
         found_pos = self._auto_unlock_key_position()
         item_info = gkr.item_get_info_sync(self.default_keyring, found_pos)
         gkr.unlock_sync(self.keyring, item_info.get_secret()) 
Example #10
0
#!/usr/bin/env python

import gnomekeyring
import getpass

locked=gnomekeyring.get_info_sync(gnomekeyring.get_default_keyring_sync()).get_is_locked()

if(locked):
  gnomekeyring.unlock_sync(None, getpass.getpass('Password: '******'already unlocked'
Example #11
0
 def __init__(self, keyring = 'passwords'):
     self.keyring = 'passwords'
     if gk.get_info_sync(self.keyring).get_is_locked():
         print "The %s keyring is locked, please type the password" % self.keyring
         password = getpass()
         gk.unlock_sync(self.keyring, password)
Example #12
0
import gnomekeyring

print gnomekeyring.get_info_sync(
    gnomekeyring.get_default_keyring_sync()).get_is_locked()
Example #13
0
    serv.login(login, password)
    serv.select(inbox)
    data = str(serv.status(inbox, "(MESSAGES UNSEEN)"))
    serv.close()
    serv.logout()
    # prepare regular expression
    p = re.compile("(.*UNSEEN |\) '\]\))")
    return int(p.sub("", data))


glib.set_application_name(APP_NAME)
keyrings = gk.list_keyring_names_sync()
if KEYRING_NAME not in keyrings:
    print "Keyring", KEYRING_NAME, "not found"
    exit()
if gk.get_info_sync(KEYRING_NAME).get_is_locked():

    message = "Give password for keyring"
    while True:
        password = get_password(message)
        if password is not None:
            try:
                gk.unlock_sync(KEYRING_NAME, password)
                break
            except gk.IOError:
                message = "Password is wrong. Try again."
        else:
            exit()
GMAIL_PASS = search_secret(KEYRING_NAME, GMAIL_LOGIN)
# OWA_PASS = search_secret(KEYRING_NAME, OWA_LOGIN)
mailserver = "imap4-3.uni.lu"
Example #14
0
def get_keyring_info(keyring_id):
    locked = gkr.get_info_sync(keyring_id).get_is_locked()
    return {"locked": locked}
Example #15
0
 def unlock_app(self):
     inf = gk.get_info_sync(self._app_name)
     if inf.get_is_locked():
         gk.unlock_sync(self._app_name, self._app_pass)