PK APOCALYPSE V1

APOCALYPSE V1

Current Path : /opt/hc_python/lib/python3.12/site-packages/dns/dnssecalgs/__pycache__/
Upload File :
Current File : //opt/hc_python/lib/python3.12/site-packages/dns/dnssecalgs/__pycache__/dsa.cpython-312.pyc

�

���g�
���ddlZddlmZddlmZddlmZmZddlm	Z	m
Z
ddlmZddl
mZGd�d	e
�ZGd
�de	�ZGd�d
e�ZGd�de�Zy)�N)�default_backend)�hashes)�dsa�utils)�CryptographyPrivateKey�CryptographyPublicKey)�	Algorithm)�DNSKEYc��eZdZUejed<ejZejZ	e
j�Zde
de
ddfd�Zde
fd�Zededdfd��Zy)	�	PublicDSA�key�	signature�data�returnNc���|dd}|dd}tjtj|d�tj|d��}|jj|||j�y)N���big)r�encode_dss_signature�int�
from_bytesr
�verify�chosen_hash)�selfrr�sig_r�sig_s�sigs      �A/opt/hc_python/lib/python3.12/site-packages/dns/dnssecalgs/dsa.pyrzPublicDSA.verifys_���!�B����"�#����(�(��N�N�5�%�(�#�.�.���*F�
��	
������T�4�#3�#3�4�c��|jj�}|jjdzdz
dz}|dkDrtd��d|dzz}t	j
d|�}||jjjdd�z
}||jjj|d�z
}||jjj|d�z
}||jj|d�z
}|S)z,Encode a public key per RFC 2536, section 2.��@zunsupported DSA key size�!B�r)r
�public_numbers�key_size�
ValueError�struct�pack�parameter_numbers�q�to_bytes�p�g�y)r�pn�dsa_t�octets�ress     r�encode_key_byteszPublicDSA.encode_key_bytess���
�X�X�
$�
$�
&�����"�"�a�'�"�,��2���1�9��7�8�8��e�a�i����k�k�$��&���r�#�#�%�%�.�.�r�5�9�9���r�#�#�%�%�.�.�v�u�=�=���r�#�#�%�%�.�.�v�u�=�=���r�t�t�}�}�V�U�+�+���
rc
��|j|�|j}tjd|dd�\}|dd}d|dzz}|dd}|dd}|d|}||d}|d|}||d}|d|}|t	j
tj|d�t	jtj|d�tj|d�tj|d���jt����S)	Nr#rrr"r!r$r�r
)�!_ensure_algorithm_key_combinationr
r(�unpackr�DSAPublicNumbersrr�DSAParameterNumbers�
public_keyr)	�clsr
�keyptr�tr2�dsa_q�dsa_p�dsa_g�dsa_ys	         r�from_dnskeyzPublicDSA.from_dnskey(s	���-�-�c�2������}�}�T�6�!�A�;�/���������a�!�e����q����������q�� ��������q�� ��������q�� ����$�$����u�e�,��'�'��N�N�5�%�0��N�N�5�%�0��N�N�5�%�0����j��*�+�	
�		
r)�__name__�
__module__�__qualname__r�DSAPublicKey�__annotations__�key_clsr	�DSA�	algorithmr�SHA1r�bytesrr4�classmethodr
rC�rrrrsw��	�	�	�����G��
�
�I��&�+�+�-�K�5��5�U�5�t�5��%���
�f�
��
��
rrc	��eZdZUejed<ejZeZ		d
de	de
de
de	fd�Zede
ddfd��Zy	)�
PrivateDSAr
rr�
deterministicrc��|jj�}|jdkDrtd��|jj	||j
j�}tj|�\}}|jdzdz
dz}d}	tjd|�tj||	d��ztj||	d��z}
|r |j�j|
|�|
S)	z1Sign using a private key per RFC 2536, section 3.izDSA key size overflowr!r"r$r#r)�length�	byteorder)r
r;r&r'�sign�
public_clsrr�decode_dss_signaturer(r)rr,r)rrrrR�public_dsa_key�
der_signature�dsa_r�dsa_sr1r2rs           rrVzPrivateDSA.signGs������,�,�.���"�"�T�)��4�5�5����
�
�d�D�O�O�,G�,G�H�
��1�1�-�@���u��(�(�A�-��2�q�8�����K�K��e�$��l�l�5��5�l�A�
B��l�l�5��5�l�A�
B�	�
��O�O��$�$�Y��5��rr&c�<�|tj|����S)N)r&r6)r�generate_private_key)r<r&s  r�generatezPrivateDSA.generate^s����(�(�(�;�
�	
rN)FT)rDrErFr�
DSAPrivateKeyrHrIrrWrM�boolrVrNrr_rOrrrQrQBss��	�	�	�����G��J�
�"�	������	�

��.�
��
��
��
rrQc�$�eZdZejZy)�PublicDSANSEC3SHA1N)rDrErFr	�DSANSEC3SHA1rKrOrrrcrces
���&�&�Irrcc��eZdZeZy)�PrivateDSANSEC3SHA1N)rDrErFrcrWrOrrrfrfis��#�Jrrf)r(�cryptography.hazmat.backendsr�cryptography.hazmat.primitivesr�)cryptography.hazmat.primitives.asymmetricrr�dns.dnssecalgs.cryptographyrr�dns.dnssectypesr	�dns.rdtypes.ANY.DNSKEYr
rrQrcrfrOrr�<module>rmsN��
�8�1�@�U�%�)�3
�%�3
�l 
�'� 
�F'��'�$�*�$r

if you don't want to be vaporized in a nuclear explosion, i simply have to become nuclear myself… i am atomic