mirror of
https://github.com/certbot/certbot.git
synced 2026-07-31 10:16:52 +02:00
crypto_util: merge _pyopenssl_load into pyopenssl_load_certificate
This commit is contained in:
+11
-13
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user