o 6aS @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@sVeZdZdZejddejdZejdddZejdddZ ej de d e fd d Zd S) Headerz?ACME-specific JOSE Header. Implements nonce, kid, and url. nonceT) omitemptyencoderkid)rurlvaluereturnc Cs8zt|WStjy}ztd|d}~ww)NzInvalid nonce: {0})josedecode_b64joseDeserializationErrorformat)r errorr*/usr/lib/python3/dist-packages/acme/jws.pyrs  z Header.nonceN) __name__ __module__ __qualname____doc__r Fieldencode_b64joserrrdecoderstrbytesrrrrr src@s2eZdZdZejjZeZ ej dde e j dZ dS) SignaturezGACME-specific Signature. Uses ACME-specific Header for customer fields.headerT)rdefaultrN) rrrrr r _orig_slots __slots__r header_clsr from_jsonrrrrrrs rcsdeZdZdZeZejjZ e d de dej dej dee deedeed ejffd d ZZS) JWSzCACME-specific JWS. Includes none, url, and kid in protected header.Npayloadkeyalgrrrr c s,|du}tj|||tgd||||dS)N)rrrjwkr%)r$r%protectrrr include_jwk)supersign frozenset)clsr#r$r%rrrr( __class__rrr*1s   zJWS.sign)NN)rrrrr signature_clsr r"rr classmethodrJWK JWASignaturerrr* __classcell__rrr-rr",sr")rtypingrjosepyr rrr"rrrrs