ruạṛ
a ���fr � @ s� d dl Z d dlZd dlZd dlZd dlmZ zd dlmZ W n eyZ d dl mZ Y n0 d dl mZmZm Z eg d��Zeee d�ZG dd� de�Zdd d �Zdd� Zd d� Zdd� Zdd� Zdd� ZG dd� de�Zdd� ZdS )� N)�six)�parse_http_list)�SHA1�SHA256�SHA512)zrsa-sha1z rsa-sha256z rsa-sha512z hmac-sha1zhmac-sha256zhmac-sha512)Zsha1Zsha256Zsha512c @ s e Zd ZdS )�HttpSigExceptionN)�__name__� __module__�__qualname__� r r �B/usr/lib/python3.9/site-packages/oci/_vendor/httpsig_cffi/utils.pyr s r c C s� t |�}| sdg} g }| D ]�}|�� }|dkrX|r6|s>td��|�d||�� |f � q|dkr�|s�d|v rv|| }ntd| ��|�d||f � q||vr�td| ��|�d||| f � qd�|��d �}|S ) N�datez(request-target)z@method and path arguments required when using "(request-target)"z %s: %s %s�hostzmissing required header "%s"z%s: %s� �ascii)�CaseInsensitiveDict�lower� Exception�append�join�encode)Zrequired_headers�headersr �method�pathZ signable_list�hZsignabler r r �generate_message s* r c C s� t | tj�s| �d�} | �dd�}t|�dkr6td��i }t|�dkr�|d }|r�t|�r�t|�}|D ]N}d|v rf|�dd�\}}t|�rft|�s�qf|d dkr�|dd � }|||<