3
}:aY7 @ s d Z ddlZddlZddlZddlZddlmZmZmZm Z m
Z
mZ G dd dZG dd dej
ZG dd d ej
ZG d
d dej
ZG dd
d
Zedkreej dS )zJSON Web Signature. N)b64errors json_utiljwajwkutilc @ s, e Zd ZdZdZedd Zedd ZdS ) MediaTypez MediaType field encoder/decoder.zapplication/c C s( d|kr$d|krt jd| j| S |S )zDecoder./;zUnexpected semi-colon)r DeserializationErrorPREFIX)clsvalue r /usr/lib/python3.6/jws.pydecode s
zMediaType.decodec C s d|kr|t | jd S |S )zEncoder.r
N)lenr )r
r r r r encode s zMediaType.encodeN)__name__
__module____qualname____doc__r classmethodr r r r r r r s
r c @ s e Zd ZdZejdejjddZ ejdddZ
ejdejjddZejdddZ
ejd ddZejd
df dZejdejddZejd
ejddZejdejejddZejdejejddZejddf dZdd Zdd Zdd Zejdd Zejdd Zejdd ZdS )Headera6 JOSE Header.
.. warning:: This class supports **only** Registered Header
Parameter Names (as defined in section 4.1 of the
protocol). If you need Public Header Parameter Names (4.2)
or Private Header Parameter Names (4.3), you must subclass
and override :meth:`from_json` and :meth:`to_partial_json`
appropriately.
.. warning:: This class does not support any extensions through
the "crit" (Critical) Header Parameter (4.1.11) and as a
conforming implementation, :meth:`from_json` treats its
occurrence as an error. Please subclass if you seek for
a different behaviour.
:ivar x5tS256: "x5t#S256"
:ivar str typ: MIME Media Type, inc. :const:`MediaType.PREFIX`.
:ivar str cty: Content-Type, inc. :const:`MediaType.PREFIX`.
algT)decoder omitemptyjku)r r kidx5ux5c)r defaultx5tzx5t#S256typ)encoderr r ctycritc s fdd j j D S )z4Fields that would not be omitted in the JSON object.c s, i | ]$\}}|j t |st ||qS r )Zomitgetattr).0nameZfield)selfr r