o
    Œõ±j�  ã                   @   s˜   d dl mZmZmZmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ eƒ dkr2dd	lmZmZ ndd	lmZmZ g d
¢Zddd„ZG dd„ dƒZdS )é    )Úunicode_literalsÚdivisionÚabsolute_importÚprint_functioné   )Úffié   )Ú_try_decode)ÚTLSError)Ústr_clsÚcffi)Úsecur32Ú	get_error)Úhandle_errorr   ÚSecur32ConstNc                 C   sz   | dkrdS | t jkrtdƒ‚| t jkrtdƒ‚| t jkr!tdƒ‚tƒ \}}t|tƒs/t|ƒ}|du r5t	}|d|  | ƒ‚)a5  
    Extracts the last Windows error message into a python unicode string

    :param result:
        A function result, 0 or None indicates failure

    :param exception_class:
        The exception class to use for the exception if an error occurred

    :return:
        A unicode string error message
    r   Nz"A packet was received out of orderzA packet was received alteredzThe TLS session expiredzSECURITY_STATUS error 0x%0.2X: )
r   ÚSEC_E_OUT_OF_SEQUENCEr
   ÚSEC_E_MESSAGE_ALTEREDÚSEC_E_CONTEXT_EXPIREDr   Ú
isinstancer   r	   ÚOSError)ÚresultÚexception_classÚ_Úerror_string© r   ú‰/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/oscrypto/_win/_secur32.pyr      s   




r   c                   @   s,  e Zd ZdZdZdZdZdZdZdZ	dZ
dZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+d Z,dZ-d!Z.dZ/dZ0d"Z1d#Z2d$Z3d%Z4dZ5dZ6dZ7d&Z8d'Z9d(Z:d)Z;d*Z<d+Z=d,Z>d-Z?d.Z@d/ZAd0ZBd1ZCd2ZDd3ZEd4ZFd5ZGd6ZHd7ZId8ZJd9S ):r   é   r   z,Microsoft Unified Security Protocol Provideré   é    i  @ é   r   i	 i	 i!	 l     l     i1� l     l     l   ]  l   "  l   %  l   (  l   &  l     l   !  i 	 é   i   i €  é€   é   é   é   é   r   éZ   éS   i   i   if  if  if  ih  if  if  i€  i€  i€  i€  i€  iª  iª  iª  i®  i ¤  i $  i"  i "  N)KÚ__name__Ú
__module__Ú__qualname__ÚSCHANNEL_CRED_VERSIONÚSECPKG_CRED_OUTBOUNDÚ
UNISP_NAMEÚSCH_CRED_MANUAL_CRED_VALIDATIONÚSCH_CRED_AUTO_CRED_VALIDATIONÚSCH_USE_STRONG_CRYPTOÚSCH_CRED_NO_DEFAULT_CREDSÚSECBUFFER_VERSIONÚSEC_E_OKÚSEC_I_CONTINUE_NEEDEDÚSEC_I_CONTEXT_EXPIREDÚSEC_I_RENEGOTIATEÚSEC_E_INCOMPLETE_MESSAGEÚSEC_E_INVALID_TOKENr   r   r   ÚSEC_E_INVALID_PARAMETERÚSEC_E_WRONG_PRINCIPALÚSEC_E_UNTRUSTED_ROOTÚSEC_E_CERT_EXPIREDÚSEC_E_ILLEGAL_MESSAGEÚSEC_E_INTERNAL_ERRORÚSEC_E_BUFFER_TOO_SMALLÚSEC_I_INCOMPLETE_CREDENTIALSÚISC_REQ_REPLAY_DETECTÚISC_REQ_SEQUENCE_DETECTÚISC_REQ_CONFIDENTIALITYÚISC_REQ_ALLOCATE_MEMORYÚISC_REQ_INTEGRITYÚISC_REQ_STREAMÚISC_REQ_USE_SUPPLIED_CREDSÚISC_RET_REPLAY_DETECTÚISC_RET_SEQUENCE_DETECTÚISC_RET_CONFIDENTIALITYÚISC_RET_ALLOCATED_MEMORYÚISC_RET_INTEGRITYÚISC_RET_STREAMÚSECBUFFER_ALERTÚSECBUFFER_STREAM_HEADERÚSECBUFFER_STREAM_TRAILERÚSECBUFFER_EXTRAÚSECBUFFER_TOKENÚSECBUFFER_DATAÚSECBUFFER_EMPTYÚSECPKG_ATTR_STREAM_SIZESÚSECPKG_ATTR_CONNECTION_INFOÚSECPKG_ATTR_REMOTE_CERT_CONTEXTÚSP_PROT_TLS1_2_CLIENTÚSP_PROT_TLS1_1_CLIENTÚSP_PROT_TLS1_CLIENTÚSP_PROT_SSL3_CLIENTÚSP_PROT_SSL2_CLIENTÚCALG_AES_256ÚCALG_AES_128Ú	CALG_3DESÚCALG_RC4ÚCALG_RC2ÚCALG_DESÚCALG_MD5Ú	CALG_SHA1ÚCALG_SHA256ÚCALG_SHA384ÚCALG_SHA512Ú
CALG_DH_SFÚCALG_DH_EPHEMÚ	CALG_ECDHÚ
CALG_ECDHEÚCALG_RSA_KEYXÚCALG_RSA_SIGNÚ
CALG_ECDSAÚCALG_DSS_SIGNr   r   r   r   r   ;   s’    r   )N)Ú
__future__r   r   r   r   Ú r   Ú_decoder	   Úerrorsr
   Ú_typesr   Ú_secur32_cffir   r   Ú_secur32_ctypesÚ__all__r   r   r   r   r   r   Ú<module>   s   

%