Server IP : 209.38.156.173 / Your IP : 216.73.216.122 [ Web Server : Apache/2.4.52 (Ubuntu) System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.1.2-1ubuntu2.22 Disable Function : NONE Domains : 2 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/ |
Upload File : |
o �)%a;4 � @ s� d dl mZ d dlmZmZmZ d dlmZmZm Z d dl mZmZ d dl mZmZmZ dejfdd�Zd d � Zdd� Zd d� Zdd� Zdd� ZG dd� de�ZG dd� de�ZG dd� dej�ZG dd� dej�ZdS )� )�utils)�InvalidSignature�UnsupportedAlgorithm�_Reasons)�_calculate_digest_and_algorithm�_check_not_prehashed�_warn_sign_verify_deprecated)�hashes� serialization)�AsymmetricSignatureContext�AsymmetricVerificationContext�ec�signature_algorithmc C s t | tj�stdtj��d S )Nz/Unsupported elliptic curve signature algorithm.)� isinstancer �ECDSAr r � UNSUPPORTED_PUBLIC_KEY_ALGORITHM)r � r �I/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/ec.py�_check_signature_algorithm s ��r c C s� | j �|�}| �|| jjk� | j �|�}|| j jkrtd��| j js/| j � |�dkr/td��| j � |�}| �|| jjk� | j�|��d�}|S )Nz;ECDSA keys with unnamed curves are unsupported at this timer �ascii) �_lib�EC_KEY_get0_group�openssl_assert�_ffi�NULL�EC_GROUP_get_curve_name� NID_undef�NotImplementedError�CRYPTOGRAPHY_IS_LIBRESSL�EC_GROUP_get_asn1_flag� OBJ_nid2sn�string�decode)�backend�ec_key�group�nid� curve_name�snr r r �_ec_key_curve_sn# s$ ����r) c C s | j �|| j j� dS )z� Set the named curve flag on the EC_KEY. This causes OpenSSL to serialize EC keys along with their curve OID which makes deserialization easier. N)r �EC_KEY_set_asn1_flag�OPENSSL_EC_NAMED_CURVE)r# �ec_cdatar r r �_mark_asn1_named_ec_curveA s �r- c C s0 zt j| � W S ty td�|�tj��w )Nz${} is not a supported elliptic curve)r �_CURVE_TYPES�KeyErrorr �formatr �UNSUPPORTED_ELLIPTIC_CURVE)r# r( r r r �_sn_to_elliptic_curveM s ��r2 c C sz | j �|j�}| �|dk� | j�d|�}| j�dd�}| j �d|t|�|||j�}| �|dk� | j�|�d |d � S )Nr zunsigned char[]zunsigned int[]� ) r � ECDSA_size�_ec_keyr r �new� ECDSA_sign�len�buffer)r# �private_key�data�max_size�sigbuf� siglen_ptr�resr r r �_ecdsa_sig_signW s �r@ c C s8 | j �d|t|�|t|�|j�}|dkr| �� t�d S )Nr r3 )r �ECDSA_verifyr8 r5 �_consume_errorsr )r# � public_key� signaturer; r? r r r �_ecdsa_sig_verifyd s ��rE c @ sB e Zd Zdejdejfdd�Zdeddfdd �Z defd d�Z dS )�_ECDSASignatureContextr: � algorithmc C s || _ || _t�||�| _d S �N)�_backend�_private_keyr �Hash�_digest)�selfr# r: rG r r r �__init__n s z_ECDSASignatureContext.__init__r; �returnNc C � | j �|� d S rH �rL �update�rM r; r r r rR x � z_ECDSASignatureContext.updatec C s | j �� }t| j| j|�S rH )rL �finalizer@ rI rJ �rM �digestr r r rU { s z_ECDSASignatureContext.finalize)�__name__� __module__�__qualname__r �EllipticCurvePrivateKeyr � HashAlgorithmrN �bytesrR rU r r r r rF m s � � rF c @ sB e Zd Zdejdedejfdd�Zdeddfd d �Z d dd�Z dS )�_ECDSAVerificationContextrC rD rG c C s$ || _ || _|| _t�||�| _d S rH )rI �_public_key� _signaturer rK rL )rM r# rC rD rG r r r rN � s z"_ECDSAVerificationContext.__init__r; rO Nc C rP rH rQ rS r r r rR � rT z _ECDSAVerificationContext.updatec C s"