File: //usr/lib/python3/dist-packages/pymacaroons/__pycache__/utils.cpython-310.pyc
o
�%�Y� � @ s� d dl Z d dlmZ d dlZd dlZd dlmZmZ dd� Zdd� Z d"dd �Z
d
d� Zdd
� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd d!� ZdS )#� N)�sha256)� text_type�binary_typec C s6 | d u rd S t | t�r| �d�S t | t�r| S td���N�utf-8z!Must be a string or bytes object.)�
isinstancer �encoder � TypeError��string_or_bytes� r �3/usr/lib/python3/dist-packages/pymacaroons/utils.py�convert_to_bytes s
r c C s6 | d u rd S t | t�r
| S t | t�r| �d�S td��r )r r r �decoder r
r r r
�convert_to_string s
r c C sT |d u rd}t | �}t|�}||krt|d |� �S ||k r(t|d|| �S | S )N� � )� bytearray�len�bytes)�byte_string�size�
byte_array�lengthr r r
�truncate_or_pad s r c C s
t d| �S )Ns macaroons-key-generator)�hmac_digest)�keyr r r
�generate_derived_key, �
r c C s t j| |td��� S )N)�msg� digestmod)�hmac�newr �digest)r �datar r r
r 0 s ��r c C s t | |�}t�|�S �N)r �binascii�hexlify)r r$ �digr r r
�hmac_hex8 s
r) c C s t | �}t||�S r% )r r) )r �
identifier�derived_keyr r r
�create_initial_signature= s
r, c C s"