"""ACME JSON fields.""" import logging import josepy as jose import pyrfc3339 logger = logging.getLogger(__name__) class Fixed(jose.Field): """Fixed field.""" def __init__(self, json_name, value): self.value = value super(Fixed, self).__init__( json_name=json_name, default=value, omitempty=False) def decode(self, value): if value != self.value: raise jose.DeserializationError('Expected {0!r}'.format(self.value)) return self.value def encode(self, value): if value != self.value: logger.warning( 'Overriding fixed field (%s) with %r', self.json_name, value) return value class RFC3339Field(jose.Field): """RFC3339 field encoder/decoder. Handles decoding/encoding between RFC3339 strings and aware (not naive) `datetime.datetime` objects (e.g. ``datetime.datetime.now(pytz.utc)``). """ @classmethod def default_encoder(cls, value): return pyrfc3339.generate(value) @classmethod def default_decoder(cls, value): try: return pyrfc3339.parse(value) except ValueError as error: raise jose.DeserializationError(error) class Resource(jose.Field): """Resource MITM field.""" def __init__(self, resource_type, *args, **kwargs): self.resource_type = resource_type super(Resource, self).__init__( 'resource', default=resource_type, *args, **kwargs) def decode(self, value): if value != self.resource_type: raise jose.DeserializationError( 'Wrong resource type: {0} instead of {1}'.format( value, self.resource_type)) return value
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 |
|