File: //proc/self/root/lib/python3/dist-packages/pymacaroons/__pycache__/utils.cpython-38.pyc
U
�%�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 s: | d krd S t | t�r | �d�S t | t�r.| S td��d S �N�utf-8z!Must be a string or bytes object.)�
isinstancer �encoder � TypeError�Zstring_or_bytes� r �3/usr/lib/python3/dist-packages/pymacaroons/utils.py�convert_to_bytes s
r
c C s: | d krd S t | t�r| S t | t�r.| �d�S td��d S r )r r r �decoder r
r r r �convert_to_string s
r c C sX |d krd}t | �}t|�}||kr4t|d |� �S ||k rPt|d|| �S | S d S )N� � )� bytearray�len�bytes)Zbyte_string�sizeZ
byte_arrayZlengthr 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, s r c C s t j| |td��� S )N)�msgZ digestmod)�hmac�newr Zdigest)r �datar r r r 0 s
�r c C s t | |�}t�|�S �N)r �binasciiZhexlify)r r �digr r r �hmac_hex8 s
r! c C s t | �}t||�S r )r r! )r Z
identifierZderived_keyr r r �create_initial_signature= s r"