
    Bwg                        d dl mZmZmZmZ d dlZddlmZ ddlm	Z	 ddl
mZ ddlmZmZ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 ej.                         Zed    ed   fZddZd Zd Z G d d      Zedk(  rde_        yy)    )unicode_literalsdivisionabsolute_importprint_functionN   )ffi   )_try_decode)SignatureError)newunwrapnull)str_clscffi)advapi32	get_error)r   Advapi32Consthandle_errorc                 >   | t         j                  k(  rt         j                  }n2| t         j                  k(  rt         j                  }nt        d| z        |s| t         j                  k7  rt               }t         j                  }n t         j                  }t         j                  }t        t        d      }t        j                  ||| ||      }|s7t               d   t         j                  k(  rt        j                  ||| |d      }t        |       t!        |      S )NzInvalid provider specified: %szHCRYPTPROV *r   )r   MS_ENH_RSA_AES_PROVPROV_RSA_AESMS_ENH_DSS_DH_PROVPROV_DSS_DH
ValueErrorr   CRYPT_VERIFYCONTEXTCONTAINER_NAMECRYPT_NEWKEYSETr   r   CryptAcquireContextWr   
NTE_EXISTSr   r   )providerverify_onlyprovider_typecontainer_nameflagscontext_handle_pointerress          N/var/www/horilla/myenv/lib/python3.12/site-packages/oscrypto/_win/_advapi32.pyopen_context_handler(      s    =444%22	]55	5%119HDEE h-"B"BB11&55-- >:

'
'C 9;q>]%=%==++"
 ())    c                 F    t        j                  | d      }t        |       y )Nr   )r   CryptReleaseContextr   )handler&   s     r'   close_context_handler-   D   s    

&
&vq
1Cr)   c                     | ryt               \  }}|t        j                  k(  rt        d      t	        |t
              st        |      }t        |      )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
    NzSignature is invalid)r   r   NTE_BAD_SIGNATUREr   
isinstancer   r
   OSError)resultcodeerror_strings      r'   r   r   I   sO     "D,}...344lG,"<0
,
r)   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(Z0y))*r   zoscrypto temporary DSS keyset         ,   (      z@Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Providerz5Microsoft Enhanced RSA and AES Cryptographic Providerr	   l      ` i  i  i  i  i  if  ih  if  i	f  if  if  if  if  i "  i $  i   r                  @   i 	i 	iRSA1iRSA2iDSS1iDSS2N)1__name__
__module____qualname__r   r   r   X509_PUBLIC_KEY_INFOPKCS_PRIVATE_KEY_INFOX509_DSS_SIGNATURECRYPT_NO_SALTr   r   CRYPT_EXPORTABLEr   r   CALG_MD5	CALG_SHA1CALG_SHA_256CALG_SHA_384CALG_SHA_512CALG_RC2CALG_RC4CALG_DESCALG_3DES_112	CALG_3DESCALG_AES_128CALG_AES_192CALG_AES_256CALG_DSS_SIGNCALG_RSA_SIGNCALG_RSA_KEYXCRYPT_MODE_CBCPKCS5_PADDINGCUR_BLOB_VERSIONPUBLICKEYBLOBPRIVATEKEYBLOBPLAINTEXTKEYBLOBKP_IV
KP_PADDINGKP_MODEKP_EFFECTIVE_KEYLEN
CRYPT_OAEPr/   r   AT_SIGNATURERSA1RSA2DSS1DSS2 r)   r'   r   r   b   s    4NLKM[Q O$HILLLHHHMILLLMMMNMMNEJGJ#JLDDDDr)   r   )   r	   zAMicrosoft Enhanced RSA and AES Cryptographic Provider (Prototype))T)
__future__r   r   r   r   sys r   _decoder
   errorsr   _ffir   r   r   _typesr   _advapi32_cffir   r   _advapi32_ctypes__all__getwindowsversion_gwv_win_version_infor(   r-   r   r   r   rj   r)   r'   <module>ry      s    R R 
    # $ $ 5F?335 s!Wd1g& $*N
 2> >B (kM% r)   