CasperSecurity

Current Path : /snap/core24/current/lib/python3.12/__pycache__/
Upload File :
Current File : //snap/core24/current/lib/python3.12/__pycache__/poplib.cpython-312.pyc

�

�ЦiS7���dZddlZddlZddlZddlZ	ddlZdZddgZGd�de	�Z
dZd	Zd
Z
dZe
ezZdZGd
�d�ZerGd�de�Zej'd�edk(r�ddlZeej*d�Zeej1��ej3ej*d�ej5ej*d�ej7�ej9�\ZZededz�D]<Z ejCe �\Z"Z#Z$ede z�e#D]
Z%ede%z��ed��>ejM�yy#e$rdZY��@wxYw)z@A POP3 client class.

Based on the J. Myers POP3 draft, Jan. 96
�NTF�POP3�error_protoc��eZdZy)rN)�__name__�
__module__�__qualname__���/usr/lib/python3.12/poplib.pyrrs�r
�ni��
�
ic��eZdZdZdZeejfd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd!d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zej>d�Z d�Z!d�Z"d!d�Z#d�Z$d�Z%d!d �Z&y)"raPThis class supports both the minimal and optional command sets.
    Arguments can be strings or integers (where appropriate)
    (e.g.: retr(1) and retr('1') both work equally well.

    Minimal Command Set:
            USER name               user(name)
            PASS string             pass_(string)
            STAT                    stat()
            LIST [msg]              list(msg = None)
            RETR msg                retr(msg)
            DELE msg                dele(msg)
            NOOP                    noop()
            RSET                    rset()
            QUIT                    quit()

    Optional Commands (some servers support these):
            RPOP name               rpop(name)
            APOP name digest        apop(name, digest)
            TOP msg n               top(msg, n)
            UIDL [msg]              uidl(msg = None)
            CAPA                    capa()
            STLS                    stls()
            UTF8                    utf8()

    Raises one exception: 'error_proto'.

    Instantiate with:
            POP3(hostname, port=110)

    NB:     the POP protocol locks the mailbox from user
            authorization until QUIT, so be sure to get in, suck
            the messages, and quit, each time you access the
            mailbox.

            POP is a line-based protocol, which means large mail
            messages consume lots of python cycles reading them
            line-by-line.

            If it's available on your mail server, use IMAP4
            instead, it doesn't suffer from the two problems
            above.
    zUTF-8c��||_||_d|_tjd|||�|j|�|_|jjd�|_d|_	|j�|_y)NFzpoplib.connect�rbr)�host�port�_tls_established�sys�audit�_create_socket�sock�makefile�file�
_debugging�_getresp�welcome)�selfrr�timeouts    r�__init__z
POP3.__init__bsg����	���	� %����	�	�"�D�$��5��'�'��0��	��I�I�&�&�t�,��	�����}�}���r
c�x�|�
|std��tj|j|jf|�S)Nz0Non-blocking socket (timeout=0) is not supported)�
ValueError�socket�create_connectionrr)rrs  rrzPOP3._create_socketms6����w��O�P�P��'�'����D�I�I�(>��H�Hr
c��|jdkDrtdt|��tjd||�|j
j
|tz�y)N�z*put*zpoplib.putline)r�print�reprrrr�sendall�CRLF�r�lines  r�_putlinez
POP3._putlinersB���?�?�Q���g�t�D�z� :��	�	�"�D�$�/��	�	���$��+�&r
c��|jrtdt|��t||j�}|j|�y)Nz*cmd*)rr'r(�bytes�encodingr-r+s  r�_putcmdzPOP3._putcmdzs2���?�?�E�'�4��:�6��T�4�=�=�)���
�
�d�r
c�R�|jjtdz�}t|�tkDrt	d��|j
dkDrt
dt|��|st	d��t|�}|ddtk(r|dd|fS|ddtk(r|dd|fS|dd|fS)Nr&z
line too longz*get*z-ERR EOF������)
r�readline�_MAXLINE�lenrrr'r(r*�CR)rr,�octetss   r�_getlinez
POP3._getline�s����y�y�!�!�(�Q�,�/���t�9�x���o�.�.��?�?�Q���g�t�D�z� :��;�z�2�2��T������9������9�f�$�$����8�r�>���"�:�v�%�%��C�R�y�&� � r
c��|j�\}}|jdkDrtdt|��|j	d�st|��|S)Nr&z*resp*�+)r:rr'r(�
startswithr)r�resp�os   rrz
POP3._getresp�sF���-�-�/���a��?�?�Q���h��T�
� ;����t�$��d�#�#��r
c��|j�}g}d}|j�\}}|dk7rJ|jd�r
|dz
}|dd}||z}|j|�|j�\}}|dk7r�J|||fS)Nr�.s..r&)rr:r=�append)rr>�listr9r,r?s      r�_getlongrespzPOP3._getlongresp�s����}�}�����A�6��-�-�/���a��d�l����u�%��a�C���A�B�x���a�Z�F��K�K����m�m�o�G�D�!�
�d�l��T�6�!�!r
c�D�|j|�|j�S�N)r1rr+s  r�	_shortcmdzPOP3._shortcmd�s�����T���}�}��r
c�D�|j|�|j�SrF)r1rDr+s  r�_longcmdz
POP3._longcmd�s�����T��� � �"�"r
c��|jSrF)r�rs r�
getwelcomezPOP3.getwelcome�s���|�|�r
c��||_yrF)r)r�levels  r�set_debuglevelzPOP3.set_debuglevel�s	����r
c�*�|jd|z�S)zVSend user name, return response

        (should indicate password required).
        zUSER %s�rG�r�users  rrSz	POP3.user�s��
