HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.52.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 15 06:39:08 EDT 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //var/opt/nydus/ops/oscrypto/__pycache__/_pkcs12.cpython-39.pyc
a

�,�h�@s�ddlmZmZmZmZddlZddlZddlZddlm	Z	m
Z
ddlmZddl
mZmZmZejdkrpeZndd	�Zd
gZdd
�ZdS)�)�unicode_literals�division�absolute_import�print_functionN�)�int_from_bytes�int_to_bytes)�pretty_message)�	type_name�byte_cls�	int_types)�cCs
t|g�S)N)�bytes)�num�r�A/opt/nydus/tmp/pip-target-wkfpz8uv/lib/python/oscrypto/_pkcs12.py�chr_clssr�
pkcs12_kdfcCsbt|t�sttdt|����t|t�s8ttdt|����t|t�sTttdt|����|dkrnttdt|����t|t�s�ttdt|����|dkr�ttdt|����|tgd��vr�ttd	t|����|tgd
��vr�ttdt|����|�	d��
d
�d}tt|�}ddddddd�|}|dv�r,d}	nd}	t
|�|	}
d}|dk�r�|	tt�tt|��|	��}t|�|k�r�||7}�qh|d|�}d}
|dk�r�|	tt�tt|��|	��}t|
�|k�r�|
|7}
�q�|
d|�}
||
}tt�t|�|��}d||}td|d�D�]:}||
|���}td|d�D]}||���}�q<||k�rd}t|�|	k�rx||7}�q^t|d|	��d}tdt|�|	�D]t}||	}|d|	}|||�}tt|�|�}t|�}||	k�r�|||	d�}|d|�|||d�}�q�|d|}t||�}|d|�|d|�|||d�}�q|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
            rzC
            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
            zutf-8zutf-16bes���� �0�@)rr��r�rN)�
isinstancer�	TypeErrorr	r
r�
ValueError�repr�set�decode�encode�getattr�hashlibr�int�math�ceil�float�len�range�digestrr�min)Zhash_algorithm�passwordZsaltZ
iterationsZ
key_lengthZid_Zutf16_password�algo�u�v�d�sZs_len�pZp_len�i�c�arZa2�_�bZnum2�start�endZi_num2Zi_num2_l�beginZto_copyrrrrs�
�
�
��
����
��	




 
,)�
__future__rrrr�sysr,r.Z_asn1rr�_errorsr	�_typesr
rr�version_info�chrr�__all__rrrrr�<module>s
