def setUp(self):
        from acme.challenges import ProofOfPossession
        hints = ProofOfPossession.Hints(jwk=jose.JWKRSA(key=KEY.public_key()),
                                        cert_fingerprints=(),
                                        certs=(),
                                        serial_numbers=(),
                                        subject_key_identifiers=(),
                                        issuers=(),
                                        authorized_for=())
        self.msg = ProofOfPossession(
            alg=jose.RS256,
            hints=hints,
            nonce=b'xD\xf9\xb9\xdbU\xed\xaa\x17\xf1y|\x81\x88\x99 ')

        self.jmsg_to = {
            'type': 'proofOfPossession',
            'alg': jose.RS256,
            'nonce': 'eET5udtV7aoX8Xl8gYiZIA',
            'hints': hints,
        }
        self.jmsg_from = {
            'type': 'proofOfPossession',
            'alg': jose.RS256.to_json(),
            'nonce': 'eET5udtV7aoX8Xl8gYiZIA',
            'hints': hints.to_json(),
        }
    def setUp(self):
        jwk = jose.JWKRSA(key=KEY.public_key())
        issuers = (
            'C=US, O=SuperT LLC, CN=SuperTrustworthy Public CA',
            'O=LessTrustworthy CA Inc, CN=LessTrustworthy But StillSecure',
        )
        cert_fingerprints = (
            '93416768eb85e33adc4277f4c9acd63e7418fcfe',
            '16d95b7b63f1972b980b14c20291f3c0d1855d95',
            '48b46570d9fc6358108af43ad1649484def0debf',
        )
        subject_key_identifiers = ('d0083162dcc4c8a23ecb8aecbd86120e56fd24e5')
        authorized_for = ('www.example.com', 'example.net')
        serial_numbers = (34234239832, 23993939911, 17)

        from acme.challenges import ProofOfPossession
        self.msg = ProofOfPossession.Hints(
            jwk=jwk, issuers=issuers, cert_fingerprints=cert_fingerprints,
            certs=(CERT,), subject_key_identifiers=subject_key_identifiers,
            authorized_for=authorized_for, serial_numbers=serial_numbers)

        self.jmsg_to = {
            'jwk': jwk,
            'certFingerprints': cert_fingerprints,
            'certs': (jose.encode_b64jose(OpenSSL.crypto.dump_certificate(
                OpenSSL.crypto.FILETYPE_ASN1, CERT)),),
            'subjectKeyIdentifiers': subject_key_identifiers,
            'serialNumbers': serial_numbers,
            'issuers': issuers,
            'authorizedFor': authorized_for,
        }
        self.jmsg_from = self.jmsg_to.copy()
        self.jmsg_from.update({'jwk': jwk.to_json()})
    def setUp(self):
        from acme.challenges import ProofOfPossession

        hints = ProofOfPossession.Hints(
            jwk=KEY.public_key(),
            cert_fingerprints=(),
            certs=(),
            serial_numbers=(),
            subject_key_identifiers=(),
            issuers=(),
            authorized_for=(),
        )
        self.msg = ProofOfPossession(
            alg=jose.RS256, hints=hints, nonce=b"xD\xf9\xb9\xdbU\xed\xaa\x17\xf1y|\x81\x88\x99 "
        )

        self.jmsg_to = {
            "type": "proofOfPossession",
            "alg": jose.RS256,
            "nonce": "eET5udtV7aoX8Xl8gYiZIA",
            "hints": hints,
        }
        self.jmsg_from = {
            "type": "proofOfPossession",
            "alg": jose.RS256.to_json(),
            "nonce": "eET5udtV7aoX8Xl8gYiZIA",
            "hints": hints.to_json(),
        }
