�
~h�e9g � �� � d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZm Z d dl
mZ d dl
Zd dl
mZ d dl
mZ d dl
mZ d dlZd� Z G d� d ej2 � Z G d
� dej2 � Z G d� d
ej2 � Z G d� dej2 � Z G d� dej2 � Zedk( r ej@ � yy# e$ r dZdZdZdZY ��w xY w# e$ r dZY ��w xY w)� N)�hashlib_helper�check_disallow_instantiation)�_compare_digest)�HMAC)�hmac_new)�compare_digestc �B � � t j � � � fd�� }|S )Nc � �� t j � 5 t j dt �� �| i |��cd d d � S # 1 sw Y y xY w)N�ignore)�category)�warnings�catch_warnings�filterwarnings�DeprecationWarning)�args�kwargs�funcs ��5/opt/alt/python312/lib64/python3.12/test/test_hmac.py�wrapperzignore_warning.<locals>.wrapper sE �� �
�
$�
$�
&� )��#�#�H�-?�
A���(��(� )� )� )�s �#A�A)� functools�wraps)r r s ` r �ignore_warningr s% �� ��_�_�T��)� �)�
�N� c � � e Zd Zd� Zd� Z ej dd�� d� � Z ej dd�� d� � Zd � Z ej d
d�� d� � Z
ej dd�� d
� � Z ej dd�� d� � Z ej dd�� d� � Z
ej d� d� � Zd� Zd� Zy)�TestVectorsTestCasec � � | j |j � j � |j � � | j |j � t j
|� � | j |j d|� �� | j |j |� | j |j |� y )Nzhmac-) �assertEqual� hexdigest�upper�digest�binascii� unhexlify�name�digest_size�
block_size)�self�hr �hashnamer$ r% s r �assert_hmac_internalsz)TestVectorsTestCase.assert_hmac_internals* s� � �
�������,�,�.�����?��������X�%7�%7��%?�@�������5��
�!3�4��������4�������z�2r c �R � t j |||�� }| j |||||� t j |||�� }| j |||||� t j ||�� }|j � } | j d� |j |� | j |j
� j � |j � � t j |||�� }| j |||||� t j |d |�� }|j |� | j |j
� j � |j � � t j ||�� }|j |� | j |j
� j � |j � � t j |||�� }| j |j
� j � |j � � | j t j |||�� t j |� � | j t j |||�� t j |� � t j j t j � }|j |||�� | j |||||� t ��+t |||�� }| j |||||� t ||�� }|j � } | j d� |j |� | j |j
� j � |j � � t t d|� �� }
t |||
�� }| j |||||� t j j t j � }|j# |||�� | j |||||� y y )N�� digestmods test update)r �openssl_)�hmacr r) �copy�updater r r �newr r! r"