§
    ¢”jU  ã                   óª   — d dl mZmZmZmZ d dlZd dlZd dlZd dlZddl	m
Z
mZ ddlmZ ddlmZmZmZ ej        dk     reZnd„ Zd	gZd
„ Zde_        dS )é    )Úunicode_literalsÚdivisionÚabsolute_importÚprint_functionNé   )Úint_from_bytesÚint_to_bytes)Úpretty_message)Ú	type_nameÚbyte_clsÚ	int_types)é   c                 ó"   — t          | g¦  «        S )N)Úbytes)Únums    ú^/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/oscrypto/_pkcs5.pyÚchr_clsr      s   € Ý�c�U‰|Œ|Ðó    Úpbkdf2c                 óÎ  — t          |t          ¦  «        s*t          t          dt	          |¦  «        ¦  «        ¦  «        ‚t          |t          ¦  «        s*t          t          dt	          |¦  «        ¦  «        ¦  «        ‚t          |t
          ¦  «        s*t          t          dt	          |¦  «        ¦  «        ¦  «        ‚|dk     r*t          t          dt          |¦  «        ¦  «        ¦  «        ‚t          |t
          ¦  «        s*t          t          dt	          |¦  «        ¦  «        ¦  «        ‚|dk     r*t          t          dt          |¦  «        ¦  «        ¦  «        ‚| t          g d¢¦  «        vr*t          t          d	t          | ¦  «        ¦  «        ¦  «        ‚t          t          | ¦  «        }d
ddddddœ|          }t          j        |d|¦  «        }d}d}	t          |	¦  «        |k     rò|                     ¦   «         }
|
                     |t!          j        d|¦  «        z   ¦  «         |
                     ¦   «         }t'          |¦  «        }t)          |dz
  ¦  «        D ]Q}|                     ¦   «         }
|
                     |¦  «         |
                     ¦   «         }|t'          |¦  «        z  }ŒR|	t+          ||¬¦  «        z  }	|dz  }t          |	¦  «        |k     °ò|	d|…         S )a4  
    Implements PBKDF2 from PKCS#5 v2.2 in pure Python

    :param hash_algorithm:
        The string name of the hash algorithm to use: "md5", "sha1", "sha224",
        "sha256", "sha384", "sha512"

    :param password:
        A byte string of the password to use an input to the KDF

    :param salt:
        A cryptographic random byte string

    :param iterations:
        The numbers of iterations to use when deriving the key

    :param key_length:
        The length of the desired key in bytes

    :return:
        The derived key as a byte string
    z@
            password must be a byte string, not %s
            z<
            salt must be a byte string, not %s
            z?
            iterations must be an integer, not %s
            r   zC
            iterations must be greater than 0 - is %s
            z?
            key_length must be an integer, not %s
            zC
            key_length must be greater than 0 - is %s
            )Úmd5Úsha1Úsha224Úsha256Úsha384Úsha512z�
            hash_algorithm must be one of "md5", "sha1", "sha224", "sha256",
            "sha384", "sha512", not %s
            é   é   é   é    é0   é@   Nr   s   >I)Úwidthr   )Ú
isinstancer   Ú	TypeErrorr
   r   r   Ú
ValueErrorÚreprÚsetÚgetattrÚhashlibÚhmacÚnewÚlenÚcopyÚupdateÚstructÚpackÚdigestr   Úranger	   )Úhash_algorithmÚpasswordÚsaltÚ
iterationsÚ
key_lengthÚalgoÚhash_lengthÚoriginal_hmacÚblockÚoutputÚprfÚlastÚuÚ_s                 r   r   r      s.  € õ0 �h¥Ñ)Ô)ð Ý�ðõ �hÑÔñ	
ô 
ñ ô ð 	õ �d�HÑ%Ô%ð Ý�ðõ �d‰OŒOñ	
ô 
ñ ô ð 	õ �j¥)Ñ,Ô,ð Ý�ðõ �jÑ!Ô!ñ	
ô 
ñ ô ð 	ð �A‚~€~Ý�ðõ �ÑÔñ	
ô 
ñ ô ð 	õ �j¥)Ñ,Ô,ð Ý�ðõ �jÑ!Ô!ñ	
ô 
ñ ô ð 	ð �A‚~€~Ý�ðõ �ÑÔñ	
ô 
ñ ô ð 	ð �SÐ!XÐ!XÐ!XÑYÔYÐYÐYÝ�ðõ �Ñ Ô ñ
ô 
ñ ô ð 	õ •7˜NÑ+Ô+€Dð ØØØØØðð ð ô€Kõ ”H˜X t¨TÑ2Ô2€Mà€EØ€Få
ˆf‰+Œ+˜
Ò
"Ð
"Ø× Ò Ñ"Ô"ˆØ�
Š
�4�&œ+ e¨UÑ3Ô3Ñ3Ñ4Ô4Ð4Ø�zŠz‰|Œ|ˆå˜4Ñ Ô ˆå�z !‘|Ñ$Ô$ð 	&ð 	&ˆAØ×$Ò$Ñ&Ô&ˆCØ�JŠJ�tÑÔÐØ—:’:‘<”<ˆDØ• Ñ%Ô%Ñ%ˆAˆAà•,˜q¨Ð4Ñ4Ô4Ñ4ˆØ�‰
ˆõ ˆf‰+Œ+˜
Ò
"Ð
"ð  �!�J�,ÔÐr   T)Ú
__future__r   r   r   r   Úsysr*   r+   r0   Ú_asn1r   r	   Ú_errorsr
   Ú_typesr   r   r   Úversion_infoÚchrr   Ú__all__r   Úpure_python© r   r   ú<module>rL      sè   ðà RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ Rà 
€
€
€
Ø €€€Ø €€€Ø €€€à /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø #Ð #Ð #Ð #Ð #Ð #Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2àÔ�dÒÐØ€G€Gðð ð ð
 ð€ð
q ð q ð q ðh €Ô Ð Ð r   