Example #1
0
    def setUp(self):
        from acme.jose.jws import Header

        self.header1 = Header(jwk="foo")
        self.header2 = Header(jwk="bar")
        self.crit = Header(crit=("a", "b"))
        self.empty = Header()
 def test_x5c_decoding(self):
     from acme.jose.jws import Header
     header = Header(x5c=(CERT, CERT))
     jobj = header.to_partial_json()
     cert_b64 = base64.b64encode(CERT.as_der())
     self.assertEqual(jobj, {'x5c': [cert_b64, cert_b64]})
     self.assertEqual(header, Header.from_json(jobj))
     jobj['x5c'][0] = base64.b64encode('xxx' + CERT.as_der())
     self.assertRaises(errors.DeserializationError, Header.from_json, jobj)
Example #3
0
 def test_x5c_decoding(self):
     from acme.jose.jws import Header
     header = Header(x5c=(CERT, CERT))
     jobj = header.to_partial_json()
     cert_b64 = base64.b64encode(CERT.as_der())
     self.assertEqual(jobj, {'x5c': [cert_b64, cert_b64]})
     self.assertEqual(header, Header.from_json(jobj))
     jobj['x5c'][0] = base64.b64encode('xxx' + CERT.as_der())
     self.assertRaises(errors.DeserializationError, Header.from_json, jobj)
Example #4
0
 def test_x5c_decoding(self):
     from acme.jose.jws import Header
     header = Header(x5c=(CERT, CERT))
     jobj = header.to_partial_json()
     cert_asn1 = OpenSSL.crypto.dump_certificate(
         OpenSSL.crypto.FILETYPE_ASN1, CERT.wrapped)
     cert_b64 = base64.b64encode(cert_asn1)
     self.assertEqual(jobj, {'x5c': [cert_b64, cert_b64]})
     self.assertEqual(header, Header.from_json(jobj))
     jobj['x5c'][0] = base64.b64encode(b'xxx' + cert_asn1)
     self.assertRaises(errors.DeserializationError, Header.from_json, jobj)
Example #5
0
    def test_x5c_decoding(self):
        from acme.jose.jws import Header

        header = Header(x5c=(CERT, CERT))
        jobj = header.to_partial_json()
        cert_asn1 = OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_ASN1, CERT.wrapped)
        cert_b64 = base64.b64encode(cert_asn1)
        self.assertEqual(jobj, {"x5c": [cert_b64, cert_b64]})
        self.assertEqual(header, Header.from_json(jobj))
        jobj["x5c"][0] = base64.b64encode(b"xxx" + cert_asn1)
        self.assertRaises(errors.DeserializationError, Header.from_json, jobj)
Example #6
0
class HeaderTest(unittest.TestCase):
    """Tests for acme.jose.jws.Header."""
    def setUp(self):
        from acme.jose.jws import Header
        self.header1 = Header(jwk='foo')
        self.header2 = Header(jwk='bar')
        self.crit = Header(crit=('a', 'b'))
        self.empty = Header()

    def test_add_non_empty(self):
        from acme.jose.jws import Header
        self.assertEqual(Header(jwk='foo', crit=('a', 'b')),
                         self.header1 + self.crit)

    def test_add_empty(self):
        self.assertEqual(self.header1, self.header1 + self.empty)
        self.assertEqual(self.header1, self.empty + self.header1)

    def test_add_overlapping_error(self):
        self.assertRaises(TypeError, self.header1.__add__, self.header2)

    def test_add_wrong_type_error(self):
        self.assertRaises(TypeError, self.header1.__add__, 'xxx')

    def test_crit_decode_always_errors(self):
        from acme.jose.jws import Header
        self.assertRaises(errors.DeserializationError, Header.from_json,
                          {'crit': ['a', 'b']})

    def test_x5c_decoding(self):
        from acme.jose.jws import Header
        header = Header(x5c=(CERT, CERT))
        jobj = header.to_partial_json()
        cert_b64 = base64.b64encode(
            OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_ASN1,
                                            CERT))
        self.assertEqual(jobj, {'x5c': [cert_b64, cert_b64]})
        self.assertEqual(header, Header.from_json(jobj))
        jobj['x5c'][0] = base64.b64encode(
            b'xxx' +
            OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_ASN1, CERT)
        )
        self.assertRaises(errors.DeserializationError, Header.from_json, jobj)

    def test_find_key(self):
        self.assertEqual('foo', self.header1.find_key())
        self.assertEqual('bar', self.header2.find_key())
        self.assertRaises(errors.Error, self.crit.find_key)
