def test_rec_token2(self):
        token1 = achallenges.RecoveryToken(challb=None, domain="0")
        token2 = achallenges.RecoveryToken(challb=None, domain="1")

        self.auth.cleanup([token1, token2])

        self.assertEqual(self.mock_cleanup.call_args_list,
                         [mock.call(token1), mock.call(token2)])
示例#2
0
    def test_perform_not_stored(self, mock_input):
        mock_input().input.side_effect = [(0, "555"), (1, "000")]
        response = self.rec_token.perform(
            achallenges.RecoveryToken(challb=challenges.RecoveryToken(),
                                      domain="example5.com"))
        self.assertEqual(response,
                         challenges.RecoveryTokenResponse(token="555"))

        response = self.rec_token.perform(
            achallenges.RecoveryToken(challb=challenges.RecoveryToken(),
                                      domain="example6.com"))
        self.assertTrue(response is None)
示例#3
0
def challb_to_achall(challb, key, domain):
    """Converts a ChallengeBody object to an AnnotatedChallenge.

    :param challb: ChallengeBody
    :type challb: :class:`acme.messages.ChallengeBody`

    :param key: Key
    :type key: :class:`letsencrypt.le_util.Key`

    :param str domain: Domain of the challb

    :returns: Appropriate AnnotatedChallenge
    :rtype: :class:`letsencrypt.achallenges.AnnotatedChallenge`

    """
    chall = challb.chall
    logger.info("%s challenge for %s", chall.typ, domain)

    if isinstance(chall, challenges.DVSNI):
        return achallenges.DVSNI(challb=challb, domain=domain, key=key)
    elif isinstance(chall, challenges.SimpleHTTP):
        return achallenges.SimpleHTTP(challb=challb, domain=domain, key=key)
    elif isinstance(chall, challenges.DNS):
        return achallenges.DNS(challb=challb, domain=domain)
    elif isinstance(chall, challenges.RecoveryToken):
        return achallenges.RecoveryToken(challb=challb, domain=domain)
    elif isinstance(chall, challenges.RecoveryContact):
        return achallenges.RecoveryContact(challb=challb, domain=domain)
    elif isinstance(chall, challenges.ProofOfPossession):
        return achallenges.ProofOfPossession(challb=challb, domain=domain)

    else:
        raise errors.Error("Received unsupported challenge of type: %s",
                           chall.typ)
示例#4
0
    def test_unexpected(self):
        token = achallenges.RecoveryToken(challb=None, domain="0")
        unexpected = achallenges.DVSNI(challb=None,
                                       domain="0",
                                       key="dummy_key")

        self.assertRaises(errors.LetsEncryptContAuthError, self.auth.cleanup,
                          [token, unexpected])
示例#5
0
    def test_perform_stored(self):
        self.rec_token.store_token("example4.com", 444)
        response = self.rec_token.perform(
            achallenges.RecoveryToken(challb=challenges.RecoveryToken(),
                                      domain="example4.com"))

        self.assertEqual(response,
                         challenges.RecoveryTokenResponse(token="444"))
示例#6
0
    def test_cleanup(self):
        self.rec_token.store_token("example3.com", 333)
        self.assertFalse(self.rec_token.requires_human("example3.com"))

        self.rec_token.cleanup(
            achallenges.RecoveryToken(challb=challenges.RecoveryToken(),
                                      domain="example3.com"))
        self.assertTrue(self.rec_token.requires_human("example3.com"))

        # Shouldn't throw an error
        self.rec_token.cleanup(
            achallenges.RecoveryToken(challb=None, domain="example4.com"))

        # SHOULD throw an error (OSError other than nonexistent file)
        self.assertRaises(
            OSError, self.rec_token.cleanup,
            achallenges.RecoveryToken(challb=None,
                                      domain=("a" + "r" * 10000 + ".com")))
    def test_rec_token5(self):
        tokens = []
        for i in xrange(5):
            tokens.append(achallenges.RecoveryToken(challb=None, domain=str(i)))

        responses = self.auth.perform(tokens)

        self.assertEqual(len(responses), 5)
        for i in xrange(5):
            self.assertEqual(responses[i], "RecoveryToken%d" % i)
    def test_pop_and_rec_token(self):
        achalls = []
        for i in xrange(4):
            if i % 2 == 0:
                achalls.append(achallenges.RecoveryToken(challb=None,
                                                         domain=str(i)))
            else:
                achalls.append(achallenges.ProofOfPossession(challb=None,
                                                             domain=str(i)))
        responses = self.auth.perform(achalls)

        self.assertEqual(len(responses), 4)
        for i in xrange(4):
            if i % 2 == 0:
                self.assertEqual(responses[i], "RecoveryToken%d" % i)
            else:
                self.assertEqual(responses[i], "ProofOfPossession%d" % i)
 def test_rec_token1(self):
     token = achallenges.RecoveryToken(challb=None, domain="0")
     responses = self.auth.perform([token])
     self.assertEqual(responses, ["RecoveryToken0"])