from typing import Dict, Tuple, Callable, Union, Optional __all__ = ['generate', 'construct', 'DsaKey', 'import_key' ] RNG = Callable[[int], bytes] class DsaKey(object): def __init__(self, key_dict: Dict[str, int]) -> None: ... def has_private(self) -> bool: ... def can_encrypt(self) -> bool: ... # legacy def can_sign(self) -> bool: ... # legacy def publickey(self) -> DsaKey: ... def __eq__(self, other: object) -> bool: ... def __ne__(self, other: object) -> bool: ... def __getstate__(self) -> None: ... def domain(self) -> Tuple[int, int, int]: ... def __repr__(self) -> str: ... def __getattr__(self, item: str) -> int: ... def export_key(self, format: Optional[str]="PEM", pkcs8: Optional[bool]=None, passphrase: Optional[str]=None, protection: Optional[str]=None, randfunc: Optional[RNG]=None) -> bytes: ... # Backward-compatibility exportKey = export_key def generate(bits: int, randfunc: Optional[RNG]=None, domain: Optional[Tuple[int, int, int]]=None) -> DsaKey: ... def construct(tup: Union[Tuple[int, int, int, int], Tuple[int, int, int, int, int]], consistency_check: Optional[bool]=True) -> DsaKey: ... def import_key(extern_key: Union[str, bytes], passphrase: Optional[str]=None) -> DsaKey: ... # Backward compatibility importKey = import_key oid: str