관리-도구
편집 파일: dsa.cpython-39.opt-1.pyc
a �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 � ) �_libZDSA_size� _dsa_cdata�_ffi�newZDSA_sign�len�openssl_assert�buffer)�backend�private_key�dataZsig_buf_lenZsig_buf�buflen�res� r �N/usr/lib64/python3.9/site-packages/cryptography/hazmat/backends/openssl/dsa.py� _dsa_sig_sign s �r c C s8 | j �d|t|�|t|�|j�}|dkr4| �� t�d S )Nr r )r Z DSA_verifyr r Z_consume_errorsr )r � public_key� signaturer r r r r �_dsa_sig_verify( s �r c @ s0 e Zd Zdd� Zed�dd�Zdd�dd �ZdS ) �_DSAVerificationContextc C s. || _ || _|| _|| _t�| j| j �| _d S �N)�_backend�_public_key� _signature� _algorithmr �Hash� _hash_ctx)�selfr r r � algorithmr r r �__init__5 s z _DSAVerificationContext.__init__)r c C s | j �|� d S r �r&