Ë
    éëj•  ã                   óÖ   — d Z ddlZddlZddlmZmZ dZdeeef   defd„Z	deeef   d	eeef   d
eeef   defd„Z
deeef   d	eeef   defd„Zdeeef   d	eeef   deeef   fd„Zy)z!
Authentication related methods.
é    N)ÚTupleÚUnion)Úauth_crammd5_verifyÚauth_plain_encodeÚauth_login_encodeÚvalueÚreturnc                 óH   — t        | t        «      r| S | j                  d«      S )Nzutf-8)Ú
isinstanceÚbytesÚencode)r   s    úV/var/www/html/kelly/kelly-backend/venv/lib/python3.12/site-packages/aiosmtplib/auth.pyÚ_ensure_bytesr      s    € Ü�%œÔØˆà�<‰<˜Ó Ð ó    ÚusernameÚpasswordÚ	challengec                ó   — t        | «      }t        |«      }t        j                  |«      }t        j                  ||d¬«      }|dz   |j                  «       j                  d«      z   }t        j                  |«      }|S )zš
    CRAM-MD5 auth uses the password as a shared secret to MD5 the server's
    response, and sends the username combined with that (base64 encoded).
    Úmd5)ÚmsgÚ	digestmodó    Úascii)r   Úbase64Ú	b64decodeÚhmacÚnewÚ	hexdigestr   Ú	b64encode)	r   r   r   Úusername_bytesÚpassword_bytesÚdecoded_challengeÚ
md5_digestÚverificationÚencoded_verifications	            r   r   r      sv   € ô # 8Ó,€NÜ" 8Ó,€NÜ×(Ñ(¨Ó3Ðä—‘˜.Ð.?È5ÔQ€JØ! DÑ(¨:×+?Ñ+?Ó+A×+HÑ+HÈÓ+QÑQ€LÜ!×+Ñ+¨LÓ9ÐàÐr   c                ór   — t        | «      }t        |«      }d|z   dz   |z   }t        j                  |«      }|S )zG
    PLAIN auth base64 encodes the username and password together.
    ó    ©r   r   r   )r   r   r    r!   Úusername_and_passwordÚencodeds         r   r   r   )   sC   € ô # 8Ó,€NÜ" 8Ó,€Nà! NÑ2°UÑ:¸^ÑKÐÜ×ÑÐ4Ó5€Gà€Nr   c                óŠ   — t        | «      }t        |«      }t        j                  |«      }t        j                  |«      }||fS )z]
    LOGIN auth base64 encodes the username and password and sends them
    in sequence.
    r(   )r   r   r    r!   Úencoded_usernameÚencoded_passwords         r   r   r   :   sF   € ô # 8Ó,€NÜ" 8Ó,€Nä×'Ñ'¨Ó7ÐÜ×'Ñ'¨Ó7ÐàÐ-Ð-Ð-r   )Ú__doc__r   r   Útypingr   r   Ú__all__Ústrr   r   r   r   r   © r   r   Ú<module>r3      sè   ðñó Û ß ð L€ð!˜˜s E˜zÑ*ð !¨uó !ð Ø�C˜�JÑð à�C˜�JÑð ð �S˜%�ZÑ ð ð
 ó ð*Ø�C˜�JÑðà�C˜�JÑðð ó	ð".Ø�C˜�JÑð.à�C˜�JÑð.ð ˆ5�%ˆ<Ñô	.r   