Server : Apache System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64 User : dh_edsupp ( 6597262) PHP Version : 8.2.26 Disable Function : NONE Directory : /lib/python3/dist-packages/pymacaroons/serializers/__pycache__/ |
Upload File : |
o �%�Y01 � @ s� d dl mZ d dlZd dlmZ d dlZd dlZd dlZd dlm Z d dl mZmZm Z d dlmZ d dlmZ edd d g�ZG dd� de�Zd d� ZejjdkrVdd� Zndd� Zdd� ZdS )� )�unicode_literalsN)� namedtuple)�urlsafe_b64encode)�convert_to_bytes�convert_to_string� raw_b64decode)�BaseSerializer)�MacaroonSerializationException�PacketV2� field_type�datac @ s� e Zd ZdZdZdZdZdZdZdd� Z dd � Z d d� Zdd � Zdd� Z dd� Zdd� Zdd� Zdd� Zdd� Zd!dd�Zdd� Zdd � ZdS )"�BinarySerializer� � � � r c C s t | �|���d��d�S )N�ascii�=)r � serialize_raw�decode�rstrip)�self�macaroon� r �K/usr/lib/python3/dist-packages/pymacaroons/serializers/binary_serializer.py� serialize s ��zBinarySerializer.serializec C s* ddl m} |j|kr| �|�S | �|�S )Nr )�MACAROON_V1)�pymacaroons.macaroonr �version� _serialize_v1� _serialize_v2)r r r r r r r # s zBinarySerializer.serialize_rawc C s� | � d|j�}|| � d|j�7 }|jD ]#}|| � d|j�7 }|jr6|jr6|| � d|j�7 }|| � d|j�7 }q|| � dt�|j ��7 }|S )N� location� identifier� cid� vid� cl� signature) � _packetize�location� identifier�caveats� _caveat_id�_verification_key_id� _location�binascii� unhexlify�signature_bytes)r r �combined�caveatr r r r ) s �� �zBinarySerializer._serialize_v1c C s� ddl m} t� }|�|� |jd ur'| �|| jt|j�� | �|| j|j � | �|| j � |jD ]2}|jd urC| �|| jt|j�� | �|| j|j� |j d ur\| �|| jt|j �� | �|| j � q1| �|| j � | �|| jt�|j�� t|�S )Nr ��MACAROON_V2)r r4 � bytearray�appendr( �_append_packet� _LOCATIONr �_IDENTIFIER�identifier_bytes�_EOSr* �caveat_id_bytes�verification_key_id�_VID� _SIGNATUREr. r/ r0 �bytes)r r r4 r �cr r r r ; s6 � � � ��zBinarySerializer._serialize_v2c C s. t |�dkr td��t|�}t|�}| �|�S )Nr zempty macaroon)�len� ValueErrorr r �deserialize_raw)r � serialized�decodedr r r �deserializeU s zBinarySerializer.deserializec C sV ddl m} ddlm} t�|d d� �}||kr| �|�S t|�r'| �|�S |d��)Nr r3 �� MacaroonDeserializationExceptionr z7cannot determine data format of binary-encoded macaroon) r r4 �pymacaroons.exceptionsrI �six�byte2int�_deserialize_v2� _is_ascii_hex�_deserialize_v1)r rE r4 rI �firstr r r rD \ s �z BinarySerializer.deserialize_rawc C s4 ddl m}m} ddlm} ddlm} ||d�}d}|t|�k r�tt � d|||| j � �d d�}||| j || � } | �| �\} }| dkrM||_ nA| d krU||_n9| d krd|j�|||d�� n*| dkro||jd _n| dkrz||jd _ n| dkr�t�|�|_n |dj| |d���|| }|t|�k s!|S )Nr )�Macaroonr ��CaveatrH �r s 4s� r! r"