https://t.me/RX1948
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/pymacaroons/serializers/__pycache__/binary_serializer.cpython-310.pyc
o

�%�Y01�@s�ddlmZddlZddlmZddlZddlZddlZddlm	Z	ddl
mZmZm
Z
ddlmZddlmZedd	d
g�ZGdd�de�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�eZdZdZdZdZdZdZdZdd�Z	dd	�Z
d
d�Zdd
�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd!dd�Zdd�Zdd �ZdS)"�BinarySerializer����rcCst|�|���d��d�S)N�ascii�=)r�
serialize_raw�decode�rstrip)�self�macaroon�r�K/usr/lib/python3/dist-packages/pymacaroons/serializers/binary_serializer.py�	serializes
��zBinarySerializer.serializecCs*ddlm}|j|kr|�|�S|�|�S)Nr)�MACAROON_V1)�pymacaroons.macaroonr�version�
_serialize_v1�
_serialize_v2)rrrrrrr#s


zBinarySerializer.serialize_rawcCs�|�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)rr�combined�caveatrrrr)s
��
�zBinarySerializer._serialize_v1cCs�ddlm}t�}|�|�|jdur'|�||jt|j��|�||j|j	�|�||j
�|jD]2}|jdurC|�||jt|j��|�||j|j�|j
dur\|�||jt|j
��|�||j
�q1|�||j
�|�||jt�|j��t|�S)Nr��MACAROON_V2)rr4�	bytearray�appendr(�_append_packet�	_LOCATIONr�_IDENTIFIER�identifier_bytes�_EOSr*�caveat_id_bytes�verification_key_id�_VID�
_SIGNATUREr.r/r0�bytes)rrr4r�crrrr ;s6

�
�


�
��zBinarySerializer._serialize_v2cCs.t|�dkr
td��t|�}t|�}|�|�S)Nrzempty macaroon)�len�
ValueErrorrr�deserialize_raw)r�
serialized�decodedrrr�deserializeUs

zBinarySerializer.deserializecCsVddlm}ddlm}t�|dd��}||kr|�|�St|�r'|�|�S|d��)Nrr3�� MacaroonDeserializationExceptionrz7cannot determine data format of binary-encoded macaroon)	rr4�pymacaroons.exceptionsrI�six�byte2int�_deserialize_v2�
_is_ascii_hex�_deserialize_v1)rrEr4rI�firstrrrrD\s

�z BinarySerializer.deserialize_rawcCs4ddlm}m}ddlm}ddlm}||d�}d}|t|�kr�tt	�
d||||j��dd�}|||j||�}	|�|	�\}
}|
dkrM||_
nA|
d	krU||_n9|
d
krd|j�|||d��n*|
dkro||jd
_n|
dkrz||jd
_
n|
dkr�t�|�|_n	|dj|
|d���||}|t|�ks!|S)Nr)�Macaroonr��CaveatrH�rs4s�r!r"r#)�	caveat_idrr$���r%r&z7Key {key} not valid key for this format. Value: {value})�key�value)rrQr�pymacaroons.caveatrSrJrIrB�int�struct�unpack�PACKET_PREFIX_LENGTH�_depacketizer(r)r*r6r=r.�hexlify�	signature�format)rrFrQrrSrIr�index�
packet_length�packetrXrYrrrrOhsT
����

