35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from typing import Optional, Union, Callable, Any, overload
|
|
from typing_extensions import Protocol
|
|
|
|
from Cryptodome.PublicKey.RSA import RsaKey
|
|
|
|
class HashLikeClass(Protocol):
|
|
digest_size : int
|
|
def new(self, data: Optional[bytes] = ...) -> Any: ...
|
|
|
|
class HashLikeModule(Protocol):
|
|
digest_size : int
|
|
@staticmethod
|
|
def new(data: Optional[bytes] = ...) -> Any: ...
|
|
|
|
HashLike = Union[HashLikeClass, HashLikeModule]
|
|
|
|
Buffer = Union[bytes, bytearray, memoryview]
|
|
|
|
class PKCS1OAEP_Cipher:
|
|
def __init__(self,
|
|
key: RsaKey,
|
|
hashAlgo: HashLike,
|
|
mgfunc: Callable[[bytes, int], bytes],
|
|
label: Buffer,
|
|
randfunc: Callable[[int], bytes]) -> None: ...
|
|
def can_encrypt(self) -> bool: ...
|
|
def can_decrypt(self) -> bool: ...
|
|
def encrypt(self, message: Buffer) -> bytes: ...
|
|
def decrypt(self, ciphertext: Buffer) -> bytes: ...
|
|
|
|
def new(key: RsaKey,
|
|
hashAlgo: Optional[HashLike] = ...,
|
|
mgfunc: Optional[Callable[[bytes, int], bytes]] = ...,
|
|
label: Optional[Buffer] = ...,
|
|
randfunc: Optional[Callable[[int], bytes]] = ...) -> PKCS1OAEP_Cipher: ...
|