1 from typing import IO, Any, Callable, Sequence, Type
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
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: ...
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: ...
25 verifying_key: EllipticCurvePublicKey
26 signing_key: EllipticCurvePrivateKey
28 ecdsa_curve: _ECDSACurve | None
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 = ...,
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: ...
52 cls, curve: EllipticCurve = ..., progress_func: Callable[..., Any] | None = ..., bits: int | None = ...