§
    ¢”j  ã                   ó”   — 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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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/_pkcs12.pyÚchr_clsr      s   € Ý�c�U‰|Œ|Ðó    Ú
pkcs12_kdfc           
      ó
  — 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          g d
¢¦  «        vr*t          t          dt          |¦  «        ¦  «        ¦  «        ‚| 	                    d¦  «         
                    d¦  «        dz   }t          t          | ¦  «        }dddddddœ|          }| dv rd}	nd}	t          |¦  «        |	z  }
d}|dk    rv|	t          t          j        t#          t%          |¦  «        ¦  «        |	z  ¦  «        ¦  «        z  }t%          |¦  «        |k     r||z  }t%          |¦  «        |k     °|d|…         }d}|dk    rv|	t          t          j        t#          t%          |¦  «        ¦  «        |	z  ¦  «        ¦  «        z  }t%          |¦  «        |k     r||z  }t%          |¦  «        |k     °|d|…         }||z   }t          t          j        t#          |¦  «        |z  ¦  «        ¦  «        }d||z  z  }t'          d|dz   ¦  «        D �]q} ||
|z   ¦  «                             ¦   «         }t'          d|dz   ¦  «        D ]} ||¦  «                             ¦   «         }Œ ||k     rÚd}t%          |¦  «        |	k     r||z  }t%          |¦  «        |	k     °t+          |d|	…         ¦  «        dz   }t'          dt%          |¦  «        |	z  ¦  «        D ]r}||	z  }|dz   |	z  }|||…         }t-          t+          |¦  «        |z   ¦  «        }t%          |¦  «        }||	k    r|||	z
  d…         }|d|…         |z   ||d…         z   }Œs|dz
  |z  }t/          ||¦  «        }|d|…         |d|…         z   |||z   d…         z   }�Œs|d|…         S )aœ  
    KDF from RFC7292 appendix b.2 - https://tools.ietf.org/html/rfc7292#page-19

    :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

    :param id_:
        The ID of the usage - 1 for key, 2 for iv, 3 for mac

    :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
            )r   é   r   z<
            id_ must be one of 1, 2, 3, not %s
            zutf-8zutf-16bes     é   é   é   é    é0   é@   )r   r   é€   r   r   ó    r   N)Ú
isinstancer   Ú	TypeErrorr
   r   r   Ú
ValueErrorÚreprÚsetÚdecodeÚencodeÚgetattrÚhashlibr   ÚintÚmathÚceilÚfloatÚlenÚrangeÚdigestr   r	   Úmin)Úhash_algorithmÚpasswordÚsaltÚ
iterationsÚ
key_lengthÚid_Úutf16_passwordÚalgoÚuÚvÚdÚsÚs_lenÚpÚp_lenÚiÚcÚar   Úa2Ú_ÚbÚnum2ÚstartÚendÚi_num2Úi_num2_lÚbeginÚto_copys                                r   r   r      s˜  € õ6 �h¥Ñ)Ô)ð Ý�ðõ �hÑÔñ	
ô 
ñ ô ð 	õ �d�HÑ%Ô%ð Ý�ðõ �d‰OŒOñ	
ô 
ñ ô ð 	õ �j¥)Ñ,Ô,ð Ý�ðõ �jÑ!Ô!ñ	
ô 
ñ ô ð 	ð �A‚~€~Ý�ðõ �ÑÔñ	
ô 
ñ ô ð 	õ �j¥)Ñ,Ô,ð Ý�ðõ �jÑ!Ô!ñ	
ô 
ñ ô ð 	ð �A‚~€~Ý�ðõ �ÑÔñ	
ô 
ñ ô ð 	ð �SÐ!XÐ!XÐ!XÑYÔYÐYÐYÝ�ðõ �Ñ Ô ñ
ô 
ñ ô ð 	ð •#�i�i�i‘.”.Ð Ð Ý�ðõ �‰IŒIñ	
ô 
ñ ô ð 	ð —_’_ WÑ-Ô-×4Ò4°ZÑ@Ô@À;ÑN€Nå•7˜NÑ+Ô+€Dð ØØØØØð	ð 	ð ô	€Að Ð-Ð-Ð-Øˆˆàˆõ 	�‰Œ�qÑ€Að 	€AØˆs‚{€{Ø•C�œ	¥%­¨D©	¬	Ñ"2Ô"2°QÑ"6Ñ7Ô7Ñ8Ô8Ñ8ˆÝ�!‰fŒf�uŠnˆnØ�‰IˆAõ �!‰fŒf�uŠnˆnàˆa�ˆgŒJˆð 	€AØ˜ÒÐØ•C�œ	¥%­¨NÑ(;Ô(;Ñ"<Ô"<¸qÑ"@ÑAÔAÑBÔBÑBˆÝ�!‰fŒf�uŠnˆnØ�ÑˆAõ �!‰fŒf�uŠnˆnàˆa�ˆgŒJˆð 	
ˆA‰€Aõ 	�DŒI•e˜JÑ'Ô'¨!Ñ+Ñ,Ô,Ñ-Ô-€Aà�1�q‘5Ñ€Aå�Q˜˜A™‰Œð  =ñ  =ˆàˆT�!�a‘%‰[Œ[×ÒÑ!Ô!ˆÝ�q˜* q™.Ñ)Ô)ð 	#ð 	#ˆAØ��b‘”—’Ñ"Ô"ˆBˆBà�Š7ˆ7àˆAÝ�a‘&”&˜1’*�*Ø�R‘�õ �a‘&”&˜1’*�*õ ˜q  1 œvÑ&Ô&¨Ñ*ˆAõ ˜a¥ Q¡¤¨1¡Ñ-Ô-ð 2ð 2�Ø˜q™�Ø˜a‘x 1‘n�Ø˜5 ˜9œ�å%¥n°VÑ&<Ô&<¸qÑ&@ÑAÔA�õ ˜v™;œ;�Ø˜a’<�<Ø# H¨q¡L M MÔ2�Fà�a˜�g”J Ñ'¨!¨C¨D¨D¬'Ñ1��ð �q‘˜A‘ˆÝ�j !Ñ$Ô$ˆØˆa�ˆgŒJ˜˜A˜g˜IœÑ&¨¨5°7©?Ð+;Ð+;Ô)<Ñ<ˆ‰àˆQˆzˆ\Œ?Ðr   )Ú
__future__r   r   r   r   Úsysr.   r0   Ú_asn1r   r	   Ú_errorsr
   Ú_typesr   r   r   Úversion_infoÚchrr   Ú__all__r   © r   r   ú<module>r\      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ðð ð ð
 ð€ð
lð lð lð lð lr   