crypto_util: merge _pyopenssl_load into pyopenssl_load_certificate

This commit is contained in:
Liam Marshall
2015-10-04 15:39:29 -05:00
parent 7b2d40ce55
commit aa15fae11d
2 changed files with 14 additions and 22 deletions
+11 -13
View File
@@ -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(
+3 -9
View File
@@ -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