Пример #1
0
class KeyManagerWithSoledadTestCase(unittest.TestCase, BaseLeapTest):

    def setUp(self):
        self.setUpEnv()
        self.gpg_binary_path = self._find_gpg()

        self._soledad = Soledad(
            u"*****@*****.**",
            u"123456",
            secrets_path=self.tempdir + "/secret.gpg",
            local_db_path=self.tempdir + "/soledad.u1db",
            server_url='',
            cert_file=None,
            auth_token=None,
            syncable=False
        )

    def tearDown(self):
        km = self._key_manager()

        # wait for the indexes to be ready for the tear down
        d = km._wrapper_map[OpenPGPKey].deferred_init
        d.addCallback(lambda _: self.delete_all_keys(km))
        d.addCallback(lambda _: self.tearDownEnv())
        d.addCallback(lambda _: self._soledad.close())
        return d

    def delete_all_keys(self, km):
        def delete_keys(keys):
            deferreds = []
            for key in keys:
                d = km._wrapper_map[key.__class__].delete_key(key)
                deferreds.append(d)
            return gatherResults(deferreds)

        def check_deleted(_, private):
            d = km.get_all_keys(private=private)
            d.addCallback(lambda keys: self.assertEqual(keys, []))
            return d

        deferreds = []
        for private in [True, False]:
            d = km.get_all_keys(private=private)
            d.addCallback(delete_keys)
            d.addCallback(check_deleted, private)
            deferreds.append(d)
        return gatherResults(deferreds)

    def _key_manager(self, user=ADDRESS, url='', token=None,
                     ca_cert_path=None):
        return KeyManager(user, url, self._soledad, token=token,
                          gpgbinary=self.gpg_binary_path,
                          ca_cert_path=ca_cert_path)

    def _find_gpg(self):
        gpg_path = distutils.spawn.find_executable('gpg')
        if gpg_path is not None:
            return os.path.realpath(gpg_path)
        else:
            return "/usr/bin/gpg"
Пример #2
0
class KeyManagerWithSoledadTestCase(unittest.TestCase, BaseLeapTest):
    def setUp(self):
        self.gpg_binary_path = get_gpg_bin_path()

        self._soledad = Soledad(u"*****@*****.**",
                                u"123456",
                                secrets_path=self.tempdir + "/secret.gpg",
                                local_db_path=self.tempdir + "/soledad.u1db",
                                server_url='',
                                cert_file=None,
                                auth_token=None,
                                shared_db=defaultMockSharedDB())

        self.km = self._key_manager()

        class Response(object):
            code = 200
            phrase = ''

            def deliverBody(self, x):
                return ''

        self.km._nicknym._async_client_pinned.request = Mock(
            return_value=defer.succeed(Response()))

        d1 = self.km.put_raw_key(PRIVATE_KEY, ADDRESS)
        d2 = self.km.put_raw_key(PRIVATE_KEY_2, ADDRESS_2)
        return gatherResults([d1, d2])

    def tearDown(self):
        km = self._key_manager()
        # wait for the indexes to be ready for the tear down
        d = km._openpgp.deferred_init
        d.addCallback(lambda _: self.delete_all_keys(km))
        d.addCallback(lambda _: self._soledad.close())
        return d

    def delete_all_keys(self, km):
        def delete_keys(keys):
            deferreds = []
            for key in keys:
                d = km._openpgp.delete_key(key)
                deferreds.append(d)
            return gatherResults(deferreds)

        def check_deleted(_, private):
            d = km.get_all_keys(private=private)
            d.addCallback(lambda keys: self.assertEqual(keys, []))
            return d

        deferreds = []
        for private in [True, False]:
            d = km.get_all_keys(private=private)
            d.addCallback(delete_keys)
            d.addCallback(check_deleted, private)
            deferreds.append(d)
        return gatherResults(deferreds)

    def _key_manager(self,
                     user=ADDRESS,
                     url='',
                     token=None,
                     ca_cert_path=None):
        return KeyManager(user,
                          url,
                          self._soledad,
                          token=token,
                          gpgbinary=self.gpg_binary_path,
                          ca_cert_path=ca_cert_path)