Example #7
0
class HeaderTest(unittest.TestCase):
    """Tests for acme.jose.jws.Header."""

    def setUp(self):
        from acme.jose.jws import Header

        self.header1 = Header(jwk="foo")
        self.header2 = Header(jwk="bar")
        self.crit = Header(crit=("a", "b"))
        self.empty = Header()

    def test_add_non_empty(self):
        from acme.jose.jws import Header

        self.assertEqual(Header(jwk="foo", crit=("a", "b")), self.header1 + self.crit)

    def test_add_empty(self):
        self.assertEqual(self.header1, self.header1 + self.empty)
        self.assertEqual(self.header1, self.empty + self.header1)

    def test_add_overlapping_error(self):
        self.assertRaises(TypeError, self.header1.__add__, self.header2)

    def test_add_wrong_type_error(self):
        self.assertRaises(TypeError, self.header1.__add__, "xxx")

    def test_crit_decode_always_errors(self):
        from acme.jose.jws import Header

        self.assertRaises(errors.DeserializationError, Header.from_json, {"crit": ["a", "b"]})

    def test_x5c_decoding(self):
        from acme.jose.jws import Header

        header = Header(x5c=(CERT, CERT))
        jobj = header.to_partial_json()
        cert_asn1 = OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_ASN1, CERT.wrapped)
        cert_b64 = base64.b64encode(cert_asn1)
        self.assertEqual(jobj, {"x5c": [cert_b64, cert_b64]})
        self.assertEqual(header, Header.from_json(jobj))
        jobj["x5c"][0] = base64.b64encode(b"xxx" + cert_asn1)
        self.assertRaises(errors.DeserializationError, Header.from_json, jobj)

    def test_find_key(self):
        self.assertEqual("foo", self.header1.find_key())
        self.assertEqual("bar", self.header2.find_key())
        self.assertRaises(errors.Error, self.crit.find_key)
Example #8
0
class HeaderTest(unittest.TestCase):
    """Tests for acme.jose.jws.Header."""

    def setUp(self):
        from acme.jose.jws import Header
        self.header1 = Header(jwk='foo')
        self.header2 = Header(jwk='bar')
        self.crit = Header(crit=('a', 'b'))
        self.empty = Header()

    def test_add_non_empty(self):
        from acme.jose.jws import Header
        self.assertEqual(Header(jwk='foo', crit=('a', 'b')),
                         self.header1 + self.crit)

    def test_add_empty(self):
        self.assertEqual(self.header1, self.header1 + self.empty)
        self.assertEqual(self.header1, self.empty + self.header1)

    def test_add_overlapping_error(self):
        self.assertRaises(TypeError, self.header1.__add__, self.header2)

    def test_add_wrong_type_error(self):
        self.assertRaises(TypeError, self.header1.__add__, 'xxx')

    def test_crit_decode_always_errors(self):
        from acme.jose.jws import Header
        self.assertRaises(errors.DeserializationError, Header.from_json,
                          {'crit': ['a', 'b']})

    def test_x5c_decoding(self):
        from acme.jose.jws import Header
        header = Header(x5c=(CERT, CERT))
        jobj = header.to_partial_json()
        cert_b64 = base64.b64encode(OpenSSL.crypto.dump_certificate(
            OpenSSL.crypto.FILETYPE_ASN1, CERT))
        self.assertEqual(jobj, {'x5c': [cert_b64, cert_b64]})
        self.assertEqual(header, Header.from_json(jobj))
        jobj['x5c'][0] = base64.b64encode(
            'xxx' + OpenSSL.crypto.dump_certificate(
                OpenSSL.crypto.FILETYPE_ASN1, CERT))
        self.assertRaises(errors.DeserializationError, Header.from_json, jobj)

    def test_find_key(self):
        self.assertEqual('foo', self.header1.find_key())
        self.assertEqual('bar', self.header2.find_key())
        self.assertRaises(errors.Error, self.crit.find_key)
Example #9
0
 def test_from_json(self):
     from acme.jose.jws import Header
     from acme.jose.jws import Signature
     self.assertEqual(
         Signature(signature=b'foo', header=Header(alg=jwa.RS256)),
         Signature.from_json({
             'signature': 'Zm9v',
             'header': {
                 'alg': 'RS256'
             }
         }))
Example #10
0
 def test_add_non_empty(self):
     from acme.jose.jws import Header
     self.assertEqual(Header(jwk='foo', crit=('a', 'b')),
                      self.header1 + self.crit)
Example #11
0
 def setUp(self):
     from acme.jose.jws import Header
     self.header1 = Header(jwk='foo')
     self.header2 = Header(jwk='bar')
     self.crit = Header(crit=('a', 'b'))
     self.empty = Header()
 def setUp(self):
     from acme.jose.jws import Header
     self.header1 = Header(jwk='foo')
     self.header2 = Header(jwk='bar')
     self.crit = Header(crit=('a', 'b'))
     self.empty = Header()