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)
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)