Пример #3
0
class KeyManagerWithSoledadTestCase(unittest.TestCase, BaseLeapTest):
    def setUp(self):
        self.gpg_binary_path = get_gpg_bin_path()

        # TODO: we pass a fake shared database to soledad because we don't want
        # it o try to reach network to lookup a stored secret in the shared
        # database. This logic still has to be improved in soledad itself to
        # account for tests, and when that is done we can remove this from
        # here.
        class FakeSharedDb(object):
            def get_doc(self, doc_id):
                return None

            def put_doc(self, doc):
                return None

        self._soledad = Soledad(
            u"*****@*****.**",
            u"123456",
            secrets_path=self.tempdir + "/secret.gpg",
            local_db_path=self.tempdir + "/soledad.u1db",
            server_url='',
            cert_file=None,
            auth_token=None,
            shared_db=FakeSharedDb(),
        )

    def tearDown(self):
        km = self._key_manager()

        # wait for the indexes to be ready for the tear down
        d = km._openpgp.deferred_init
        d.addCallback(lambda _: self.delete_all_keys(km))
        d.addCallback(lambda _: self._soledad.close())
        return d

    def delete_all_keys(self, km):
        def delete_keys(keys):
            deferreds = []
            for key in keys:
                d = km._openpgp.delete_key(key)
                deferreds.append(d)
            return gatherResults(deferreds)

        def check_deleted(_, private):
            d = km.get_all_keys(private=private)
            d.addCallback(lambda keys: self.assertEqual(keys, []))
            return d

        deferreds = []
        for private in [True, False]:
            d = km.get_all_keys(private=private)
            d.addCallback(delete_keys)
            d.addCallback(check_deleted, private)
            deferreds.append(d)
        return gatherResults(deferreds)

    def _key_manager(self,
                     user=ADDRESS,
                     url='',
                     token=None,
                     ca_cert_path=None):
        return KeyManager(user,
                          url,
                          self._soledad,
                          token=token,
                          gpgbinary=self.gpg_binary_path,
                          ca_cert_path=ca_cert_path)

    def get_public_binary_key(self):
        with open(PATH + '/public_key.bin', 'r') as binary_public_key:
            return binary_public_key.read()

    def get_private_binary_key(self):
        with open(PATH + '/private_key.bin', 'r') as binary_private_key:
            return binary_private_key.read()
Пример #4
0
class KeyManagerWithSoledadTestCase(unittest.TestCase, BaseLeapTest):

    def setUp(self):
        self.gpg_binary_path = self._find_gpg()

        self._soledad = Soledad(
            u"*****@*****.**",
            u"123456",
            secrets_path=self.tempdir + "/secret.gpg",
            local_db_path=self.tempdir + "/soledad.u1db",
            server_url='',
            cert_file=None,
            auth_token=None,
            syncable=False
        )

    def tearDown(self):
        km = self._key_manager()

        # wait for the indexes to be ready for the tear down
        d = km._openpgp.deferred_init
        d.addCallback(lambda _: self.delete_all_keys(km))
        d.addCallback(lambda _: self._soledad.close())
        return d

    def delete_all_keys(self, km):
        def delete_keys(keys):
            deferreds = []
            for key in keys:
                d = km._openpgp.delete_key(key)
                deferreds.append(d)
            return gatherResults(deferreds)

        def check_deleted(_, private):
            d = km.get_all_keys(private=private)
            d.addCallback(lambda keys: self.assertEqual(keys, []))
            return d

        deferreds = []
        for private in [True, False]:
            d = km.get_all_keys(private=private)
            d.addCallback(delete_keys)
            d.addCallback(check_deleted, private)
            deferreds.append(d)
        return gatherResults(deferreds)

    def _key_manager(self, user=ADDRESS, url='', token=None,
                     ca_cert_path=None):
        return KeyManager(user, url, self._soledad, token=token,
                          gpgbinary=self.gpg_binary_path,
                          ca_cert_path=ca_cert_path)

    def _find_gpg(self):
        gpg_path = distutils.spawn.find_executable('gpg')
        if gpg_path is not None:
            return os.path.realpath(gpg_path)
        else:
            return "/usr/bin/gpg"

    def get_public_binary_key(self):
        with open(PATH + '/public_key.bin', 'r') as binary_public_key:
            return binary_public_key.read()

    def get_private_binary_key(self):
        with open(
                PATH + '/private_key.bin', 'r') as binary_private_key:
            return binary_private_key.read()