
    Bwg                         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(  r	dd	lmZmZ ndd	lmZmZ g d
ZddZ G d d      Zy)    )unicode_literalsdivisionabsolute_importprint_function   )ffi   )_try_decode)TLSError)str_clscffi)secur32	get_error)handle_errorr   Secur32ConstNc                 >   | dk(  ry| t         j                  k(  rt        d      | t         j                  k(  rt        d      | t         j                  k(  rt        d      t               \  }}t        |t              st        |      }|t        } |d| z  |z         )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_strings       M/var/www/horilla/myenv/lib/python3.12/site-packages/oscrypto/_win/_secur32.pyr   r      s     {333;<<333677333011kOA|lG,"<0!
<vEU
VV    c                   ,   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/ZAd0ZBd1ZCd2ZDd3ZEd4ZFd5ZGd6ZHd7ZId8ZJy9):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_SIGN r   r   r   r   ;   s   %?J&0#$.!& *H&&")$%&&(&%#&%'#-  !N!+ "NO OONO#"&&*#!!LLIHHHHIKKKJMIJMMJMr   r   )N)
__future__r   r   r   r    r   _decoder
   errorsr   _typesr   _secur32_cffir   r   _secur32_ctypes__all__r   r   rs   r   r   <module>r|      sC    R R     5F?113"WJV Vr   