diff --git a/letsencrypt/crypto_util.py b/letsencrypt/crypto_util.py index 79cd24ed6..eac0530aa 100644 --- a/letsencrypt/crypto_util.py +++ b/letsencrypt/crypto_util.py @@ -201,25 +201,23 @@ def valid_privkey(privkey): return False -def _pyopenssl_load(data, method, types=( - OpenSSL.crypto.FILETYPE_PEM, OpenSSL.crypto.FILETYPE_ASN1)): - openssl_errors = [] - for filetype in types: - try: - return method(filetype, data), filetype - except OpenSSL.crypto.Error as error: # TODO: anything else? - openssl_errors.append(error) - raise errors.Error("Unable to load: {0}".format(",".join( - str(error) for error in openssl_errors))) - - def pyopenssl_load_certificate(data): """Load PEM/DER certificate. :raises errors.Error: """ - return _pyopenssl_load(data, OpenSSL.crypto.load_certificate) + + openssl_errors = [] + + for file_type in (OpenSSL.crypto.FILETYPE_PEM, OpenSSL.crypto.FILETYPE_ASN1): + try: + return OpenSSL.crypto.load_certificate(file_type, data), file_type + except OpenSSL.crypto.Error as error: # TODO: other errors? + openssl_errors.append(error) + raise errors.Error("Unable to load: {0}".format(",".join( + str(error) for error in openssl_errors))) + def _get_sans_from_cert_or_req( diff --git a/letsencrypt/tests/crypto_util_test.py b/letsencrypt/tests/crypto_util_test.py index 9ad36c83b..8ac8a0adc 100644 --- a/letsencrypt/tests/crypto_util_test.py +++ b/letsencrypt/tests/crypto_util_test.py @@ -212,17 +212,10 @@ class GetSANsFromCSRTest(unittest.TestCase): self.assertEqual( [], self._call(test_util.load_vector('csr-nosans.pem'))) -class PyOpenSslLoaderTest(unittest.TestCase): - def test_pyopenssl_load(self): - from letsencrypt.crypto_util import _pyopenssl_load - - method_mock = mock.MagicMock() - fake_data = "this is test data" - fake_types = ('fake loading type',) - _pyopenssl_load(fake_data, method_mock, fake_types) - method_mock.assert_called_with(fake_types[0], fake_data) class CertLoaderTest(unittest.TestCase): + """Tests for letsencrypt.crypto_util.pyopenssl_load_certificate""" + def test_it(self): from letsencrypt.crypto_util import pyopenssl_load_certificate @@ -230,5 +223,6 @@ class CertLoaderTest(unittest.TestCase): self.assertEqual(cert.digest('sha1'), OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, CERT).digest('sha1')) + if __name__ == '__main__': unittest.main() # pragma: no cover