�~�~�i�$�.�/�/r
c�*�|jd|z�S)z�Send password, return response

        (response includes message count, mailbox size).

        NB: mailbox is locked by server from here to 'quit()'
        zPASS %srQ)r�pswds  r�pass_z
POP3.pass_�s���~�~�i�$�.�/�/r
c���|jd�}|j�}|jrtdt	|��t|d�}t|d�}||fS)z]Get mailbox status.

        Result is tuple of 2 ints (message count, mailbox size)
        �STATz*stat*r&�)rG�splitrr'r(�int)r�retval�rets�numMessages�sizeMessagess     r�statz	POP3.stat�sV��
����'���|�|�~���?�?�E�(�D��J�7��$�q�'�l���4��7�|���\�*�*r
Nc�P�|�|jd|z�S|jd�S)aRequest listing, return result.

        Result without a message number argument is in form
        ['response', ['mesg_num octets', ...], octets].

        Result when a message number argument is given is a
        single response: the "scan listing" for that message.
        zLIST %s�LIST�rGrI�r�whichs  rrCz	POP3.list�s-�����>�>�)�e�"3�4�4��}�}�V�$�$r
c�*�|jd|z�S)zoRetrieve whole message number 'which'.

        Result is in form ['response', ['line', ...], octets].
        zRETR %s�rIrds  r�retrz	POP3.retr�s��
�}�}�Y��.�/�/r
c�*�|jd|z�S)zFDelete message number 'which'.

        Result is 'response'.
        zDELE %srQrds  r�delez	POP3.deles��
�~�~�i�%�/�0�0r
c�$�|jd�S)zXDoes nothing.

        One supposes the response indicates the server is alive.
        �NOOPrQrKs r�noopz	POP3.noops��
�~�~�f�%�%r
c�$�|jd�S)z(Unmark all messages marked for deletion.�RSETrQrKs r�rsetz	POP3.rsets���~�~�f�%�%r
c�H�|jd�}|j�|S)zDSignoff: commit changes on server, unlock mailbox, close connection.�QUIT)rG�close)rr>s  r�quitz	POP3.quits���~�~�f�%���
�
���r
c���	|j}d|_|�|j�|j}d|_|�1	|jtj
�|j�yy#t$r8}|jtjk7rt|dd�dk7r�Yd}~�Nd}~wwxYw#|j�wxYw#|j}d|_|��	|jtj
�nD#t$r8}|jtjk7rt|dd�dk7r�Yd}~nd}~wwxYw|j�w#|j�wxYwwxYw)z8Close the connection without assuming anything about it.N�winerrorri&')
rrsr�shutdownr#�	SHUT_RDWR�OSError�errno�ENOTCONN�getattr)rrr�excs    rrsz
POP3.closes)��	!��9�9�D��D�I����
�
���9�9�D��D�I���
!��M�M�&�"2�"2�3��J�J�L� �����	�	�U�^�^�3�"�3�
�A�6�%�?����
���J�J�L���9�9�D��D�I���
!��M�M�&�"2�"2�3�����	�	�U�^�^�3�"�3�
�A�6�%�?����
���J�J�L��D�J�J�L�� �sp�%C�A.�.	B/�7.B*�%B2�*B/�/B2�2C�E)�C>�=E�>	D?�.D:�5E�:D?�?E�E)�E%�%E)c�*�|jd|z�S)zNot sure what this does.zRPOP %srQrRs  r�rpopz	POP3.rpop7s���~�~�i�$�.�/�/r
s\+OK.[^<]*(<.*>)c�.�t||j�}|jj|j�}|std��ddl}|jd�|z}|j|�j�}|jd|�d|���S)aAuthorisation

        - only possible if server has supplied a timestamp in initial greeting.

        Args:
                user     - mailbox user;
                password - mailbox password.

        NB: mailbox is locked by server from here to 'quit()'
        z!-ERR APOP not supported by serverrNr&zAPOP � )r/r0�	timestamp�matchrr�hashlib�group�md5�	hexdigestrG)rrS�password�secret�mr��digests       r�apopz	POP3.apop>s{���x����/���N�N� � ����.����A�B�B�������F�"�����V�$�.�.�0���~�~�d�F�;�<�<r
c�0�|jd|�d|���S)z�Retrieve message header of message number 'which'
        and first 'howmuch' lines of message body.

        Result is in form ['response', ['line', ...], octets].
        zTOP r�rg)rre�howmuchs   r�topzPOP3.topSs���}�}�E�7�;�<�<r
