
     h                     :   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_        dS dS )    )unicode_literalsdivisionabsolute_importprint_functionN   )ffi   )_try_decode)SignatureError)newunwrapnull)str_clscffi)advapi32	get_error)r   Advapi32Consthandle_errorTc                 2   | t           j        k    rt           j        }n/| t           j        k    rt           j        }nt          d| z            |s| t           j        k    rt                      }t           j        }nt           j        }t           j	        }t          t          d          }t          j        ||| ||          }|s:t                      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          S/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/oscrypto/_win/_advapi32.pyopen_context_handler(      s   =444%2	]5	5	5%19HDEEE  .h-"BBB1&5- >::

' C  
9;;q>]%===+"
 
 ()))    c                 N    t          j        | d          }t          |           d S )Nr   )r   CryptReleaseContextr   )handler&   s     r'   close_context_handler-   D   s(    

&vq
1
1Cr)   c                     | rdS 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   si      "D,}...3444lG,, 1"<0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(Z0d)S )*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DDDr)   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 R R R R R R R R R R 



                   # # # # # # $ $ $ $ $ $ $ $ $ $      355F??33333333355555555   s!Wd1g& $* $* $* $*N  
     2> > > > > > > >B (kM%%% r)   