§
    ¢”j—  ã                   óª   — d dl mZmZmZmZ ddlmZ ddlmZm	Z	m
Z
  e¦   «         dk    rddlmZ nddlmZ g d¢Zdd	„Zd
„ Zd„ Z G d„ d¦  «        ZdS )é    )Úunicode_literalsÚdivisionÚabsolute_importÚprint_functioné   )Úffi)ÚnewÚnullÚunwrapÚcffié   )Úbcrypt)r   ÚBcryptConstÚclose_alg_handleÚhandle_errorÚopen_alg_handlec                 ó®   — t          t          d¦  «        }t          j        || t          ¦   «         |¦  «        }t	          |¦  «         t          |¦  «        S )NzBCRYPT_ALG_HANDLE *)r	   r   ÚBCryptOpenAlgorithmProviderr
   r   r   )ÚconstantÚflagsÚhandle_pointerÚress       úa/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/oscrypto/_win/_cng.pyr   r      sH   € Ý�Ð!6Ñ7Ô7€NÝ
Ô
,¨^¸XÅtÁvÄvÈuÑ
UÔ
U€CÝ�ÑÔÐå�.Ñ!Ô!Ð!ó    c                 óN   — t          j        | d¦  «        }t          |¦  «         d S )Nr   )r   ÚBCryptCloseAlgorithmProviderr   )Úhandler   s     r   r   r      s(   € Ý
Ô
-¨f°aÑ
8Ô
8€CÝ�ÑÔÐÐÐr   c                 ó&  — | dk    rdS t           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        d	t           j        d
i}d| z  }| �| |v r|d||          z   z  }t          |¦  «        ‚)zÉ
    Extracts the last Windows error message into a python unicode string

    :param error_num:
        The number to get the error string for

    :return:
        A unicode string error message
    r   NzThe object was not foundz8An invalid parameter was passed to a service or functionz_Not enough virtual memory or paging file quota is available to complete the specified operationzAn invalid HANDLE was specifiedz&The cryptographic signature is invalidzThe request is not supportedz,The buffer is too small to contain the entryz=The size of the buffer is invalid for the specified operationzNTSTATUS error 0x%0.2Xz: )
