
    9iF                     2    S SK JrJrJrJrJr  S rS rS rg)    )DerSequence
DerIntegerDerBitStringDerObjectIdDerNullc                    [        5       R                  U SS9n[        5       R                  US   SS9n[        5       R                  US   5      n[        5       R                  US   5      R                  n[        U5      S:X  a  SnO [        5       R                  US   5        SnUR                  XE4$ !   US   n N= f)zParse a SubjectPublicKeyInfo structure.

It returns a triple with:
    * OID (string)
    * encoded public key (bytes)
    * Algorithm parameters (bytes or None)
   nr_elementsr   )   r	   r   N)r   decoder   r   valuelenr   )encodedspkialgoalgo_oidspkalgo_paramss         Y/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/Crypto/PublicKey/__init__.py_expand_subject_public_key_infor      s    * =Q7D=QU;D}##DG,H
.

Q
(
.
.C
4yA~	"IT!W%K >>3++	"q'Ks   	B5 5B>c                     Uc  [        [        U 5      /5      nO[        [        U 5      U/5      n[        U[        U5      /5      nUR                  5       $ )N)r   r   r   encode)r   
public_keyparams	algorithmr   s        r   _create_subject_public_key_infor   ?   sT    ~X!6 78	X!6 ?@		$Z0 D ;;=    c                 4   [        5       R                  U SS9n[        5       R                  US   [        SS5      S9nSn US   S-     SnX#   $ ! [         a>    [	        SS9R                  US   5      R
                  nUS	;  a  [        S
5      eSn X#   $ f = f)z:Extract subjectPublicKeyInfo from a DER X.509 certificate.   r
   r            r   )explicit)r	   r    z#Incorrect X.509 certificate version)r   r   range	TypeErrorr   r   
ValueError)x509_certificatecertificatetbs_certificateindexversions        r    _extract_subject_public_key_infor-   L   s     -&&'7Q&GK!m**;q>7<Q| + EO EQ !!  a(//0BCII& BCC!!s   
A ABBN)	Crypto.Util.asn1r   r   r   r   r   r   r   r-    r   r   <module>r0      s   *3 3#,L
"r   