/
var
/
opt
/
nydus
/
ops
/
oscrypto
/
_win
/
__pycache__
/
up file
home
� ;�j� � � � d dl mZmZmZmZ ddlmZ ddlmZm Z m Z e� dk( rddlmZ nddl mZ g d�Zdd �Zd � Zd� Z G d� d � Zy)� )�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 )NzBCRYPT_ALG_HANDLE *)r r �BCryptOpenAlgorithmProviderr r r )�constant�flags�handle_pointer�ress �C/opt/nydus/tmp/pip-target-hb7welcc/lib/python/oscrypto/_win/_cng.pyr r s: � ���!6�7�N� � ,� ,�^�X�t�v�u� U�C�����.�!�!� c �F � t j | d� }t |� y )Nr )r �BCryptCloseAlgorithmProviderr )�handler s r r r s � � � -� -�f�a� 8�C���r c �T � | dk( ryt j dt j dt j dt j dt j dt j dt 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 NzThe 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 operationzAn invalid HANDLE was specifiedz&The cryptographic signature is invalidzThe request is not supportedz,The buffer is too small to contain the entryz=The size of the buffer is invalid for the specified operationzNTSTATUS 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��$��)�,�,�,�� �&�/�r c � � e Zd ZdZdZdZdZdZdZdZ dZ d Zd ZdZ dZd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$d Z%d!Z&d"Z'd#Z(d$Z)dZ*d%Z+dZ,d&Z-dZ.d'Z/d(Z0d)Z1d*Z2d+Z3d,Z4d-Z5d.Z6d/Z7d0Z8d1Z9d2Z:d3Z;d4Z<d5Z=d6Z>dZ?dZ@y7)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"