a bc @sddlZddlZddlmZmZddlmZmZGdddedZeeZ GdddeZ Gd d d eZ Gd d d eZ Gd ddeZ GdddeZGdddeZGdddZdS)N)ABCMetaabstractmethod) SupportsBytesTypec@s<eZdZeeeedddZeeeedddZdS)_EncoderdatareturncCsdS)z#Transform raw data to encoded data.Nrr r 4/tmp/pip-target-98j97qn4/lib/python/nacl/encoding.pyencodesz_Encoder.encodecCsdS)zTransform encoded data back to raw data. Decoding after encoding should be a no-op, i.e. `decode(encode(x)) == x`. Nr r r r r decodesz_Encoder.decodeN)__name__ __module__ __qualname__ staticmethodrbytesr rr r r r rs r) metaclassc@s4eZdZeeedddZeeedddZdS) RawEncoderrcCs|SNr r r r r r ,szRawEncoder.encodecCs|Srr r r r r r0szRawEncoder.decodeNrrrrrr rr r r r r+src@s4eZdZeeedddZeeedddZdS) HexEncoderrcCs t|Sr)binasciihexlifyr r r r r 6szHexEncoder.encodecCs t|Sr)r unhexlifyr r r r r:szHexEncoder.decodeNrr r r r r5src@s4eZdZeeedddZeeedddZdS) Base16EncoderrcCs t|Sr)base64 b16encoder r r r r @szBase16Encoder.encodecCs t|Sr)r b16decoder r r r rDszBase16Encoder.decodeNrr r r r r?src@s4eZdZeeedddZeeedddZdS) Base32EncoderrcCs t|Sr)r b32encoder r r r r JszBase32Encoder.encodecCs t|Sr)r b32decoder r r r rNszBase32Encoder.decodeNrr r r r r Isr c@s4eZdZeeedddZeeedddZdS) Base64EncoderrcCs t|Sr)r b64encoder r r r r TszBase64Encoder.encodecCs t|Sr)r b64decoder r r r rXszBase64Encoder.decodeNrr r r r r#Ssr#c@s4eZdZeeedddZeeedddZdS)URLSafeBase64EncoderrcCs t|Sr)rurlsafe_b64encoder r r r r ^szURLSafeBase64Encoder.encodecCs t|Sr)rurlsafe_b64decoder r r r rbszURLSafeBase64Encoder.decodeNrr r r r r&]sr&c@s"eZdZefeeedddZdS) Encodable)selfencoderr cCs|t|Sr)r r)r*r+r r r r hszEncodable.encodeN)rrrrrEncoderrr r r r r r)gsr))rrabcrrtypingrrrr,rrrr r#r&r)r r r r s