§
    Âi¢  ã                   ó¢   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dZ	 G d„ d	ej
        ¦  «        Z G d
„ dej        ej        ¦  «        ZdS )z¶
RSA cryptography signer and verifier.

This file provides a shared wrapper, that defers to _python_rsa or _cryptography_rsa
for implmentations using different third party libraries
é    )ÚRSAPrivateKey)ÚRSAPublicKey)Ú_helpers)Ú_cryptography_rsa)Úbasezrsa.keyc                   ój   — e Zd ZdZd„ Z ej        ej        ¦  «        d„ ¦   «         Z	e
d„ ¦   «         ZdS )ÚRSAVerifiera•  Verifies RSA cryptographic signatures using public keys.

    Args:
        public_key (Union["rsa.key.PublicKey", cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey]):
            The public key used to verify signatures.
    Raises:
        ImportError: if called with an rsa.key.PublicKey, when the rsa library is not installed
        ValueError: if an unrecognized public key is provided
    c                 ó  — |j         j        }t          |t          ¦  «        rt          }nB|                     t          ¦  «        r	ddlm} |}nt          dt          |¦  «        › �¦  «        ‚|                     |¦  «        | _        d S )Nr   ©Ú_python_rsazunrecognized public key type: )Ú	__class__Ú
__module__Ú
isinstancer   r   Ú
startswithÚRSA_KEY_MODULE_PREFIXÚgoogle.auth.cryptr   Ú
ValueErrorÚtyper	   Ú_impl)ÚselfÚ
public_keyÚ
module_strÚimpl_libr   s        ú_/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/google/auth/crypt/rsa.pyÚ__init__zRSAVerifier.__init__+   s�   € ØÔ)Ô4ˆ
Ý�j¥,Ñ/Ô/ð 	RÝ(ˆHˆHØ×"Ò"Õ#8Ñ9Ô9ð 	RØ5Ð5Ð5Ð5Ð5Ð5à"ˆHˆHåÐP½dÀ:Ñ>NÔ>NÐPÐPÑQÔQÐQØ×)Ò)¨*Ñ5Ô5ˆŒ
ˆ
ˆ
ó    c                 ó8   — | j                              ||¦  «        S ©N)r   Úverify)r   ÚmessageÚ	signatures      r   r   zRSAVerifier.verify7   s   € àŒz× Ò  ¨)Ñ4Ô4Ð4r   c                 óx   — |                       | ¦  «        }t          j                             |¦  «        |_        |S )aŠ  Construct a Verifier instance from a public key or public
        certificate string.

        Args:
            public_key (Union[str, bytes]): The public key in PEM format or the
                x509 public key certificate.

        Returns:
            google.auth.crypt.Verifier: The constructed verifier.

        Raises:
            ValueError: If the public_key can't be parsed.
        )Ú__new__r   r	   Úfrom_stringr   )Úclsr   Úinstances      r   r$   zRSAVerifier.from_string;   s2   € ð —;’;˜sÑ#Ô#ˆÝ*Ô6×BÒBÀ:ÑNÔNˆŒØˆr   N)Ú__name__r   Ú__qualname__Ú__doc__r   r   Úcopy_docstringr   ÚVerifierr   Úclassmethodr$   © r   r   r	   r	       ss   € € € € € ðð ð
6ð 
6ð 
6ð €XÔ˜Tœ]Ñ+Ô+ð5ð 5ñ ,Ô+ð5ð ðð ñ „[ðð ð r   r	   c                   óº   — e Zd ZdZdd„Ze ej        ej	        ¦  «        d„ ¦   «         ¦   «         Z
 ej        ej	        ¦  «        d„ ¦   «         Zedd„¦   «         ZdS )Ú	RSASignera=  Signs messages with an RSA private key.

    Args:
        private_key (Union["rsa.key.PrivateKey", cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey]):
            The private key to sign with.
        key_id (str): Optional key ID used to identify this private key. This
            can be useful to associate the private key with its associated
            public key or certificate.

    Raises:
        ImportError: if called with an rsa.key.PrivateKey, when the rsa library is not installed
        ValueError: if an unrecognized public key is provided
    Nc                 ó  — |j         j        }t          |t          ¦  «        rt          }nB|                     t          ¦  «        r	ddlm} |}nt          dt          |¦  «        › �¦  «        ‚|                     ||¬¦  «        | _        d S )Nr   r   zunrecognized private key type: ©Úkey_id)r   r   r   r   r   r   r   r   r   r   r   r/   r   )r   Úprivate_keyr2   r   r   r   s         r   r   zRSASigner.__init__^   s•   € Ø Ô*Ô5ˆ
Ý�k¥=Ñ1Ô1ð 	TÝ(ˆHˆHØ×"Ò"Õ#8Ñ9Ô9ð 	TØ5Ð5Ð5Ð5Ð5Ð5à"ˆHˆHåÐR½tÀKÑ?PÔ?PÐRÐRÑSÔSÐSØ×'Ò'¨¸FÐ'ÑCÔCˆŒ
ˆ
ˆ
r   c                 ó   — | j         j        S r   )r   r2   )r   s    r   r2   zRSASigner.key_idj   s   € ð ŒzÔ Ð r   c                 ó6   — | j                              |¦  «        S r   )r   Úsign)r   r    s     r   r6   zRSASigner.signo   s   € àŒz�Š˜wÑ'Ô'Ð'r   c                 ó|   — |                       | ¦  «        }t          j                             ||¬¦  «        |_        |S )až  Construct a Signer instance from a private key in PEM format.

        Args:
            key (str): Private key in PEM format.
            key_id (str): An optional key id used to identify the private key.

        Returns:
            google.auth.crypt.Signer: The constructed signer.

        Raises:
            ValueError: If the key cannot be parsed as PKCS#1 or PKCS#8 in
                PEM format.
        r1   )r#   r   r/   r$   r   )r%   Úkeyr2   r&   s       r   r$   zRSASigner.from_strings   s7   € ð —;’;˜sÑ#Ô#ˆÝ*Ô4×@Ò@ÀÈVÐ@ÑTÔTˆŒØˆr   r   )r'   r   r(   r)   r   Úpropertyr   r*   r   ÚSignerr2   r6   r,   r$   r-   r   r   r/   r/   O   s¶   € € € € € ðð ð
Dð 
Dð 
Dð 
Dð Ø€XÔ˜Tœ[Ñ)Ô)ð!ð !ñ *Ô)ñ „Xð!ð €XÔ˜Tœ[Ñ)Ô)ð(ð (ñ *Ô)ð(ð ðð ð ñ „[ðð ð r   r/   N)r)   Ú-cryptography.hazmat.primitives.asymmetric.rsar   r   Úgoogle.authr   r   r   r   r   r+   r	   r:   ÚFromServiceAccountMixinr/   r-   r   r   ú<module>r>      sÚ   ððð ð HÐ GÐ GÐ GÐ GÐ GØ FÐ FÐ FÐ FÐ FÐ Fà  Ð  Ð  Ð  Ð  Ð  Ø /Ð /Ð /Ð /Ð /Ð /Ø "Ð "Ð "Ð "Ð "Ð "à!Ð ð,ð ,ð ,ð ,ð ,�$”-ñ ,ô ,ð ,ð^5ð 5ð 5ð 5ð 5�”˜TÔ9ñ 5ô 5ð 5ð 5ð 5r   