File: //lib64/python3.6/site-packages/M2Crypto/__pycache__/EVP.cpython-36.pyc
3
YݧZh6 � @ s
d dl mZ d dlZd dlmZmZmZmZmZ ej rJd dl
mZmZm
Z
ejd�ZG dd� de�Zeje� dd � ZG d
d� de�ZG dd
� d
e�Zddd�ZG dd� de�ZG dd� de�Zejfdd�Zejfdd�Zejfdd�Zejfdd�Zejfdd�ZdS ) � )�absolute_importN)�BIO�Err�RSA�m2�util)�AnyStr�Optional�CallableZEVPc @ s e Zd ZdS )�EVPErrorN)�__name__�
__module__�__qualname__� r r �/usr/lib64/python3.6/EVP.pyr s r c C s t j| |||�S )a%
Derive a key from password using PBKDF2 algorithm specified in RFC 2898.
:param password: Derive the key from this password.
:param salt: Salt.
:param iter: Number of iterations to perform.
:param keylen: Length of key to produce.
:return: Key.
)r Zpkcs5_pbkdf2_hmac_sha1)Zpassword�salt�iterZkeylenr r r �pbkdf2 s r c @ s: e Zd ZdZejZdd� Zdd� Zdd� Z dd � Z
e
Zd
S )�
MessageDigestz
Message Digest
c C sH t t|d �}|d kr"tj|�| _n|� | _tj� | _tj| j| j� d S )N)�getattrr Zget_digestbyname�md�
md_ctx_new�ctxZdigest_init)�self�algor r r r �__init__, s
zMessageDigest.__init__c C s t | dd �r| j| j� d S )Nr )r �m2_md_ctx_freer )r r r r �__del__8 s zMessageDigest.__del__c C s t j| j|�S )zw
Add data to be digested.
:return: -1 for Python error, 1 for success, 0 for OpenSSL failure.
)r Z
digest_updater )r �datar r r �update= s zMessageDigest.updatec C s t j| j�S )N)r Zdigest_finalr )r r r r �finalF s zMessageDigest.finalN)r r
r �__doc__r �md_ctx_freer r r r r �digestr r r r r &