Example #1
0
def create_token(api, settings, email, password):
    while True:
        try:
            if get_user_config(settings).get('ssh_auth') and password is None:
                key_path = get_user_config(settings).get('ssh_path',
                                                         get_default_ssh_key_path())
                fingerprint = get_public_key_fingerprint(key_path)
                if not fingerprint:
                    raise PublicKeyException('WrongPublicKey')

                ssh_token = api.create_ssh_token()
                signature = sign_token(key_path, fingerprint, ssh_token)
                return api.create_token_ssh_auth(email,
                                                 ssh_token,
                                                 signature,
                                                 fingerprint)
            else:
                return api.create_token_basic_auth(email, password)

        except (cclib.APIException, SignatureException, PublicKeyException) as e:
            if password is not None:
                sys.exit(messages['NotAuthorized'])

            print >> sys.stderr, str(e) + " " + messages['NotAuthorizedPublicKey']
            password = get_password_env(settings)
            if not password:
                password = get_password()
Example #2
0
 def test_get_public_key_fingerprint_use_default_path(self, open, **kwargs):
     open.return_value.read.return_value = self.TEST_PUB_KEY
     self.assertEqual(self.TEST_FINGERPRINT,
                      get_public_key_fingerprint(None))
     self.assertEqual([
         call(os.path.expanduser('~') + '/.ssh/id_rsa.pub'),
         call().read()
     ], open.mock_calls)
Example #3
0
 def test_get_public_key_fingerprint_key_not_found(self, open, **kwargs):
     open.side_effect = IOError('File not found')
     self.assertEqual(None, get_public_key_fingerprint('path'))
     self.assertEqual([call('path')], open.mock_calls)
Example #4
0
 def test_get_public_key_fingerprint(self, open, **kwargs):
     open.return_value.read.return_value = self.TEST_PUB_KEY
     self.assertEqual(self.TEST_FINGERPRINT,
                      get_public_key_fingerprint('path'))
     self.assertEqual([call('path'), call().read()], open.mock_calls)
Example #5
0
 def test_get_public_key_fingerprint_key_not_found(self, open, **kwargs):
     open.side_effect = IOError('File not found')
     self.assertEqual(None, get_public_key_fingerprint('path'))
     self.assertEqual([call('path')], open.mock_calls)
Example #6
0
 def test_get_public_key_fingerprint_use_default_path(self, open, **kwargs):
     open.return_value.read.return_value = self.TEST_PUB_KEY
     self.assertEqual(self.TEST_FINGERPRINT, get_public_key_fingerprint(None))
     self.assertEqual([call(os.path.expanduser('~') + '/.ssh/id_rsa.pub'), call().read()], open.mock_calls)
Example #7
0
 def test_get_public_key_fingerprint(self, open, **kwargs):
     open.return_value.read.return_value = self.TEST_PUB_KEY
     self.assertEqual(self.TEST_FINGERPRINT, get_public_key_fingerprint('path'))
     self.assertEqual([call('path'), call().read()], open.mock_calls)