File: //lib/python3/dist-packages/botocore/__pycache__/auth.cpython-310.pyc
o
,&�a� � @ s� d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ d dl Z d dl
Z
d dlmZ d dl
Z
d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZmZ d dlmZ e
� e!�Z"d Z#d
Z$dZ%dZ&g d
�Z'dZ(dd� Z)dd� Z*G dd� de+�Z,G dd� de,�Z-G dd� de,�Z.G dd� de,�Z/G dd� de/�Z0G dd� de/�Z1G dd � d e1�Z2G d!d"� d"e/�Z3G d#d$� d$e,�Z4G d%d&� d&e4�Z5G d'd(� d(e4�Z6e-e.e.e4e5e6e3d)�Z7er�d d*l8m9Z9 e7�:e9� dS e7�:e/e1e0e2d+�� dS ),� N��
formatdate)�sha1�sha256)�
itemgetter)�encodebytes�ensure_unicode�HTTPHeaders�json�parse_qs�quote�six�unquote�urlsplit�
urlunsplit�HAS_CRT)�NoCredentialsError)�normalize_url_path�percent_encode_sequence)�
MD5_AVAILABLE�@e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855i z%Y-%m-%dT%H:%M:%SZz%Y%m%dT%H%M%SZ)�expectz
user-agentzx-amzn-trace-idzUNSIGNED-PAYLOADc C sF t | �}|j}ddd�}|jd ur!|j|�|j�kr!d||jf }|S )N�P i� )�http�httpsz%s:%d)r �hostname�port�get�scheme)�url� url_parts�host�
default_ports� r# �//usr/lib/python3/dist-packages/botocore/auth.py�_host_from_url7 s �
r% c C s@ | j }t|tj�rt�|�d��}|S t|tj�rt�|�}|S �N�utf-8)�data�
isinstancer
�binary_typer
�loads�decode�string_types)�requestr( r# r# r$ �_get_body_as_dictH s �
r/ c @ � e Zd ZdZdd� ZdS )�
BaseSignerFc C s t d��)N�add_auth)�NotImplementedError��selfr. r# r# r$ r2 X s zBaseSigner.add_authN)�__name__�
__module__�__qualname__�REQUIRES_REGIONr2 r# r# r# r$ r1 U s r1 c @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) � SigV2Authz+
Sign a request with Signature V2.
c C �
|| _ d S �N��credentials�r5 r>