/usr/lib/python3/dist-packages/pymacaroons/__pycache__
Edit: /usr/lib/python3/dist-packages/pymacaroons/__pycache__/utils.cpython-310.pyc (3715B)
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_typebinary_typec C s6 | d u rd S t | tr| dS t | tr| S tdNutf-8z!Must be a string or bytes object.)
isinstancer encoder TypeErrorstring_or_bytes r 3/usr/lib/python3/dist-packages/pymacaroons/utils.pyconvert_to_bytes s
r c C s6 | d u rd S t | tr
| S t | tr| dS tdr )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 ) bytearraylenbytes)byte_stringsize
byte_arraylengthr 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)hmacnewr digest)r datar r r
r 0 s r c C s t | |}t|S N)r binasciihexlify)r r$ digr r r
hmac_hex8 s
r) c C s t | }t||S r% )r r) )r
identifierderived_keyr r r
create_initial_signature= s
r, c C s" t | |}t | |}t| || S r% )r r) )r data1data2hash1hash2r r r
hmac_concatB s
r1 c C s
t | |S r% )r) ) signature predicater r r
sign_first_party_caveatH r r4 c C s t | ||S r% )r1 )r2 verification_id caveat_idr r r
sign_third_party_caveatL s r7 c C sH t | t |kr
dS d}t| |D ]\}}|t|t|A O }q|dkS )aE
Returns True if the two strings are equal, False otherwise.
The time taken is independent of the number of characters that match.
For the sake of simplicity, this function executes in constant time only
when the two strings have the same length. It short-circuits when they
have different lengths.
Fr )r zipord)val1val2resultxyr r r
equalsP s
r? c C s | dt | d S )zAdd padding to base64 encoded bytes.
Padding can be removed when sending the messages.
@param b bytes to be padded.
@return a padded bytes.
= )r br r r
add_base64_paddingb s rD c C s
t | S r% )raw_urlsafe_b64decodebase64 b64decoderD sr r r
raw_b64decodem s rJ c C s t t| dS )ztBase64 decode with added padding and conversion to bytes.
@param s string decode
@return bytes decoded
r )rF urlsafe_b64decoderD r rH r r r
rE t s rE c C s t | dS )z^Base64 encode with padding removed.
@param s string decode
@return bytes decoded
r@ )rF urlsafe_b64encoderstriprB r r r
raw_urlsafe_b64encode} s rN r% )rF hashlibr r! r&