§
    šŒÃiÞ	  ã                   óÎ   — d Z ddlZddlZdZdeez  defd„Zdeez  deez  d	eez  defd
„Zdeez  deez  defd„Zdeez  deez  de	eef         fd„Z
deez  deez  defd„ZdS )z!
Authentication related methods.
é    N)Úauth_crammd5_verifyÚauth_login_encodeÚauth_plain_encodeÚauth_xoauth2_encodeÚvalueÚreturnc                 ót   — t          | t          t          t          f¦  «        r| S |                      d¦  «        S )Nzutf-8)Ú
isinstanceÚbytesÚ	bytearrayÚ
memoryviewÚencode)r   s    úY/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/aiosmtplib/auth.pyÚ_ensure_bytesr      s2   € Ý�%�%¥­JÐ7Ñ8Ô8ð Øˆà�<Š<˜Ñ Ô Ð ó    ÚusernameÚpasswordÚ	challengec                ó  — t          | ¦  «        }t          |¦  «        }t          j        |¦  «        }t          j        ||d¬¦  «        }|dz   |                     ¦   «                              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      s†   € õ # 8Ñ,Ô,€NÝ" 8Ñ,Ô,€NÝÔ(¨Ñ3Ô3Ðå”˜.Ð.?È5ÐQÑQÔQ€JØ! DÑ(¨:×+?Ò+?Ñ+AÔ+A×+HÒ+HÈÑ+QÔ+QÑQ€LÝ!Ô+¨LÑ9Ô9ÐàÐr   c                ó€   — 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   ,   sI   € õ # 8Ñ,Ô,€NÝ" 8Ñ,Ô,€Nà! NÑ2°UÑ:¸^ÑKÐÝÔÐ4Ñ5Ô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   =   sL   € õ # 8Ñ,Ô,€NÝ" 8Ñ,Ô,€NåÔ'¨Ñ7Ô7ÐÝÔ'¨Ñ7Ô7ÐàÐ-Ð-Ð-r   Úaccess_tokenc                ó†   — t          | ¦  «        }t          |¦  «        }d|z   dz   |z   dz   }t          j        |¦  «        }|S )z×
    XOAUTH2 auth encodes the username and OAuth2 access token per
    https://developers.google.com/gmail/imap/xoauth2-protocol

    Format: base64("user=" + username + "\x01auth=Bearer " + token + "\x01\x01")
    s   user=s   auth=Bearer s   r)   )r   r/   r!   Útoken_bytesÚauth_stringr+   s         r   r   r   O   sT   € õ # 8Ñ,Ô,€NÝ Ñ-Ô-€Kð 	�>Ñ!Ð$7Ñ7¸+ÑEÈÑSð õ Ô˜{Ñ+Ô+€Gà€Nr   )Ú__doc__r   r   Ú__all__Ústrr   r   r   r   Útupler   r   © r   r   ú<module>r8      sI  ððð ð €€€Ø €€€ð€ð!˜˜u™ð !¨ð !ð !ð !ð !ð Ø�E‰kð à�E‰kð ð �U‰{ð ð
 ð ð  ð  ð  ð*Ø�E‰kðà�E‰kðð ð	ð ð ð ð".Ø�E‰kð.à�E‰kð.ð ˆ5�%ˆ<Ôð	.ð .ð .ð .ð$Ø�E‰kðà˜‘+ðð ð	ð ð ð ð ð r   