Example #1
0
    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()})
Example #2
0
    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()})
Example #3
0
def encode_csr(csr):
    """
    Encode CSR as JOSE Base-64 DER.

    :param cryptography.x509.CertificateSigningRequest csr: The CSR.

    :rtype: str
    """
    return jose.encode_b64jose(csr.public_bytes(serialization.Encoding.DER))
Example #4
0
class HeaderTest(unittest.TestCase):
    """Tests for acme.jws.Header."""

    good_nonce = jose.encode_b64jose(b'foo')
    wrong_nonce = u'F'
    # Following just makes sure wrong_nonce is wrong
    try:
        jose.b64decode(wrong_nonce)
    except (ValueError, TypeError):
        assert True
    else:
        assert False  # pragma: no cover

    def test_nonce_decoder(self):
        from acme.jws import Header
        nonce_field = Header._fields['nonce']

        self.assertRaises(jose.DeserializationError, nonce_field.decode,
                          self.wrong_nonce)
        self.assertEqual(b'foo', nonce_field.decode(self.good_nonce))
Example #5
0
    def setUp(self):
        jwk = 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()})
Example #6
0
 def test_from_json_invalid_token_length(self):
     from acme.challenges import DVSNI
     self.jmsg['token'] = jose.encode_b64jose(b'abcd')
     self.assertRaises(jose.DeserializationError, DVSNI.from_json,
                       self.jmsg)
Example #7
0
 def test_from_json_invalid_token_length(self):
     from acme.challenges import DVSNI
     self.jmsg['token'] = jose.encode_b64jose(b'abcd')
     self.assertRaises(
         jose.DeserializationError, DVSNI.from_json, self.jmsg)
Example #8
0
    def test_from_json_invalid_token_length(self):
        from acme.challenges import TLSSNI01

        self.jmsg["token"] = jose.encode_b64jose(b"abcd")
        self.assertRaises(jose.DeserializationError, TLSSNI01.from_json, self.jmsg)