a }|g @sRdZddlmZddlZGdddejZGdddejZGdd d ejZdS) zACME-specific JWS. The JWS implementation in josepy only implements the base JOSE standard. In order to support the new header fields defined in ACME, this module defines some ACME-specific classes that layer on top of josepy. )OptionalNc@szeZdZUdZejddejdZee e d<ejdddZ ee e d<ejdddZ ee e d<eje e dd d Zd S) Headerz?ACME-specific JOSE Header. Implements nonce, kid, and url. nonceT) omitemptyencoderkid)rurl)valuereturnc CsHz t|WStjyB}ztd|WYd}~n d}~00dS)NzInvalid nonce: {0})joseZdecode_b64joseZDeserializationErrorformat)r errorr,/usr/lib/python3.9/site-packages/acme/jws.pyrs z Header.nonceN)__name__ __module__ __qualname____doc__r fieldZencode_b64joserrbytes__annotations__rstrrdecoderrrrrr s rc@s<eZdZUdZejjZeZ ej dde e j dZ ee d<dS) SignaturezGACME-specific Signature. Uses ACME-specific Header for customer fields.headerT)rdefaultrN)rrrrr r _orig_slots __slots__rZ header_clsrZ from_jsonrrrrrrrs rc sVeZdZdZeZejjZ e de ej ej ee eeeeejdfdd ZZS)JWSzCACME-specific JWS. Includes none, url, and kid in protected header.N)payloadkeyalgrrrr c s,|du}tj|||tgd||||dS)N)rrrZjwkr!)r r!Zprotectrrr include_jwk)supersign frozenset)clsrr r!rrrr" __class__rrr$1s   zJWS.sign)NN)rrrrrZ signature_clsr rrr classmethodrZJWKZ JWASignaturerrr$ __classcell__rrr'rr,sr)rtypingrZjosepyr rrrrrrrs