--- /dev/null
+from typing import IO, Pattern, Type, TypeVar
+
+from paramiko.message import Message
+
+OPENSSH_AUTH_MAGIC: bytes = ...
+
+def _unpad_openssh(data: bytes) -> bytes: ...
+
+_PK = TypeVar("_PK", bound=PKey)
+
+class PKey:
+ public_blob: PublicBlob | None
+ BEGIN_TAG: Pattern[str]
+ END_TAG: Pattern[str]
+ def __init__(self, msg: Message | None = ..., data: str | None = ...) -> None: ...
+ def asbytes(self) -> bytes: ...
+ def __cmp__(self, other: object) -> int: ...
+ def __eq__(self, other: object) -> bool: ...
+ def get_name(self) -> str: ...
+ def get_bits(self) -> int: ...
+ def can_sign(self) -> bool: ...
+ def get_fingerprint(self) -> bytes: ...
+ def get_base64(self) -> str: ...
+ def sign_ssh_data(self, data: bytes) -> Message: ...
+ def verify_ssh_sig(self, data: bytes, msg: Message) -> bool: ...
+ @classmethod
+ def from_private_key_file(cls: Type[_PK], filename: str, password: str | None = ...) -> _PK: ...
+ @classmethod
+ def from_private_key(cls: Type[_PK], file_obj: IO[str], password: str | None = ...) -> _PK: ...
+ def write_private_key_file(self, filename: str, password: str | None = ...) -> None: ...
+ def write_private_key(self, file_obj: IO[str], password: str | None = ...) -> None: ...
+ def load_certificate(self, value: Message | str) -> None: ...
+
+class PublicBlob:
+ key_type: str
+ key_blob: str
+ comment: str
+ def __init__(self, type_: str, blob: bytes, comment: str | None = ...) -> None: ...
+ @classmethod
+ def from_file(cls, filename: str) -> PublicBlob: ...
+ @classmethod
+ def from_string(cls, string: str) -> PublicBlob: ...
+ @classmethod
+ def from_message(cls, message: Message) -> PublicBlob: ...
+ def __eq__(self, other: object) -> bool: ...
+ def __ne__(self, other: object) -> bool: ...