U
    ;ßôgi  ã                   @   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rddd	lmZmZ ndd	lmZmZ d
ddgZdd„ ZG dd„ dƒZdS )é    )Úunicode_literalsÚdivisionÚabsolute_importÚprint_functioné   )Úffié   )Ú_try_decode)Úbuffer_from_bytes)Ústr_clsZcffi)Úcrypt32Ú	get_errorr   ÚCrypt32ConstÚhandle_errorc                 C   s0   | rdS t ƒ \}}t|tƒs$t|ƒ}t|ƒ‚dS )zÎ
    Extracts the last Windows error message into a python unicode string

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

    :return:
        A unicode string error message
    N)r   Ú
isinstancer   r	   ÚOSError)ÚresultÚ_Zerror_string© r   ú:/tmp/pip-unpacked-wheel-x1gypflw/oscrypto/_win/_crypt32.pyr      s    

c                   @   sx   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edƒZedƒZedƒZdS )r   r   éz   é   i 	€s   Memoryi    r   é   i   l        l   `  l     l     l     l   	  l     l      s   1.3.6.1.5.5.7.3.1 s   1.3.6.1.4.1.311.10.3.3 s   2.16.840.1.113730.4.1 N)Ú__name__Ú
__module__Ú__qualname__ZX509_ASN_ENCODINGZERROR_INSUFFICIENT_BUFFERZ%CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAGZCRYPT_E_NOT_FOUNDZCERT_STORE_PROV_MEMORYZCERT_STORE_CREATE_NEW_FLAGZCERT_STORE_ADD_USE_EXISTINGZUSAGE_MATCH_TYPE_ORZCERT_CHAIN_POLICY_SSLZAUTHTYPE_SERVERZ'CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAGZ.CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGSZCERT_CHAIN_CACHE_END_CERTZ&CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLYZTRUST_E_CERT_SIGNATUREZCERT_E_EXPIREDZCERT_E_ROLEZCERT_E_PURPOSEZCERT_E_UNTRUSTEDROOTZCERT_E_CN_NO_MATCHZCRYPT_E_REVOKEDr
   ZPKIX_KP_SERVER_AUTHZSERVER_GATED_CRYPTOZSGC_NETSCAPEr   r   r   r   r   ,   s0   N)Ú
__future__r   r   r   r   Ú r   Ú_decoder	   Ú_ffir
   Ú_typesr   Z_crypt32_cffir   r   Z_crypt32_ctypesÚ__all__r   r   r   r   r   r   Ú<module>   s   
ý