r   ÚSTATUS_NOT_FOUNDÚSTATUS_INVALID_PARAMETERÚSTATUS_NO_MEMORYÚSTATUS_INVALID_HANDLEÚSTATUS_INVALID_SIGNATUREÚSTATUS_NOT_SUPPORTEDÚSTATUS_BUFFER_TOO_SMALLÚSTATUS_INVALID_BUFFER_SIZEÚOSError)Ú	error_numÚmessagesÚoutputs      r   r   r   #   sŸ   € ð �A‚~€~Øˆõ 	Ô$Ð&@ÝÔ,Ð.hÝÔ$ØmåÔ)Ð+LÝÔ,Ð.VÝÔ(Ð*HÝÔ+Ð-[ÝÔ.Ð0oð€Hð &¨	Ñ1€FàÐ ¨hÐ!6Ð!6Ø�$˜ )Ô,Ñ,Ñ,ˆå
�&‰/Œ/Ð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)Z1d*Z2d+Z3d,Z4d-Z5d.Z6d/Z7d0Z8d1Z9d2Z:d3Z;d4Z<d5Z=d6Z>dZ?dZ@d7S )8r   ÚRNGÚ	KeyLengthÚEffectiveKeyLengthÚRSAPRIVATEBLOBÚRSAFULLPRIVATEBLOBÚRSAPUBLICBLOBÚDSAPRIVATEBLOBÚDSAPUBLICBLOBÚECCPRIVATEBLOBÚECCPUBLICBLOBiRSA1iRSA2iRSA3iDSPBiDSPViDPB2iDPV2r   r   r   é   iECS1iECS2iECS3iECS4iECS5iECS6l   %   l       l       l       l       l   »    l   #    l      iKDBMÚKeyDataBlobé   Ú3DESÚ3DES_112ÚAESÚDESÚRC2ÚRC4ÚDSAÚ
ECDSA_P256Ú
ECDSA_P384Ú
ECDSA_P521ÚRSAÚMD5ÚSHA1ÚSHA256ÚSHA384ÚSHA512N)AÚ__name__Ú
__module__Ú__qualname__ÚBCRYPT_RNG_ALGORITHMÚBCRYPT_KEY_LENGTHÚBCRYPT_EFFECTIVE_KEY_LENGTHÚBCRYPT_RSAPRIVATE_BLOBÚBCRYPT_RSAFULLPRIVATE_BLOBÚBCRYPT_RSAPUBLIC_BLOBÚBCRYPT_DSA_PRIVATE_BLOBÚBCRYPT_DSA_PUBLIC_BLOBÚBCRYPT_ECCPRIVATE_BLOBÚBCRYPT_ECCPUBLIC_BLOBÚBCRYPT_RSAPUBLIC_MAGICÚBCRYPT_RSAPRIVATE_MAGICÚBCRYPT_RSAFULLPRIVATE_MAGICÚBCRYPT_DSA_PUBLIC_MAGICÚBCRYPT_DSA_PRIVATE_MAGICÚBCRYPT_DSA_PUBLIC_MAGIC_V2ÚBCRYPT_DSA_PRIVATE_MAGIC_V2ÚDSA_HASH_ALGORITHM_SHA1ÚDSA_HASH_ALGORITHM_SHA256ÚDSA_HASH_ALGORITHM_SHA512ÚDSA_FIPS186_2ÚDSA_FIPS186_3ÚBCRYPT_NO_KEY_VALIDATIONÚBCRYPT_ECDSA_PUBLIC_P256_MAGICÚBCRYPT_ECDSA_PRIVATE_P256_MAGICÚBCRYPT_ECDSA_PUBLIC_P384_MAGICÚBCRYPT_ECDSA_PRIVATE_P384_MAGICÚBCRYPT_ECDSA_PUBLIC_P521_MAGICÚBCRYPT_ECDSA_PRIVATE_P521_MAGICÚSTATUS_SUCCESSr   r    r!   r"   r#   r$   r%   r&   ÚBCRYPT_KEY_DATA_BLOB_MAGICÚBCRYPT_KEY_DATA_BLOB_VERSION1ÚBCRYPT_KEY_DATA_BLOBÚBCRYPT_PAD_PKCS1ÚBCRYPT_PAD_OAEPÚBCRYPT_PAD_PSSÚBCRYPT_3DES_ALGORITHMÚBCRYPT_3DES_112_ALGORITHMÚBCRYPT_AES_ALGORITHMÚBCRYPT_DES_ALGORITHMÚBCRYPT_RC2_ALGORITHMÚBCRYPT_RC4_ALGORITHMÚBCRYPT_DSA_ALGORITHMÚBCRYPT_ECDSA_P256_ALGORITHMÚBCRYPT_ECDSA_P384_ALGORITHMÚBCRYPT_ECDSA_P521_ALGORITHMÚBCRYPT_RSA_ALGORITHMÚBCRYPT_MD5_ALGORITHMÚBCRYPT_SHA1_ALGORITHMÚBCRYPT_SHA256_ALGORITHMÚBCRYPT_SHA384_ALGORITHMÚBCRYPT_SHA512_ALGORITHMÚBCRYPT_ALG_HANDLE_HMAC_FLAGÚBCRYPT_BLOCK_PADDING© r   r   r   r   F   s  € € € € € Ø Ðà#ÐØ"6Ðà-ÐØ!5ÐØ+ÐØ.ÐØ,ÐØ-ÐØ+Ðà'ÐØ(ÐØ",Ðà(ÐØ)ÐØ!+ÐØ",ÐàÐØ !ÐØ !Ðà€MØ€Mà Ðà%/Ð"Ø&0Ð#Ø%/Ð"Ø&0Ð#Ø%/Ð"Ø&0Ð#à€NØ!ÐØ)ÐØ!ÐØ&ÐØ)ÐØ%ÐØ(ÐØ!+Ðà!+ÐØ$.Ð!Ø(Ðà!ÐØ €OØ€Nà"ÐØ *ÐØ ÐØ ÐØ ÐØ Ðà ÐØ".ÐØ".ÐØ".ÐØ Ðà ÐØ"ÐØ&ÐØ&ÐØ&Ðà",Ðà%ÐÐÐr   r   N)r   )Ú
__future__r   r   r   r   Ú r   Ú_ffir	   r
   r   Ú	_cng_cffir   Ú_cng_ctypesÚ__all__r   r   r   r   r‚   r   r   ú<module>r‰      s  ðà RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ Rà Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $à€3�5„5ˆF‚?€?Ø!Ð!Ð!Ð!Ð!Ð!Ð!à#Ð#Ð#Ð#Ð#Ð#ðð ð €ð"ð "ð "ð "ðð ð ð
 ð  ð  ðFN&ð N&ð N&ð N&ð N&ñ N&ô N&ð N&ð N&ð N&r   