Sindbad~EG File Manager
�
�� hjW � � � g d �Z ddlZddlZddlZddlmZmZmZmZm Z ddl
mZ ddlm
Z
mZ ddlmZ ddlmZmZmZmZmZ ddlmZ dd lmZmZmZ dd
lmZmZm Z G d� de!� � Z"d
� Z#dd�Z$dd�Z%d� Z&d� Z'd� Z(d� Z)d� Z*dd�Z+e+Z,dZ-dS ))�generate� construct�DsaKey�
import_key� N)�bchr�bord�tobytes�tostr�
iter_range)�Random)�PKCS8�PEM)�SHA256)� DerObject�DerSequence�
DerInteger�DerObjectId�DerBitString)�Integer)�test_probable_prime� COMPOSITE�PROBABLY_PRIME)�_expand_subject_public_key_info�_create_subject_public_key_info� _extract_subject_public_key_infoc � � e Zd ZdZg d�Zd� Zd� Zd� Zd� Zd� Z d� Z
d � Zd
� Zd� Z
d� Zd
� Zd� Zd� Z dd�ZeZeZd� Zd� Zd� Zd� Zd� Zd� Zd� ZdS )r a� Class defining an actual DSA key.
Do not instantiate directly.
Use :func:`generate`, :func:`construct` or :func:`import_key` instead.
:ivar p: DSA modulus
:vartype p: integer
:ivar q: Order of the subgroup
:vartype q: integer
:ivar g: Generator
:vartype g: integer
:ivar y: Public key
:vartype y: integer
:ivar x: Private key
:vartype x: integer
:undocumented: exportKey, publickey
��y�g�p�q�xc � � t |� � � � � }t d� � }|� |� � s"t dt ||z
� � z � � �||z
}|rB|t d� � k r/t dt |t d� � z
� � z � � �t |� � | _ d S )N�r r r r! z$Some DSA components are missing = %s�r"