c�P�|�|jd|z�S|jd�S)z�Return message digest (unique id) list.

        If 'which', result contains unique id for that message
        in the form 'response mesgnum uid', otherwise result is
        the list ['response', ['mesgnum uid', ...], octets]
        zUIDL %s�UIDLrcrds  r�uidlz	POP3.uidl\s-�����>�>�)�e�"3�4�4��}�}�V�$�$r
c�$�|jd�S)zITry to enter UTF-8 mode (see RFC 6856). Returns server response.
        �UTF8rQrKs r�utf8z	POP3.utf8hs���~�~�f�%�%r
c��d�}i}	|jd�}|d}|D]}||�\}}|||<�	|S#t$rtd��wxYw)aReturn server capabilities (RFC 2449) as a dictionary
        >>> c=poplib.POP3('localhost')
        >>> c.capa()
        {'IMPLEMENTATION': ['Cyrus', 'POP3', 'server', 'v2.2.12'],
         'TOP': [], 'LOGIN-DELAY': ['0'], 'AUTH-RESP-CODE': [],
         'EXPIRE': ['NEVER'], 'USER': [], 'STLS': [], 'PIPELINING': [],
         'UIDL': [], 'RESP-CODES': []}
        >>>

        Really, according to RFC 2449, the cyrus folks should avoid
        having the implementation split into multiple arguments...
        c�T�|jd�j�}|d|ddfS)N�asciirr&)�decoderZ)r,�lsts  r�	_parsecapzPOP3.capa.<locals>._parsecap{s-���+�+�g�&�,�,�.�C��q�6�3�q�r�7�?�"r
�CAPAr&z!-ERR CAPA not supported by server)rIr)rr��capsr>�rawcaps�capline�capnm�capargss        r�capaz	POP3.capansw��	#���	C��=�=��(�D��1�g�G�"�
&��!*�7�!3���w�%��U��
&�
����	C��A�B�B�	C�s	�-7�Ac��tstd��|jrtd��|j�}d|vrtd��|�t	j
�}|j
d�}|j|j|j��|_|jjd�|_d|_|S)z{Start a TLS session on the active connection as specified in RFC 2595.

                context - a ssl.SSLContext
        z-ERR TLS support missing�$-ERR TLS session already established�STLSz!-ERR STLS not supported by server��server_hostnamerT)�HAVE_SSLrrr��ssl�_create_stdlib_contextrG�wrap_socketrrrr)r�contextr�r>s    r�stlsz	POP3.stls�s���
��8�9�9�� � ��D�E�E��y�y�{����~��A�B�B��?��0�0�2�G��~�~�f�%���'�'��	�	�8<�	�	�(�C��	��I�I�&�&�t�,��	� $����r
rF)'rrr�__doc__r0�	POP3_PORTr#�_GLOBAL_DEFAULT_TIMEOUTr rr-r1r:rrDrGrIrLrOrSrVr`rCrhrjrmrprtrsr�re�compiler�r�r�r�r�r�r�r	r
rrr3s���)�V�H�"+��7�7�	'�I�
'��!�*�"� �#�� �0�0�
+�%�0�1�&�&�
�!�80�
��
�
�/�0�I�=�*=�	%�&��:r
c�D�eZdZdZefejdd�d�Zd�Zdd�Z	y)�POP3_SSLaNPOP3 client class over SSL connection

        Instantiate with: POP3_SSL(hostname, port=995, context=None)

               hostname - the hostname of the pop3 over ssl server
               port - port number
               context - a ssl.SSLContext

        See the methods of the parent class POP3 for more documentation.
        N)rr�c�n�|�tj�}||_tj	||||�yrF)r�r�r�rr )rrrrr�s     rr zPOP3_SSL.__init__�s.�����4�4�6��"�D�L��M�M�$��d�G�4r
c��tj||�}|jj||j��}|S)Nr�)rrr�r�r)rrrs   rrzPOP3_SSL._create_socket�s<���&�&�t�W�5�D��<�<�+�+�D�<@�I�I�,�G�D��Kr
c��td��)z�The method unconditionally raises an exception since the
            STLS command doesn't make any sense on an already established
            SSL/TLS session.
            r�)r)rr�s  rr�z
POP3_SSL.stls�s��
�D�E�Er
rF)
rrrr��
POP3_SSL_PORTr#r�r rr�r	r
rr�r��s,��		�'4�	5� &� >� >��	5�	�	Fr
r��__main__r&rY�zMessage %d:z   z-----------------------)'r�rzr�r#rr�r��ImportError�__all__�	Exceptionrr�r�r8�LFr*r6rr�rBr�argv�ar'rLrSrVrCr`�numMsgs�	totalSize�range�irh�header�msgr9r,rtr	r
r�<module>r�s����
�	�
�
����H��-�
 ��#�)�"�
�	��
���
��	�"�u����k�k�\�F�4�F�@�N�N�:���z����S�X�X�a�[��A�	�!�,�,�.���F�F�3�8�8�A�;���G�G�C�H�H�Q�K���F�F�H��6�6�8��W�i�
�1�g��k�
"�)�� !���q�	����f�
�m�a�� ��	 �D��%�$�,��	 �
�'�(�)��F�F�H���[
���H��s�E�E�E
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY