X-Git-Url: http://www.git.cypherpunks.ru/?p=pygost.git;a=blobdiff_plain;f=pygost%2Fstubs%2Fpygost%2Fgost3410.pyi;h=4be8b1d63ecd13653a46cfac7271f56a342483f3;hp=4b4ea5d16da465a7973e89a0ee7231570053bc8e;hb=2bb1a163d32e4167e6904ff3c6b4cf64ea7287bb;hpb=0a34a92f6a3deb1ae2f007ead403b3cb40493628 diff --git a/pygost/stubs/pygost/gost3410.pyi b/pygost/stubs/pygost/gost3410.pyi index 4b4ea5d..4be8b1d 100644 --- a/pygost/stubs/pygost/gost3410.pyi +++ b/pygost/stubs/pygost/gost3410.pyi @@ -2,8 +2,9 @@ from typing import Dict from typing import Tuple -DEFAULT_CURVE = ... # type: str -CURVE_PARAMS = ... # type: Dict[str, Tuple[bytes, bytes, bytes, bytes, bytes, bytes]] +DEFAULT_CURVE = ... # type: GOST3410Curve +CURVES = ... # type: Dict[str, GOST3410Curve] +MODE2SIZE = ... # type: Dict[int, int] PublicKey = Tuple[int, int] @@ -14,18 +15,40 @@ class GOST3410Curve(object): b = ... # type: int x = ... # type: int y = ... # type: int + cofactor = ... # type: int + e = ... # type: int + d = ... # type: int def __init__( - self, p: bytes, q: bytes, a: bytes, b: bytes, x: bytes, y: bytes + self, + p: int, + q: int, + a: int, + b: int, + x: int, + y: int, + cofactor: int = 1, + e: int = None, + d: int = None, ) -> None: ... + def pos(self, v: int) -> int: ... + def exp(self, degree: int, x: int=..., y: int=...) -> int: ... + def st(self) -> Tuple[int, int]: ... + def public_key(curve: GOST3410Curve, prv: int) -> PublicKey: ... -def sign(curve: GOST3410Curve, prv: int, digest: bytes, mode: int=...) -> bytes: ... +def sign( + curve: GOST3410Curve, + prv: int, + digest: bytes, + rand: bytes=None, + mode: int=..., +) -> bytes: ... def verify( @@ -44,3 +67,9 @@ def pub_marshal(pub: PublicKey, mode: int=...) -> bytes: ... def pub_unmarshal(pub: bytes, mode: int=...) -> PublicKey: ... + + +def uv2xy(curve: GOST3410Curve, u: int, v: int) -> Tuple[int, int]: ... + + +def xy2uv(curve: GOST3410Curve, x: int, y: int) -> Tuple[int, int]: ...