����%z BinarySerializer._deserialize_v1cCs�ddlm}m}ddlm}ddlm}|dd�}|�|�\}}d}t|�dkr?|dj	|j
kr?|dj�d�}|dd�}t|�dksM|dj	|j
krQ|d��||dj||d	�}	|�|�\}	}|	}t|�dkrlny||d�}
t|�dkr�|dj	|j
kr�|dj�d�|
_|dd�}t|�dks�|dj	|j
kr�|d��|dj|
_|dd�}t|�dkr�|
jdur�|d
��|j�|
�q[t|�dkr�|d��|dj	|jkr�|d��|dj|
_|j�|
�q\|�|�\}}|j	|jkr�|d��t�|j�|_|S)Nr)rQr4rRrHr�zutf-8zinvalid macaroon header)r)r(rTrTzno identifier in caveatz*location not allowed in first party caveatzextra fields found in caveatzinvalid field found in caveatz+unexpected field found instead of signature)rrQr4rZrSrJrI�_parse_section_v2rBrr8rrr9r(rVr*r6r>r=�_parse_packet_v2r?r.r`ra)rrErQr4rSrI�section�locr�rest�cavrerrrrM�sp�
�
����!�z BinarySerializer._deserialize_v2cCs�|jdt|�t|�}t|�dd�}|dkr#tdj|||d���|�d��d�}|dt|�d}t�	td	t|��||�}|S)
Nri��ztPacket too long for serialization. Max length is 0xFFFF (65535). Packet length: 0x{hex_length} ({length}) Key: {key})rX�
hex_length�lengthrr� �
z4s%ds)
r^rB�hexr	rb�zfill�encoderr\�pack)rrXr�packet_size�packet_size_hex�header�packet_contentrerrrr'�s&���zBinarySerializer._packetizecCs*|�d�d}|t|�dd�}||fS)NrorrrW)�splitrB)rrerXrYrrrr_�szBinarySerializer._depacketizeNcCs4t||�||jkrt|t|��|�|�dSdS�N)�_encode_uvarintr;rB�extend)rrr�packet_datarrrr7�s


�zBinarySerializer._append_packetcCstddlm}d}g}	t|�dkr|d��|�|�\}}|j|jkr&||fS|j|kr/|d��|�|�|j}|}q)z� Parses a sequence of packets in data.

        The sequence is terminated by a packet with a field type of EOS
        :param data bytes to be deserialized.
        :return: the rest of data and an array of packet V2
        rrHrWTz"section extends past end of bufferzfields out of order)rJrIrBrhrr;r6)rrrI�prev_field_type�packetsrkrerrrrg�s"�

�z"BinarySerializer._parse_section_v2cCs�ddlm}t|�\}}||d�}||jkr|t|d�fSt|�\}}||d�}|t|�kr4|d��||d�t||d|��fS)aQ Parses a V2 data packet at the start of the given data.

        The format of a packet is as follows:

        field_type(varint) payload_len(varint) data[payload_len bytes]

        apart from EOS which has no payload_en or data (it's a single zero
        byte).

        :param data:
        :return: rest of data, PacketV2
        rrHNz%field data extends past end of buffer)rJrI�_decode_uvarintr;r
rB)rrrI�ft�n�payload_lenrrrrhs

�z!BinarySerializer._parse_packet_v2rz)�__name__�
__module__�__qualname__r^r8r9r>r?r;rrrr rGrDrOrMr'r_r7rgrhrrrrr
s(0;
r
cCsH|dkrtd��	|d@}|dL}|dkr|�|�dS|�|dB�q	)z7 Encodes integer into variable-length format into data.rzonly support positive integerT���N)rCr6)rr��	this_byterrrr{-s
�r{rcCsbd}d}d}|D]$}t|�}|d7}|dkr |||>B|fS||d@|>O}|d7}qtd���z� Decode a variable -length integer.

        Reads a sequence of unsigned integer byte and decodes them into an
        integer in variable-length format and returns it and the length read.
        rrr�r�r�zcannot read uvarint from buffer)�ord�	Exception�rr��shift�i�brrrr�;s
r�cCsZd}d}d}|D] }|d7}|dkr|||>B|fS||d@|>O}|d7}qtd��r�)r�r�rrrr�Ms
cCsHtd�|krtd�krdStd�|krtd�kr"dSdSdS)N�0�9T�a�fF)r�)r�rrrrN_s��rN)�
__future__rr.�collectionsrrKr\�sys�base64r�pymacaroons.utilsrrr�'pymacaroons.serializers.base_serializerrrJr	r
r
r{�version_info�majorr�rNrrrr�<module>s&


https://t.me/RX1948 - 2025