File: //lib/python3/dist-packages/pymacaroons/__pycache__/macaroon.cpython-312.pyc
�
�%�Ya � � � d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl m
Z
d dlmZm
Z
mZ d dlmZmZ d Zd
Z G d� de� Zy)
� )�unicode_literalsN)�standard_b64encode)�HashSignaturesBinder)�BinarySerializer)�MacaroonInitException)�convert_to_bytes�convert_to_string�create_initial_signature)�FirstPartyCaveatDelegate�ThirdPartyCaveatDelegate� � c �0 � e Zd Zdddddefd�Zedd�� Zed� � Zej d� � Zed� � Z
ed� � Zed� � Zej d � � Zed
� � Z
e
j d� � Z
ed� � Zd
� Zdd�Zd� Zd� Zd� Zd� Zd� Zd� Zy)�MacaroonNc � � |t kD rt }|| _ |xs g | _ |xs d| _ |xs d| _ |xs d| _ t
� | _ t � | _ |r%t t |� | j � | _ y y )N� )
�MACAROON_V2�_version�caveats�location�
identifier� signaturer �first_party_caveat_delegater �third_party_caveat_delegater
r �identifier_bytes)�selfr r �keyr r �versions �6/usr/lib/python3/dist-packages/pymacaroons/macaroon.py�__init__zMacaroon.__init__ s � � �[� �!�G���
��}�"��� ��B��
�$�*����"��b���+C�+E��(�+C�+E��(��5� ��%�t�'<�'<��D�N� � c �Z � |xs
t � }|r|j |� S t d� �)Nz Must supply serialized macaroon.)r �deserializer )�cls�
serialized�
serializers r r# zMacaroon.deserialize+ s4 � ��5�#3�#5�
���)�)�*�5�5�'�2��
r! c �, � t | j � S �N)r � _location�r s r r zMacaroon.location5 s � � ����0�0r! c �$ � t |� | _ y r( )r r) �r �string_or_bytess r r zMacaroon.location9 s � �)�/�:��r! c � � | j S r( )r r* s r r zMacaroon.version= s � ��}�}�r! c �j � | j t k( rt | j � S | j S r( )r �MACAROON_V1r �_identifierr* s r r zMacaroon.identifierA s+ � ��<�<�;�&�$�T�%5�%5�6�6����r! c � � | j S r( )r1 r* s r r zMacaroon.identifier_bytesG s � ����r! c �$ � t |� | _ y r( )r r1 r, s r r zMacaroon.identifierK s � �+�O�<��r! c �, � t | j � S r( )r �
_signaturer* s r r zMacaroon.signatureO s � � ����1�1r! c �$ � t |� | _ y r( )r r5 r, s r r zMacaroon.signatureS s � �*�?�;��r! c � � | j S r( )r5 r* s r �signature_byteszMacaroon.signature_bytesW s � ����r! c �, � t j | � S r( )�copy�deepcopyr* s r r: z
Macaroon.copy[ s � ��}�}�T�"�"r! c �@ � |xs
t � }|j | � S r( )r � serialize)r r&