Esempio n. 1
0
    def test_asymmetric_import_export(self):
        """Tests asymmetric key import/export"""
        # test public keys
        test_pub_keys = [self._server_pub_key1, self._client_pub_key2]
        for key in test_pub_keys:
            pub_key_s = public_key_to_str(key)
            pub_prefix = b'-----BEGIN PUBLIC KEY-----'
            self.assertEqual(pub_key_s[:len(pub_prefix)], pub_prefix)
            pub_suffix = b'-----END PUBLIC KEY-----\n'
            self.assertEqual(pub_key_s[len(pub_key_s) - len(pub_suffix):],
                             pub_suffix)
            # make sure that the reversals work as intended
            self.assertEqual(public_key_to_str(public_key_from_str(pub_key_s)),
                             pub_key_s)

        # now test private keys
        test_priv_keys = [self._server_priv_key1, self._client_priv_key2]
        for key in test_priv_keys:
            priv_key_s = private_key_to_str(key)
            priv_prefix = b'-----BEGIN PRIVATE KEY-----'
            self.assertEqual(priv_key_s[:len(priv_prefix)], priv_prefix)
            priv_suffix = b'-----END PRIVATE KEY-----\n'
            self.assertEqual(priv_key_s[len(priv_key_s) - len(priv_suffix):],
                             priv_suffix)
            self.assertEqual(
                private_key_to_str(private_key_from_str(priv_key_s)),
                priv_key_s)
Esempio n. 2
0
    def test_asymmetric_import_export(self):
        """Tests asymmetric key import/export"""
        # test public keys
        test_pub_keys = [self._server_pub_key1, self._client_pub_key2]
        for key in test_pub_keys:
            pub_key_s = public_key_to_str(key)
            pub_prefix = b'-----BEGIN PUBLIC KEY-----'
            self.assertEqual(pub_key_s[:len(pub_prefix)], pub_prefix)
            pub_suffix = b'-----END PUBLIC KEY-----\n'
            self.assertEqual(pub_key_s[len(pub_key_s) - len(pub_suffix):],
                             pub_suffix)
            # make sure that the reversals work as intended
            self.assertEqual(public_key_to_str(public_key_from_str(pub_key_s)),
                             pub_key_s)

        # now test private keys
        test_priv_keys = [self._server_priv_key1, self._client_priv_key2]
        for key in test_priv_keys:
            priv_key_s = private_key_to_str(key)
            priv_prefix = b'-----BEGIN PRIVATE KEY-----'
            self.assertEqual(priv_key_s[:len(priv_prefix)], priv_prefix)
            priv_suffix = b'-----END PRIVATE KEY-----\n'
            self.assertEqual(priv_key_s[len(priv_key_s) - len(priv_suffix):],
                             priv_suffix)
            self.assertEqual(
                private_key_to_str(private_key_from_str(priv_key_s)),
                priv_key_s)
Esempio n. 3
0
    def test_private_key_to_file(self):
        """ Resulting files from writing same key to both should be the same
        """
        priv_keys = [self._server_priv_key1, self._client_priv_key2]
        path1 = 'test_priv_key_to_file1.pem'
        path2 = 'test_priv_key_to_file2.pem'
        for key in priv_keys:
            private_key_to_file(key, path1)
            private_key_to_file(key, path2)
            self.assertTrue(filecmp.cmp(path1, path2))

            # Even when one of them is overwritten
            private_key_to_file(key, path2)
            self.assertTrue(filecmp.cmp(path1, path2))

            # check reading from file
            key_r = private_key_from_file(path1)
            self.assertEqual(private_key_to_str(key_r),
                             private_key_to_str(key))
            key_r = private_key_from_file(path2)
            self.assertEqual(private_key_to_str(key_r),
                             private_key_to_str(key))

            remove(path1)
            remove(path2)

            # check how the passwords work
            private_key_to_file(key, path1, "something")
            private_key_to_file(key, path2, "something")

            # check reading from file
            key_r = private_key_from_file(path1, "something")
            self.assertEqual(private_key_to_str(key_r),
                             private_key_to_str(key))
            key_r = private_key_from_file(path2, "something")
            self.assertEqual(private_key_to_str(key_r),
                             private_key_to_str(key))
            remove(path1)
            remove(path2)
Esempio n. 4
0
    def test_private_key_to_file(self):
        """ Resulting files from writing same key to both should be the same
        """
        priv_keys = [self._server_priv_key1, self._client_priv_key2]
        path1 = 'test_priv_key_to_file1.pem'
        path2 = 'test_priv_key_to_file2.pem'
        for key in priv_keys:
            private_key_to_file(key, path1)
            private_key_to_file(key, path2)
            self.assertTrue(filecmp.cmp(path1, path2))

            # Even when one of them is overwritten
            private_key_to_file(key, path2)
            self.assertTrue(filecmp.cmp(path1, path2))

            # check reading from file
            key_r = private_key_from_file(path1)
            self.assertEqual(private_key_to_str(key_r),
                             private_key_to_str(key))
            key_r = private_key_from_file(path2)
            self.assertEqual(private_key_to_str(key_r),
                             private_key_to_str(key))

            remove(path1)
            remove(path2)

            # check how the passwords work
            private_key_to_file(key, path1, "something")
            private_key_to_file(key, path2, "something")

            # check reading from file
            key_r = private_key_from_file(path1, "something")
            self.assertEqual(private_key_to_str(key_r),
                             private_key_to_str(key))
            key_r = private_key_from_file(path2, "something")
            self.assertEqual(private_key_to_str(key_r),
                             private_key_to_str(key))
            remove(path1)
            remove(path2)