File: //lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/dsa.cpython-310.pyc
o
�)%a�) � @ s� d dl Z d dlmZ d dlmZ d dlmZmZmZ d dl m
Z
mZ d dlm
Z
mZmZmZ dd� Zd d
� ZG dd� de�ZG d
d� de
�ZG dd� dej�ZG dd� dej�ZG dd� dej�ZdS )� N)�utils)�InvalidSignature)�_calculate_digest_and_algorithm�_check_not_prehashed�_warn_sign_verify_deprecated)�hashes�
serialization)�AsymmetricSignatureContext�AsymmetricVerificationContext�dsar c C sx | j �|j�}| j�d|�}| j�d�}| j �d|t|�|||j�}| �|dk� | �|d � | j�|�d |d � S )Nzunsigned char[]zunsigned int *r � ) �_lib�DSA_size�
_dsa_cdata�_ffi�new�DSA_sign�len�openssl_assert�buffer)�backend�private_key�data�sig_buf_len�sig_buf�buflen�res� r �J/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/dsa.py�
_dsa_sig_sign s �r c C s8 | j �d|t|�|t|�|j�}|dkr| �� t�d S )Nr r )r
�
DSA_verifyr r �_consume_errorsr )r �
public_key� signaturer r r r r �_dsa_sig_verify( s ��r$ c @ s$ e Zd Zdd� Zdd� Zdd� ZdS )�_DSAVerificationContextc C s. || _ || _|| _|| _t�| j| j �| _d S �N)�_backend�_public_key�
_signature�
_algorithmr �Hash� _hash_ctx)�selfr r"