From 0b7121341f0c3124ac1061075ec3f8e2de4eb6ba Mon Sep 17 00:00:00 2001 From: Jakub Warmuz Date: Fri, 12 Dec 2014 10:37:53 +0100 Subject: [PATCH] Remove csr_matches_names. c.f. #127 and https://github.com/letsencrypt/lets-encrypt-preview/pull/127#discussion-diff-21613376 --- letsencrypt/client/client.py | 5 ----- letsencrypt/client/crypto_util.py | 21 ------------------- letsencrypt/client/tests/crypto_util_test.py | 22 -------------------- 3 files changed, 48 deletions(-) diff --git a/letsencrypt/client/client.py b/letsencrypt/client/client.py index b6f507688..4765014ec 100644 --- a/letsencrypt/client/client.py +++ b/letsencrypt/client/client.py @@ -118,11 +118,6 @@ class Client(object): # Make sure we have key and csr to perform challenges self.init_key_csr() - # TODO: Handle this exception/problem - if not crypto_util.csr_matches_names(self.csr.data, self.names): - raise errors.LetsEncryptClientError( - "CSR subject does not contain one of the specified names") - # Perform Challenges responses, challenge_objs = self.verify_identity(challenge_msg) # Get Authorization diff --git a/letsencrypt/client/crypto_util.py b/letsencrypt/client/crypto_util.py index 1d323cec2..bf9989495 100644 --- a/letsencrypt/client/crypto_util.py +++ b/letsencrypt/client/crypto_util.py @@ -129,27 +129,6 @@ def valid_csr(csr): return False -def csr_matches_names(csr, domains): - """Check if CSR contains the subject of one of the domains. - - M2Crypto currently does not expose the OpenSSL interface to - also check the SAN extension. This is insufficient for full testing - - :param str csr: CSR in DER. - - :param list domains: Domains the CSR should contain. - - :returns: If the CSR subject contains one of the domains - :rtype: bool - - """ - try: - csr_obj = M2Crypto.X509.load_request_der_string(csr) - return csr_obj.get_subject().CN in domains - except M2Crypto.X509.X509Error: - return False - - def csr_matches_pubkey(csr, privkey): """Does private key correspond to the subject public key in the CSR? diff --git a/letsencrypt/client/tests/crypto_util_test.py b/letsencrypt/client/tests/crypto_util_test.py index d1f40f360..76cbc8310 100644 --- a/letsencrypt/client/tests/crypto_util_test.py +++ b/letsencrypt/client/tests/crypto_util_test.py @@ -97,28 +97,6 @@ class ValidCSRTest(unittest.TestCase): self.assertFalse(self._call('foo bar')) -class CSRMatchesNamesTest(unittest.TestCase): - """Tests for letsencrypt.client.crypto_util.csr_matches_names.""" - - def _call(self, csr, domains): - from letsencrypt.client.crypto_util import csr_matches_names - return csr_matches_names(csr, domains) - - def _call_testdata(self, name, domains): - return self._call(pkg_resources.resource_string( - __name__, os.path.join('testdata', name)), domains) - - def test_single_domain(self): - self.assertTrue(self._call_testdata('csr.der', ['example.com'])) - self.assertFalse(self._call_testdata('csr.der', ['www.example.com'])) - self.assertFalse(self._call_testdata('csr.der', ['example'])) - - def test_san(self): - self.assertTrue(self._call_testdata('csr-san.der', ['example.com'])) - self.assertTrue(self._call_testdata('csr-san.der', ['www.example.com'])) - self.assertFalse(self._call_testdata('csr-san.der', ['example'])) - - class CSRMatchesPubkeyTest(unittest.TestCase): """Tests for letsencrypt.client.crypto_util.csr_matches_pubkey."""