massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-pyright / node_modules / pyright / dist / typeshed-fallback / stubs / paramiko / paramiko / ecdsakey.pyi
1 from typing import IO, Any, Callable, Sequence, Type
2
3 from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurve, EllipticCurvePrivateKey, EllipticCurvePublicKey
4 from cryptography.hazmat.primitives.hashes import HashAlgorithm
5 from paramiko.message import Message
6 from paramiko.pkey import PKey
7
8 class _ECDSACurve:
9     nist_name: str
10     key_length: int
11     key_format_identifier: str
12     hash_object: Type[HashAlgorithm]
13     curve_class: Type[EllipticCurve]
14     def __init__(self, curve_class: Type[EllipticCurve], nist_name: str) -> None: ...
15
16 class _ECDSACurveSet:
17     ecdsa_curves: Sequence[_ECDSACurve]
18     def __init__(self, ecdsa_curves: Sequence[_ECDSACurve]) -> None: ...
19     def get_key_format_identifier_list(self) -> list[str]: ...
20     def get_by_curve_class(self, curve_class: Type[Any]) -> _ECDSACurve | None: ...
21     def get_by_key_format_identifier(self, key_format_identifier: str) -> _ECDSACurve | None: ...
22     def get_by_key_length(self, key_length: int) -> _ECDSACurve | None: ...
23
24 class ECDSAKey(PKey):
25     verifying_key: EllipticCurvePublicKey
26     signing_key: EllipticCurvePrivateKey
27     public_blob: None
28     ecdsa_curve: _ECDSACurve | None
29     def __init__(
30         self,
31         msg: Message | None = ...,
32         data: bytes | None = ...,
33         filename: str | None = ...,
34         password: str | None = ...,
35         vals: tuple[EllipticCurvePrivateKey, EllipticCurvePublicKey] | None = ...,
36         file_obj: IO[str] | None = ...,
37         validate_point: bool = ...,
38     ) -> None: ...
39     @classmethod
40     def supported_key_format_identifiers(cls: Any) -> list[str]: ...
41     def asbytes(self) -> bytes: ...
42     def __hash__(self) -> int: ...
43     def get_name(self) -> str: ...
44     def get_bits(self) -> int: ...
45     def can_sign(self) -> bool: ...
46     def sign_ssh_data(self, data: bytes) -> Message: ...
47     def verify_ssh_sig(self, data: bytes, msg: Message) -> bool: ...
48     def write_private_key_file(self, filename: str, password: str | None = ...) -> None: ...
49     def write_private_key(self, file_obj: IO[str], password: str | None = ...) -> None: ...
50     @classmethod
51     def generate(
52         cls, curve: EllipticCurve = ..., progress_func: Callable[..., Any] | None = ..., bits: int | None = ...
53     ) -> ECDSAKey: ...