from typing import Any, Optional
from .pubkey import pubkey

class _DSAobj(pubkey):
    keydata = ...  # type: Any
    implementation = ...  # type: Any
    key = ...  # type: Any
    def __init__(self, implementation, key) -> None: ...
    def __getattr__(self, attrname): ...
    def sign(self, M, K): ...
    def verify(self, M, signature): ...
    def has_private(self): ...
    def size(self): ...
    def can_blind(self): ...
    def can_encrypt(self): ...
    def can_sign(self): ...
    def publickey(self): ...

class DSAImplementation:
    error = ...  # type: Any
    def __init__(self, **kwargs) -> None: ...
    def generate(self, bits, randfunc: Optional[Any] = ..., progress_func: Optional[Any] = ...): ...
    def construct(self, tup): ...

generate = ...  # type: Any
construct = ...  # type: Any
error = ...  # type: Any
