B
    `                 @   s|   d dl Z d dlmZ d dlmZmZmZmZmZ d dl	m
Z
 ee jeef dddZeeedd	d
ZG dd deZdS )    N)utils)	DERReaderINTEGERSEQUENCE
encode_derencode_der_integer)hashes)	signaturereturnc          	   C   s>   t | t&}|t }|t }||fS Q R X d S )N)r   Zread_single_elementr   Zread_elementr   Z
as_integer)r	   seqrs r   ^/home/dcms/DCMS/lib/python3.7/site-packages/cryptography/hazmat/primitives/asymmetric/utils.pydecode_dss_signature   s    r   )r   r   r
   c             C   s    t tt tt| t tt|S )N)r   r   r   r   )r   r   r   r   r   encode_dss_signature   s    r   c               @   s&   e Zd ZejdddZedZdS )	Prehashed)	algorithmc             C   s&   t |tjstd|| _|j| _d S )Nz#Expected instance of HashAlgorithm.)
isinstancer   HashAlgorithm	TypeError
_algorithmdigest_size_digest_size)selfr   r   r   r   __init__#   s    zPrehashed.__init__r   N)	__name__
__module____qualname__r   r   r   r   Zread_only_propertyr   r   r   r   r   r   "   s   r   )typingZcryptographyr   Zcryptography.hazmat._derr   r   r   r   r   Zcryptography.hazmat.primitivesr   bytesTupleintr   r   objectr   r   r   r   r   <module>   s   