class ProofOfPossessionTest(unittest.TestCase):
    def setUp(self):
        from acme.challenges import ProofOfPossession

        hints = ProofOfPossession.Hints(
            jwk=KEY.public_key(),
            cert_fingerprints=(),
            certs=(),
            serial_numbers=(),
            subject_key_identifiers=(),
            issuers=(),
            authorized_for=(),
        )
        self.msg = ProofOfPossession(
            alg=jose.RS256, hints=hints, nonce=b"xD\xf9\xb9\xdbU\xed\xaa\x17\xf1y|\x81\x88\x99 "
        )

        self.jmsg_to = {
            "type": "proofOfPossession",
            "alg": jose.RS256,
            "nonce": "eET5udtV7aoX8Xl8gYiZIA",
            "hints": hints,
        }
        self.jmsg_from = {
            "type": "proofOfPossession",
            "alg": jose.RS256.to_json(),
            "nonce": "eET5udtV7aoX8Xl8gYiZIA",
            "hints": hints.to_json(),
        }

    def test_to_partial_json(self):
        self.assertEqual(self.jmsg_to, self.msg.to_partial_json())

    def test_from_json(self):
        from acme.challenges import ProofOfPossession

        self.assertEqual(self.msg, ProofOfPossession.from_json(self.jmsg_from))

    def test_from_json_hashable(self):
        from acme.challenges import ProofOfPossession

        hash(ProofOfPossession.from_json(self.jmsg_from))
    def setUp(self):
        from acme.challenges import ProofOfPossession
        hints = ProofOfPossession.Hints(
            jwk=jose.JWKRSA(key=KEY.publickey()), cert_fingerprints=(),
            certs=(), serial_numbers=(), subject_key_identifiers=(),
            issuers=(), authorized_for=())
        self.msg = ProofOfPossession(
            alg=jose.RS256, hints=hints,
            nonce='xD\xf9\xb9\xdbU\xed\xaa\x17\xf1y|\x81\x88\x99 ')

        self.jmsg_to = {
            'type': 'proofOfPossession',
            'alg': jose.RS256,
            'nonce': 'eET5udtV7aoX8Xl8gYiZIA',
            'hints': hints,
        }
        self.jmsg_from = {
            'type': 'proofOfPossession',
            'alg': jose.RS256.to_json(),
            'nonce': 'eET5udtV7aoX8Xl8gYiZIA',
            'hints': hints.to_json(),
        }
class ProofOfPossessionTest(unittest.TestCase):
    def setUp(self):
        from acme.challenges import ProofOfPossession
        hints = ProofOfPossession.Hints(jwk=jose.JWKRSA(key=KEY.public_key()),
                                        cert_fingerprints=(),
                                        certs=(),
                                        serial_numbers=(),
                                        subject_key_identifiers=(),
                                        issuers=(),
                                        authorized_for=())
        self.msg = ProofOfPossession(
            alg=jose.RS256,
            hints=hints,
            nonce=b'xD\xf9\xb9\xdbU\xed\xaa\x17\xf1y|\x81\x88\x99 ')

        self.jmsg_to = {
            'type': 'proofOfPossession',
            'alg': jose.RS256,
            'nonce': 'eET5udtV7aoX8Xl8gYiZIA',
            'hints': hints,
        }
        self.jmsg_from = {
            'type': 'proofOfPossession',
            'alg': jose.RS256.to_json(),
            'nonce': 'eET5udtV7aoX8Xl8gYiZIA',
            'hints': hints.to_json(),
        }

    def test_to_partial_json(self):
        self.assertEqual(self.jmsg_to, self.msg.to_partial_json())

    def test_from_json(self):
        from acme.challenges import ProofOfPossession
        self.assertEqual(self.msg, ProofOfPossession.from_json(self.jmsg_from))

    def test_from_json_hashable(self):
        from acme.challenges import ProofOfPossession
        hash(ProofOfPossession.from_json(self.jmsg_from))
class ProofOfPossessionTest(unittest.TestCase):

    def setUp(self):
        from acme.challenges import ProofOfPossession
        hints = ProofOfPossession.Hints(
            jwk=jose.JWKRSA(key=KEY.publickey()), cert_fingerprints=(),
            certs=(), serial_numbers=(), subject_key_identifiers=(),
            issuers=(), authorized_for=())
        self.msg = ProofOfPossession(
            alg=jose.RS256, hints=hints,
            nonce='xD\xf9\xb9\xdbU\xed\xaa\x17\xf1y|\x81\x88\x99 ')

        self.jmsg_to = {
            'type': 'proofOfPossession',
            'alg': jose.RS256,
            'nonce': 'eET5udtV7aoX8Xl8gYiZIA',
            'hints': hints,
        }
        self.jmsg_from = {
            'type': 'proofOfPossession',
            'alg': jose.RS256.to_json(),
            'nonce': 'eET5udtV7aoX8Xl8gYiZIA',
            'hints': hints.to_json(),
        }

    def test_to_partial_json(self):
        self.assertEqual(self.jmsg_to, self.msg.to_partial_json())

    def test_from_json(self):
        from acme.challenges import ProofOfPossession
        self.assertEqual(
            self.msg, ProofOfPossession.from_json(self.jmsg_from))

    def test_from_json_hashable(self):
        from acme.challenges import ProofOfPossession
        hash(ProofOfPossession.from_json(self.jmsg_from))
 def test_from_json_hashable(self):
     from acme.challenges import ProofOfPossession
     hash(ProofOfPossession.from_json(self.jmsg_from))
 def test_from_json(self):
     from acme.challenges import ProofOfPossession
     self.assertEqual(
         self.msg, ProofOfPossession.from_json(self.jmsg_from))
 def test_from_json_hashable(self):
     from acme.challenges import ProofOfPossession
     hash(ProofOfPossession.from_json(self.jmsg_from))
 def test_from_json(self):
     from acme.challenges import ProofOfPossession
     self.assertEqual(self.msg, ProofOfPossession.from_json(self.jmsg_from))