§
    >Ä³g´  ã                   ór   — d Z ddlmZmZmZ ddlmZ ddlmZ ddlmZ erddl	m
Z
 d	Z G d
„ d	e¦  «        ZdS )z&SHA256 Password Authentication Plugin.é    )ÚTYPE_CHECKINGÚAnyÚOptionalé   )Úerrors)Úloggeré   )ÚMySQLAuthPlugin)ÚMySQLSocketÚMySQLSHA256PasswordAuthPluginc                   óŽ   — e Zd ZdZdefd„Zedefd„¦   «         Zede	fd„¦   «         Z
dededee         fd„Zd	d
dededefd„ZdS )r   zÆClass implementing the MySQL SHA256 authentication plugin

    Note that encrypting using RSA is not supported since the Python
    Standard Library does not provide this OpenSSL functionality.
    Úreturnc                 ó:   — | j                              ¦   «         dz   S )zyPrepare and return password as as clear text.

        Returns:
            password (bytes): Prepared password.
        ó    )Ú	_passwordÚencode©Úselfs    úe/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/mysql/connector/plugins/sha256_password.pyÚ_prepare_passwordz/MySQLSHA256PasswordAuthPlugin._prepare_password2   s   € ð Œ~×$Ò$Ñ&Ô&¨Ñ0Ð0ó    c                 ó   — dS )zPlugin official name.Úsha256_password© r   s    r   Únamez"MySQLSHA256PasswordAuthPlugin.name:   s
   € ð !Ð r   c                 ó   — dS )z'Signals whether or not SSL is required.Tr   r   s    r   Úrequires_sslz*MySQLSHA256PasswordAuthPlugin.requires_ssl?   s	   € ð ˆtr   Ú	auth_dataÚkwargsc                 ó~   — | j         r#| j        st          j        | j        › d�¦  «        ‚|                      ¦   «         S )zÃReturn the prepared password to send to MySQL.

        Raises:
            InterfaceError: When SSL is required by not enabled.

        Returns:
            str: The prepared password.
        z requires SSL)r   Ússl_enabledr   ÚInterfaceErrorr   r   )r   r   r   s      r   Úauth_responsez+MySQLSHA256PasswordAuthPlugin.auth_responseD   sI   € ð Ôð 	E TÔ%5ð 	EÝÔ'¨4¬9Ð(CÐ(CÐ(CÑDÔDÐDØ×%Ò%Ñ'Ô'Ð'r   Úsockr   c                 ó*  —  | j         |fi |¤Ž}|€t          j        d¦  «        ‚t          j        d|t          |¦  «        ¦  «         |                     |¦  «         t          |                     ¦   «         ¦  «        }t          j        d|¦  «         |S )aS  Handles server's `auth switch request` response.

        Args:
            sock: Pointer to the socket connection.
            auth_data: Plugin provided data (extracted from a packet
                       representing an `auth switch request` response).
            kwargs: Custom configuration to be passed to the auth plugin
                    when invoked. The parameters defined here will override the ones
                    defined in the auth plugin itself.

        Returns:
            packet: Last server's response after back-and-forth
                    communication.
        NzGot a NULL auth responsez# request: %s size: %sz# server response packet: %s)	r#   r   r"   r   ÚdebugÚlenÚsendÚbytesÚrecv)r   r$   r   r   ÚresponseÚpkts         r   Úauth_switch_responsez2MySQLSHA256PasswordAuthPlugin.auth_switch_responseQ   s�   € ð" &�4Ô% iÐ:Ð:°6Ð:Ð:ˆØÐÝÔ'Ð(BÑCÔCÐCåŒÐ-¨x½¸X¹¼ÑGÔGÐGØ�	Š	�(ÑÔÐå�D—I’I‘K”KÑ Ô ˆÝŒÐ3°SÑ9Ô9Ð9àˆ
r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r)   r   ÚpropertyÚstrr   Úboolr   r   r   r#   r-   r   r   r   r   r   +   sè   € € € € € ðð ð1 5ð 1ð 1ð 1ð 1ð ð!�cð !ð !ð !ñ „Xð!ð ð˜dð ð ð ñ „Xðð( uð (¸ð (ÀÈÄð (ð (ð (ð (ðØ!ðØ.3ðØ?Bðà	ðð ð ð ð ð r   N)r1   Útypingr   r   r   Ú r   r   r
   Únetworkr   ÚAUTHENTICATION_PLUGIN_CLASSr   r   r   r   ú<module>r9      s¿   ðð: -Ð ,à /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð àð &Ø%Ð%Ð%Ð%Ð%Ð%à=Ð ðAð Að Að Að A Oñ Aô Að Að Að Ar   