コード例 #1
0
ファイル: challenges.py プロジェクト: ILoveStudy/certbot
    def simple_verify(self, chall, domain, account_public_key):
        """Simple verify.

        :param challenges.DNS01 chall: Corresponding challenge.
        :param unicode domain: Domain name being verified.
        :param JWK account_public_key: Public key for the key pair
            being authorized.

        :returns: ``True`` iff validation with the TXT records resolved from a
            DNS server is successful.
        :rtype: bool

        """
        if not self.verify(chall, account_public_key):
            logger.debug("Verification of key authorization in response failed")
            return False

        validation_domain_name = chall.validation_domain_name(domain)
        validation = chall.validation(account_public_key)
        logger.debug("Verifying %s at %s...", chall.typ, validation_domain_name)

        try:
            from acme import dns_resolver
        except ImportError:  # pragma: no cover
            raise errors.Error("Local validation for 'dns-01' challenges "
                               "requires 'dnspython'")
        txt_records = dns_resolver.txt_records_for_name(validation_domain_name)
        exists = validation in txt_records
        if not exists:
            logger.debug("Key authorization from response (%r) doesn't match "
                         "any DNS response in %r", self.key_authorization,
                         txt_records)
        return exists
コード例 #2
0
ファイル: challenges.py プロジェクト: stanchan/certbot
    def simple_verify(self, chall, domain, account_public_key):
        """Simple verify.

        :param challenges.DNS01 chall: Corresponding challenge.
        :param unicode domain: Domain name being verified.
        :param JWK account_public_key: Public key for the key pair
            being authorized.

        :returns: ``True`` iff validation with the TXT records resolved from a
            DNS server is successful.
        :rtype: bool

        """
        if not self.verify(chall, account_public_key):
            logger.debug(
                "Verification of key authorization in response failed")
            return False

        validation_domain_name = chall.validation_domain_name(domain)
        validation = chall.validation(account_public_key)
        logger.debug("Verifying %s at %s...", chall.typ,
                     validation_domain_name)

        try:
            from acme import dns_resolver
        except ImportError:  # pragma: no cover
            raise errors.DependencyError("Local validation for 'dns-01' "
                                         "challenges requires 'dnspython'")
        txt_records = dns_resolver.txt_records_for_name(validation_domain_name)
        exists = validation in txt_records
        if not exists:
            logger.debug(
                "Key authorization from response (%r) doesn't match "
                "any DNS response in %r", self.key_authorization, txt_records)
        return exists
コード例 #3
0
ファイル: dns_resolver_test.py プロジェクト: zone-h/certbot
 def test_txt_records_for_name_domain_other_error(self, mock_dns):
     mock_dns.side_effect = dns.exception.DNSException
     self.assertEquals([], dns_resolver.txt_records_for_name('name'))
コード例 #4
0
ファイル: dns_resolver_test.py プロジェクト: zone-h/certbot
 def test_txt_records_for_name_domain_not_found(self, mock_dns):
     mock_dns.side_effect = dns.resolver.NXDOMAIN
     self.assertEquals([], dns_resolver.txt_records_for_name('name'))
コード例 #5
0
ファイル: dns_resolver_test.py プロジェクト: zone-h/certbot
 def test_txt_records_for_name_with_multiple_responses(self, mock_dns):
     mock_dns.return_value = create_txt_response('name',
                                                 ['response1', 'response2'])
     self.assertEqual(['response1', 'response2'],
                      dns_resolver.txt_records_for_name('name'))
コード例 #6
0
ファイル: dns_resolver_test.py プロジェクト: jtl999/certbot
 def _call(cls, name):
     from acme import dns_resolver
     return dns_resolver.txt_records_for_name(name)
コード例 #7
0
 def test_txt_records_for_name_domain_other_error(self, mock_dns):
     mock_dns.side_effect = dns.exception.DNSException
     self.assertEquals([], dns_resolver.txt_records_for_name('name'))
コード例 #8
0
 def test_txt_records_for_name_domain_not_found(self, mock_dns):
     mock_dns.side_effect = dns.resolver.NXDOMAIN
     self.assertEquals([], dns_resolver.txt_records_for_name('name'))
コード例 #9
0
 def test_txt_records_for_name_with_multiple_responses(self, mock_dns):
     mock_dns.return_value = create_txt_response(
         'name', ['response1', 'response2'])
     self.assertEqual(['response1', 'response2'],
                      dns_resolver.txt_records_for_name('name'))
コード例 #10
0
 def _call(cls, *args, **kwargs):
     from acme.dns_resolver import txt_records_for_name
     return txt_records_for_name(*args, **kwargs)
コード例 #11
0
ファイル: dns_resolver_test.py プロジェクト: benileo/certbot
 def _call(cls, *args, **kwargs):
     from acme.dns_resolver import txt_records_for_name
     return txt_records_for_name(*args, **kwargs)