File: //var/opt/nydus/ops/oscrypto/_win/__pycache__/_advapi32.cpython-39.pyc
a
�,�h� � @ s� d dl mZmZmZmZ d dlZddlmZ ddlm Z ddl
mZ ddlm
Z
mZmZ dd lmZ e� d
kr�ddlmZmZ nddlmZmZ g d�Ze�� Zed ed fZddd�Zdd� Zdd� ZG dd� d�Zedkr�de_dS )� )�unicode_literals�division�absolute_import�print_functionN� )�ffi� )�_try_decode)�SignatureError)�new�unwrap�null)�str_clsZcffi)�advapi32� get_error)r �
Advapi32Const�handle_errorTc C s� | t jkrt j}n| t jkr$t j}ntd| ��|s>| t jkrLt� }t j}nt j}t j }t
td�}t�||| ||�}|s�t
� d t jkr�t�||| |d�}t|� t|�S )NzInvalid provider specified: %szHCRYPTPROV *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 ZCryptAcquireContextWr �
NTE_EXISTSr r )�providerZverify_onlyZ
provider_typeZcontainer_name�flagsZcontext_handle_pointer�res� r �H/opt/nydus/tmp/pip-target-wkfpz8uv/lib/python/oscrypto/_win/_advapi32.py�open_context_handle s8
��r! c C s t �| d�}t|� d S )Nr )r ZCryptReleaseContextr )�handler r r r �close_context_handleD s r# c C sB | rdS t � \}}|tjkr$td��t|t�s6t|�}t|��dS )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
NzSignature is invalid)r r �NTE_BAD_SIGNATUREr
�
isinstancer r �OSError)�result�codeZerror_stringr r r r I s
r c @ s� e Zd ZdZdZdZdZdZdZdZ dZ
d Zd
ZdZ
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd
Zd
Z dZ!dZ"dZ#dZ$d
Z%dZ&d Z'd!Z(d"Z)d#Z*d$Z+dZ,d%Z-d&Z.d'Z/d(Z0d)S )*r zoscrypto temporary DSS keyset� �
� �, �( � z@Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Providerz5Microsoft Enhanced RSA and AES Cryptographic Providerr l ` i� i� i� i
� i� if ih if i f if if if if i "