§
    ¥”jQ
  ã                   óP   — d dl mZ d dlmZ d dlmZ d dlmZ  G d„ d¦  «        ZdS )é    )ÚOptional)Úx509©ÚValidationPath)ÚConsListc            	       ó˜   — e Zd Zddddœdee         dee         dedefd	„Z	e
d
„ ¦   «         Ze
defd„¦   «         Zdej        fd„Zdd„ZdS )ÚValProcStateNFr   )Úee_name_overrideÚis_side_validationÚ
init_indexÚcert_path_stackr
   r   r   c                ó’   — |j         €t          d¦  «        ‚|| _        || _        t	          |p|j        ¦  «        | _        || _        d S )NzEmpty path stack)ÚheadÚ
ValueErrorÚindexr
   ÚboolÚtailr   r   )Úselfr   r
   r   r   s        úk/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pyhanko_certvalidator/_state.pyÚ__init__zValProcState.__init__
   sX   € ð ÔÐ'ÝÐ/Ñ0Ô0Ð0ØˆŒ
Ø 0ˆÔÝ"&ØÐ6 /Ô"6ñ#
ô #
ˆÔð  /ˆÔÐÐó    c                 óX   — ddl m} | j        j        }t	          ||¦  «        sJ ‚|j        S )z¯
        Length of the path being validated.

        .. note::
            This is the path length in the sense of RFC 5280, i.e.
            the root doesn't count.
        r   r   )Úpyhanko_certvalidator.pathr   r   r   Ú
isinstanceÚpkix_len)r   r   Úpaths      r   Úpath_lenzValProcState.path_len   s?   € ð 	>Ð=Ð=Ð=Ð=Ð=àÔ#Ô(ˆÝ˜$ Ñ/Ô/Ð/Ð/Ð/ØŒ}Ðr   Úreturnc                 ó"   — | j         | j        k    S )N)r   r   )r   s    r   Ú
is_ee_certzValProcState.is_ee_cert*   s   € àŒz˜Tœ]Ò*Ð*r   Úee_certc                 óz   — ddl m} | j        D ],}|                     ¦   «         }|r|j        |j        k    r|c S Œ-dS )a  
        Helper method to avoid recursion in indirect CRL validation.
        There are some questionable-but-technically-valid CA setups where
        a CRL issuer is authorised to assert its own revocation status,
        which could cause a naive implementation to recurse.
        r   r   N)r   r   r   Úget_ee_cert_safeÚsha256)r   r!   r   r   Úcerts        r   Úcheck_path_verif_recursionz'ValProcState.check_path_verif_recursion.   s`   € ð 	>Ð=Ð=Ð=Ð=Ð=ð Ô(ð 	ð 	ˆDØ×(Ò(Ñ*Ô*ˆDØð ˜œ w¤~Ò5Ð5Ø���øØˆtr   c                 ó”   — | }| j         dk    r
| j        €d}n(| j        s||z  }d| j         › �}n| j        �| j        }nd}|rd|z   S |S )zy
        :return:
            A unicode string describing the position of a certificate
            in the chain
        r   Nztrust anchorzintermediate certificate zend-entity certificatezthe )r   r
   r    )r   Ú
def_intermÚ	never_defÚprefixÚresults        r   Údescribe_certzValProcState.describe_cert>   sy   € ð �ˆØŒ:˜Š?ˆ?˜tÔ4Ð<à#ˆFˆFØ”ð 	.Ø�jÑ ˆFØ=°´Ð=Ð=ˆFˆFØÔ"Ð.ØÔ*ˆFˆFà-ˆFØð 	Ø˜F‘?Ð"àˆMr   )FF)Ú__name__Ú
__module__Ú__qualname__r   r   r   Ústrr   Úintr   Úpropertyr   r    r   ÚCertificater&   r,   © r   r   r	   r	   	   sâ   € € € € € ð
 +/Ø#(Øð/ð /ð /ð " .Ô1ð/ð # 3œ-ð	/ð
 !ð/ð ð/ð /ð /ð /ð" ðð ñ „Xðð ð+˜Dð +ð +ð +ñ „Xð+ð°$Ô2Bð ð ð ð ð ð ð ð ð ð r   r	   N)	Útypingr   Ú
asn1cryptor   r   r   Úpyhanko_certvalidator.utilr   r	   r4   r   r   ú<module>r8      s‰   ðØ Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø /Ð /Ð /Ð /Ð /Ð /ðJð Jð Jð Jð Jñ Jô Jð Jð Jð Jr   