Server IP : 15.235.198.142 / Your IP : 216.73.216.190 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/ |
Upload File : |
� �3Tf�, � �0 � d dl mZ d dlZd dlmZmZmZ d dlmZm Z d dl mZ d dlm Z ej rd dlmZ dd�Zdd �Zdd �Zdd�Zdd�Z dd�Z dd�Z G d� d e j0 � Z G d� de j4 � Zy)� )�annotationsN)�InvalidSignature�UnsupportedAlgorithm�_Reasons)�_calculate_digest_and_algorithm�_evp_pkey_derive)� serialization)�ec)�Backendc �l � t | t j � st dt j � �y )Nz/Unsupported elliptic curve signature algorithm.)� isinstancer �ECDSAr r � UNSUPPORTED_PUBLIC_KEY_ALGORITHM)�signature_algorithms �I/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/ec.py�_check_signature_algorithmr s1 � � �)�2�8�8�4�"�=��5�5� � � 5� c �b � | j j |� }| j || j j k7 � | j j |� }|| j j k( rt d� �| j j s)| j j |� dk( rt d� �| j j |� }| j || j j k7 � | j j |� j d� }|S )Nz@ECDSA keys with explicit parameters are unsupported at this timer �ascii) �_lib�EC_KEY_get0_group�openssl_assert�_ffi�NULL�EC_GROUP_get_curve_name� NID_undef� ValueError�CRYPTOGRAPHY_IS_LIBRESSL�EC_GROUP_get_asn1_flag� OBJ_nid2sn�string�decode)�backend�ec_key�group�nid� curve_name�sns r �_ec_key_curve_snr) # s� � ��L�L�*�*�6�2�E����5�G�L�L�$5�$5�5�6� �,�,� .� .�u� 5�C� �g�l�l�$�$�$��N� � � �L�L�1�1��L�L�/�/��6�!�;��N� � � ���(�(��-�J����:����):�):�:�;� ��� � �Z� (� /� /�� 8�B� �Ir c �d � | j j || j j � y)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_cdatas r �_mark_asn1_named_ec_curver. A s% � � �L�L�%�%��'�,�,�5�5�r c �^ � | j j |� }| j || j j k7 � | j j |� }| j || j j k7 � | j j ||� rt d� �y )Nz;Cannot load an EC public key where the point is at infinity)r �EC_KEY_get0_public_keyr r r r �EC_POINT_is_at_infinityr )r# r- �pointr% s r �_check_key_infinityr3 M s� � ��L�L�/�/��9�E����5�G�L�L�$5�$5�5�6��L�L�*�*�8�4�E����5�G�L�L�$5�$5�5�6��|�|�+�+�E�5�9��I� � � :r c � � t j | � S # t $ r t |� d�t j � �w xY w)Nz" is not a supported elliptic curve)r �_CURVE_TYPES�KeyErrorr r �UNSUPPORTED_ELLIPTIC_CURVE)r# r( s r �_sn_to_elliptic_curver8 X sI � � ����r�"�$�$��� �"��d�4�5��/�/� � � �s � �'A �_EllipticCurvePrivateKeyc � � | j j |j � }| j |dkD � | j j d|� }| j j dd� }| j j d|t |� |||j � }| j |dk( � | j 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�ress r �_ecdsa_sig_signrH b s� � � �|�|�&�&�{�':�':�;�H����8�a�<�(� �\�\� � �/�� :�F����!�!�"2�A�6�J� �,�,� !� !� �4��T��F�J��0C�0C��C� ���3�!�8�$��<�<���v�&���A��7�7r �_EllipticCurvePublicKeyc � � | j j d|t |� |t |� |j � }|dk7 r| j � t �y )Nr r; )r �ECDSA_verifyr@ r= �_consume_errorsr )r# � public_key� signaturerC rG s r �_ecdsa_sig_verifyrO q sS � � �,�,� #� #� �4��T��I�s�9�~�z�7I�7I��C� �a�x����!��� r c � � e Zd Zd d�Zedd�� Zedd�� Z d d�Zdd�Zdd�Z dd�Z dd�Zy )r9 c � � || _ || _ || _ t ||� }t ||� | _ t ||� t ||� y �N��_backendr= � _evp_pkeyr) r8 �_curver. r3 ��selfr# �ec_key_cdata�evp_pkeyr( s r �__init__z!_EllipticCurvePrivateKey.__init__� �E � ��� �#���!��� �g�|� 4��+�G�R�8���!�'�<�8��G�\�2r c � � | j S rR �rV �rX s r �curvez_EllipticCurvePrivateKey.curve� � � ��{�{�r c �. � | j j S rR �r` �key_sizer_ s r rd z!_EllipticCurvePrivateKey.key_size� � � ��z�z�"�"�"r c �4 � | j j || j � st dt j � �|j j | j j k7 rt d� �t | j | j |� S )Nz1This backend does not support the ECDH algorithm.z2peer_public_key and self are not on the same curve) rT �+elliptic_curve_exchange_algorithm_supportedr` r r �UNSUPPORTED_EXCHANGE_ALGORITHM�namer r rU )rX � algorithm�peer_public_keys r �exchangez!_EllipticCurvePrivateKey.exchange� s� � � �M�M�E�E��4�:�:� � '�C��7�7�� � � � �%�%������8��D�� � �� � �t�~�~��O�Or c � � | j j j | j � }| j j || j j j k7 � | j j j |� }| j j |� }| j j j | j � }| j j || j j j k7 � | j j j ||� }| j j |dk( � | j j |� }t | j ||� S �Nr; ) rT r r r= r r r r �_ec_key_new_by_curve_nidr0 �EC_KEY_set_public_key�_ec_cdata_to_evp_pkeyrI )rX r% � curve_nid� public_ec_keyr2 rG rZ s r rM z#_EllipticCurvePrivateKey.public_key� s � �� � �"�"�4�4�T�\�\�B��� � �$�$�U�d�m�m�.@�.@�.E�.E�%E�F��M�M�&�&�>�>�u�E� �� � �>�>�y�I� �� � �"�"�9�9�$�,�,�G��� � �$�$�U�d�m�m�.@�.@�.E�.E�%E�F��m�m� � �6�6�}�e�L��� � �$�$�S�A�X�.��=�=�6�6�}�E��&�t�}�}�m�X�N�Nr c � � | j j j | j � }| j j |� }t j || j � j � �� S )N)� private_value�public_numbers) rT r �EC_KEY_get0_private_keyr= � _bn_to_intr �EllipticCurvePrivateNumbersrM rv )rX �bnru s r �private_numbersz(_EllipticCurvePrivateKey.private_numbers� s] � � �]�]� � � 7� 7���� E��� � �0�0��4� ��-�-�'��?�?�,�;�;�=� � r c �j � | j j |||| | j | j � S rR )rT �_private_key_bytesrU r= )rX �encoding�format�encryption_algorithms r � private_bytesz&_EllipticCurvePrivateKey.private_bytes� s5 � � �}�}�/�/��� ���N�N��L�L� � r c �x � t |� t ||j � \ }}t | j | |� S rR )r r rj rH rT )rX rC r �_s r �signz_EllipticCurvePrivateKey.sign� s<