✏️ 正在编辑: mysql_native_password.cpython-312.pyc
路径:
/var/opt/nydus/ops/mysql/connector/plugins/__pycache__/mysql_native_password.cpython-312.pyc
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
� ��'j� � �~ � d Z ddlZddlmZ ddlmZmZmZ ddlm Z ddl m Z dd lmZ erdd l mZ dZ G d� de� Zy) z&Native Password Authentication Plugin.� N)�sha1)� TYPE_CHECKING�Any�Optional� )�InterfaceError)�logger� )�MySQLAuthPlugin)�MySQLSocket�MySQLNativePasswordAuthPluginc �~ � e Zd ZdZdedefd�Zedefd�� Zede fd�� Z dededee fd�Z d d dededefd�Zy) r zBClass implementing the MySQL Native Password authentication plugin� auth_data�returnc �� � |st d� �| j syd} t | j j � � j � }t |� j � }t ||z � j � }t ||� D ��cg c] \ }}||z �� }}}t j dg|��� }|S c c}}w # t j t f$ r} t d| � �� | �d} ~ ww xY w)z;Prepares and returns password as native MySQL 4.1+ passwordz"Missing authentication data (seed)� N�20BzFailed scrambling password; ) r � _passwordr �encode�digest�zip�struct�pack�error� TypeError) �selfr �hash4�hash1�hash2�hash3�h1�h3�xored�errs �^/opt/nydus/tmp/pip-target-k0fmikie/lib/python/mysql/connector/plugins/mysql_native_password.py�_prepare_passwordz/MySQLNativePasswordAuthPlugin._prepare_password1 s� � �� �!E�F�F��~�~���� P�����.�.�0�1�8�8�:�E���K�&�&�(�E���U�*�+�2�2�4�E�-0���->�?�->��"�b�R�"�W�->�E�?��K�K��.��.�E� ��� @�����i�(� P� �#?��u�!E�F�C�O�� P�s* �A5C �B=�"C �=C �C0�C+�+C0c � � y)zPlugin official name.�mysql_native_password� �r s r% �namez"MySQLNativePasswordAuthPlugin.nameE s � � 'r c � � y)z'Signals whether or not SSL is required.Fr) r* s r% �requires_sslz*MySQLNativePasswordAuthPlugin.requires_sslJ s � � r �kwargsc �$ � | j |� S )a� Make the client's authorization response. Args: auth_data: Authorization data. 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: Client's authorization response. )r&