
    ÿigJ                     4    d dl mZmZmZmZmZ d Zd Zd ZdS )    )DerSequence
DerIntegerDerBitStringDerObjectIdDerNullc                    t                                          | d          }t                                          |d         d          }t                                          |d                   }t                                          |d                   j        }t          |          dk    rd}n:	 t                                          |d                    d}n#  |d         }Y nxY w|j        ||fS )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/afkarena/venv/lib/python3.11/site-packages/Cryptodome/PublicKey/__init__.py_expand_subject_public_key_infor      s    * ==Q77D==QU;;D}}##DG,,H
..

Q
(
(
.C
4yyA~~	"IIT!W%%%KK	"q'KKK>3++s   7)C! !
C-c                     |t          t          |           g          }nt          t          |           |g          }t          |t          |          g          }|                                S )N)r   r   r   encode)r   
public_keyparams	algorithmr   s        r   _create_subject_public_key_infor   ?   sl    ~X!6!6 788		X!6!6 ?@@		$Z00  D ;;==    c                    t                                          | d          }t                                          |d         t          dd                    }d}	 |d         dz    d}nS# t          $ rF t	          d                              |d                   j        }|d	vrt          d
          d}Y nw xY w||         S )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&GGK!mm**;q>7<Q|| + E EO EQ   a(((//0BCCI&  BCCC	 5!!s   A, ,AB<;B<N)	Cryptodome.Util.asn1r   r   r   r   r   r   r   r-    r   r   <module>r0      s   *3 3 3 3 3 3 3 3 3 3 3 3 3 3#, #, #,L
 
 
" " " " "r   