]> Cypherpunks.ru repositories - pygost.git/blobdiff - pygost/stubs/pygost/gost3410.pyi
Human readable curve name
[pygost.git] / pygost / stubs / pygost / gost3410.pyi
index f2071cc4f3040813443b00902fb809ed0b34b7ae..8f0dcb8e881d50089eb2029c7bdad2f62510f79f 100644 (file)
@@ -4,7 +4,6 @@ from typing import Tuple
 
 DEFAULT_CURVE = ...  # type: GOST3410Curve
 CURVES = ...  # type: Dict[str, GOST3410Curve]
-MODE2SIZE = ...  # type: Dict[int, int]
 PublicKey = Tuple[int, int]
 
 
@@ -15,8 +14,10 @@ class GOST3410Curve(object):
     b = ...  # type: int
     x = ...  # type: int
     y = ...  # type: int
+    cofactor = ...  # type: int
     e = ...  # type: int
     d = ...  # type: int
+    name = ...  # type: str
 
     def __init__(
             self,
@@ -26,39 +27,43 @@ class GOST3410Curve(object):
             b: int,
             x: int,
             y: int,
+            cofactor: int = 1,
             e: int = None,
             d: int = None,
+            name: str = None,
     ) -> None: ...
 
     def pos(self, v: int) -> int: ...
 
-    def exp(self, degree: int, x: int=..., y: int=...) -> int: ...
+    def exp(self, degree: int, x: int = ..., y: int = ...) -> int: ...
 
     def st(self) -> Tuple[int, int]: ...
 
+    @property
+    def point_size(self) -> int: ...
+
+    def contains(self, point: Tuple[int, int]) -> bool: ...
+
 
 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) -> bytes: ...
 
 
-def verify(
-    curve: GOST3410Curve,
-    pub: PublicKey,
-    digest: bytes,
-    signature: bytes,
-    mode: int=...,
-) -> bool: ...
+def verify(curve: GOST3410Curve, pub: PublicKey, digest: bytes, signature: bytes) -> bool: ...
 
 
 def prv_unmarshal(prv: bytes) -> int: ...
 
 
-def pub_marshal(pub: PublicKey, mode: int=...) -> bytes: ...
+def prv_marshal(curve: GOST3410Curve, prv: int) -> bytes: ...
+
+
+def pub_marshal(pub: PublicKey) -> bytes: ...
 
 
-def pub_unmarshal(pub: bytes, mode: int=...) -> PublicKey: ...
+def pub_unmarshal(pub: bytes) -> PublicKey: ...
 
 
 def uv2xy(curve: GOST3410Curve, u: int, v: int) -> Tuple[int, int]: ...