File: //opt/alt/python37/lib/python3.7/site-packages/botocore/crt/__pycache__/auth.cpython-37.pyc
B
�P�e�b � @ s d dl Z d dlmZ d dlmZmZmZmZmZm Z d dl
mZmZm
Z
mZmZ d dlmZ d dlmZ G dd� de�ZG d d
� d
e�ZG dd� de�ZG d
d� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�Zeeeeeeed�ZdS )� N)�BytesIO)�SIGNED_HEADERS_BLACKLIST�"STREAMING_UNSIGNED_PAYLOAD_TRAILER�UNSIGNED_PAYLOAD�
BaseSigner�_get_body_as_dict�_host_from_url)�HTTPHeaders�awscrt�parse_qs�urlsplit�
urlunsplit)�NoCredentialsError)�percent_encode_sequencec @ s~ e Zd ZdZddddgZejjjZ dZ
dZdd� Zdd � Z
d
d� Zdd
� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� ZdS )�CrtSigV4AuthT�
Authorizationz
X-Amz-DatezX-Amz-Content-SHA256zX-Amz-Security-Tokenc C s || _ || _|| _d | _d S )N)�credentials�
_service_name�_region_name�_expiration_in_seconds)�selfr �service_name�region_name� r �B/opt/alt/python37/lib/python3.7/site-packages/botocore/crt/auth.py�__init__* s zCrtSigV4Auth.__init__c C s0 |j �di �}|�d�}t|t�o.|�d�dkS )N�checksum�request_algorithm�in�trailer)�context�get�
isinstance�dict)r �request�checksum_context� algorithmr r r �_is_streaming_checksum_payload0 s
z+CrtSigV4Auth._is_streaming_checksum_payloadc
C s | j d krt� �tj�� jtjjd�}| �|�}| �|� t j
jj| j j
| j j| j jd�}| �|�rjt}n| �|�r�|r~|}q�d }nt}| �|�r�t j
jj}n
t j
jj}t j
jt j
jj| j|| j| j|| j| j| j ||| j!d�}| �"|�}t j
�#||�} | �$� | �%||� d S )N)�tzinfo)�
access_key_id�secret_access_key�
session_token)r&