From eb92644a8af350b80845f59c66d3cd1e14b0a528 Mon Sep 17 00:00:00 2001 From: Yang Hongyang Date: Sat, 27 Feb 2016 20:53:05 +0800 Subject: [PATCH] Fix x509 cert generation python3 compability Bytes should be correctly coverted to string. Partially-Implements: blueprint magnum-python3 Change-Id: I9baa76f890fded8ae215f7c3d77fc294506df79e --- magnum/common/x509/operations.py | 4 ++-- magnum/tests/unit/common/x509/test_sign.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/magnum/common/x509/operations.py b/magnum/common/x509/operations.py index 87e29a6691..07fd7e6ca9 100644 --- a/magnum/common/x509/operations.py +++ b/magnum/common/x509/operations.py @@ -103,7 +103,7 @@ def _generate_certificate(issuer_name, subject_name, extensions, ca_key=None, encryption_password=None, ca_key_password=None): if not isinstance(subject_name, six.text_type): - subject_name = six.u(subject_name) + subject_name = six.text_type(subject_name.decode('utf-8')) private_key = rsa.generate_private_key( public_exponent=65537, @@ -169,7 +169,7 @@ def sign(csr, issuer_name, ca_key, ca_key_password=None, backend=default_backend()) if not isinstance(issuer_name, six.text_type): - issuer_name = six.u(issuer_name) + issuer_name = six.text_type(issuer_name.decode('utf-8')) if isinstance(csr, six.text_type): csr = six.b(str(csr)) diff --git a/magnum/tests/unit/common/x509/test_sign.py b/magnum/tests/unit/common/x509/test_sign.py index 031b7d7acf..459e236257 100644 --- a/magnum/tests/unit/common/x509/test_sign.py +++ b/magnum/tests/unit/common/x509/test_sign.py @@ -127,7 +127,7 @@ class TestX509(base.BaseTestCase): issuer_name = six.b("bytes-issuer-name") cert, _ = self._generate_ca_certificate(issuer_name) - issuer_name = six.u(issuer_name) + issuer_name = issuer_name.decode('utf-8') self.assertHasSubjectName(cert, issuer_name) self.assertHasIssuerName(cert, issuer_name) @@ -190,7 +190,7 @@ class TestX509(base.BaseTestCase): private_key = self._generate_private_key() csr_obj = self._build_csr(private_key) csr = csr_obj.public_bytes(serialization.Encoding.PEM) - csr = six.u(csr) + csr = six.text_type(csr.decode('utf-8')) mock_load_pem.return_value = csr_obj operations.sign(csr, self.issuer_name, ca_key,