"""Tests for acme.jws.""" import unittest import josepy as jose from acme import test_util KEY = jose.JWKRSA.load(test_util.load_vector('rsa512_key.pem')) 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)) class JWSTest(unittest.TestCase): """Tests for acme.jws.JWS.""" def setUp(self): self.privkey = KEY self.pubkey = self.privkey.public_key() self.nonce = jose.b64encode(b'Nonce') self.url = 'hi' self.kid = 'baaaaa' def test_kid_serialize(self): from acme.jws import JWS jws = JWS.sign(payload=b'foo', key=self.privkey, alg=jose.RS256, nonce=self.nonce, url=self.url, kid=self.kid) self.assertEqual(jws.signature.combined.nonce, self.nonce) self.assertEqual(jws.signature.combined.url, self.url) self.assertEqual(jws.signature.combined.kid, self.kid) self.assertEqual(jws.signature.combined.jwk, None) # TODO: check that nonce is in protected header self.assertEqual(jws, JWS.from_json(jws.to_json())) def test_jwk_serialize(self): from acme.jws import JWS jws = JWS.sign(payload=b'foo', key=self.privkey, alg=jose.RS256, nonce=self.nonce, url=self.url) self.assertEqual(jws.signature.combined.kid, None) self.assertEqual(jws.signature.combined.jwk, self.pubkey) if __name__ == '__main__': unittest.main() # pragma: no cover
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 727 B | 0644 |
|
challenges.py | File | 19.8 KB | 0644 |
|
challenges_test.py | File | 21.17 KB | 0644 |
|
client.py | File | 46.26 KB | 0644 |
|
client_test.py | File | 56.84 KB | 0644 |
|
crypto_util.py | File | 10.99 KB | 0644 |
|
crypto_util_test.py | File | 9.98 KB | 0644 |
|
errors.py | File | 3.57 KB | 0644 |
|
errors_test.py | File | 1.48 KB | 0644 |
|
fields.py | File | 1.7 KB | 0644 |
|
fields_test.py | File | 2.03 KB | 0644 |
|
jose_test.py | File | 1.92 KB | 0644 |
|
jws.py | File | 2.09 KB | 0644 |
|
jws_test.py | File | 2.03 KB | 0644 |
|
magic_typing.py | File | 534 B | 0644 |
|
magic_typing_test.py | File | 1.42 KB | 0644 |
|
messages.py | File | 19.11 KB | 0644 |
|
messages_test.py | File | 16.25 KB | 0644 |
|
standalone.py | File | 11.09 KB | 0644 |
|
standalone_test.py | File | 10.54 KB | 0644 |
|
test_util.py | File | 3.12 KB | 0644 |
|
util.py | File | 166 B | 0644 |
|
util_test.py | File | 456 B | 0644 |
|