HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/rsa/__pycache__/pkcs1_v2.cpython-36.pyc
3

%
�a�
�@s�dZddlmZmZmZdeeeed�dd�ZdgZ	e
dkr�ed�dd	lZx>e
d
�D]2Zej�\ZZerlPeddkrVerVede�qVWed
�d	S)z�Functions for PKCS#1 version 2 encryption and signing

This module implements certain functionality from PKCS#1 version 2. Main
documentation is RFC 2437: https://tools.ietf.org/html/rfc2437
�)�common�pkcs1�	transform�SHA-1)�seed�length�hasher�returncs�ytj��j}WnDtk
rV}z(tdjdjttjj���d��|�WYdd}~XnX|d
|krvt	dj|�d���d	j��fd
d�t
tj||�d�D��}|d|�S)a�
    MGF1 is a Mask Generation Function based on a hash function.

    A mask generation function takes an octet string of variable length and a
    desired output length as input, and outputs an octet string of the desired
    length. The plaintext-awareness of RSAES-OAEP relies on the random nature of
    the output of the mask generation function, which in turn relies on the
    random nature of the underlying hash.

    :param bytes seed: seed from which mask is generated, an octet string
    :param int length: intended length in octets of the mask, at most 2^32(hLen)
    :param str hasher: hash function (hLen denotes the length in octets of the hash
        function output)

    :return: mask, an octet string of length `length`
    :rtype: bytes

    :raise OverflowError: when `length` is too large for the specified `hasher`
    :raise ValueError: when specified `hasher` is invalid
    z=Invalid `hasher` specified. Please select one of: {hash_list}z, )Z	hash_listN�� zmDesired length should be at most 2**32 times the hasher's output length ({hash_length} for {hasher} function))�hash_lengthr�c3s*|]"}tj�tj|dd��d�VqdS)�)Z	fill_size)Zmethod_nameN)rZcompute_hashrZ	int2bytes)�.0Zcounter)rr��/usr/lib/python3.6/pkcs1_v2.py�	<genexpr>Iszmgf1.<locals>.<genexpr>�l)
rZHASH_METHODSZdigest_size�KeyError�
ValueError�format�join�sorted�keys�
OverflowError�rangerZceil_div)rrrrZex�outputr)rrr�mgf1s 
r�__main__z'Running doctests 1000x or until failureNi��dz%i timesz
Doctests done)r)�__doc__Zrsarrr�bytes�int�strr�__all__�__name__�printZdoctestr�countZtestmodZfailuresZtestsrrrr�<module>s9