1 from abc import ABCMeta, abstractmethod
2 from typing import ClassVar
4 from cryptography.hazmat.backends.interfaces import EllipticCurveBackend
5 from cryptography.hazmat.primitives.asymmetric import AsymmetricVerificationContext
6 from cryptography.hazmat.primitives.asymmetric.utils import Prehashed
7 from cryptography.hazmat.primitives.hashes import HashAlgorithm
8 from cryptography.hazmat.primitives.serialization import Encoding, KeySerializationEncryption, PrivateFormat, PublicFormat
9 from cryptography.x509 import ObjectIdentifier
11 class EllipticCurve(metaclass=ABCMeta):
14 def key_size(self) -> int: ...
17 def name(self) -> str: ...
19 class BrainpoolP256R1(EllipticCurve):
23 class BrainpoolP384R1(EllipticCurve):
27 class BrainpoolP512R1(EllipticCurve):
31 class SECP192R1(EllipticCurve):
35 class SECP224R1(EllipticCurve):
39 class SECP256K1(EllipticCurve):
43 class SECP256R1(EllipticCurve):
47 class SECP384R1(EllipticCurve):
51 class SECP521R1(EllipticCurve):
55 class SECT163K1(EllipticCurve):
59 class SECT163R2(EllipticCurve):
63 class SECT233K1(EllipticCurve):
67 class SECT233R1(EllipticCurve):
71 class SECT283K1(EllipticCurve):
75 class SECT283R1(EllipticCurve):
79 class SECT409K1(EllipticCurve):
83 class SECT409R1(EllipticCurve):
87 class SECT571K1(EllipticCurve):
91 class SECT571R1(EllipticCurve):
95 class EllipticCurveOID(object):
96 SECP192R1: ClassVar[ObjectIdentifier]
97 SECP224R1: ClassVar[ObjectIdentifier]
98 SECP256K1: ClassVar[ObjectIdentifier]
99 SECP256R1: ClassVar[ObjectIdentifier]
100 SECP384R1: ClassVar[ObjectIdentifier]
101 SECP521R1: ClassVar[ObjectIdentifier]
102 BRAINPOOLP256R1: ClassVar[ObjectIdentifier]
103 BRAINPOOLP384R1: ClassVar[ObjectIdentifier]
104 BRAINPOOLP512R1: ClassVar[ObjectIdentifier]
105 SECT163K1: ClassVar[ObjectIdentifier]
106 SECT163R2: ClassVar[ObjectIdentifier]
107 SECT233K1: ClassVar[ObjectIdentifier]
108 SECT233R1: ClassVar[ObjectIdentifier]
109 SECT283K1: ClassVar[ObjectIdentifier]
110 SECT283R1: ClassVar[ObjectIdentifier]
111 SECT409K1: ClassVar[ObjectIdentifier]
112 SECT409R1: ClassVar[ObjectIdentifier]
113 SECT571K1: ClassVar[ObjectIdentifier]
114 SECT571R1: ClassVar[ObjectIdentifier]
116 class EllipticCurvePrivateKey(metaclass=ABCMeta):
119 def curve(self) -> EllipticCurve: ...
122 def key_size(self) -> int: ...
124 def exchange(self, algorithm: ECDH, peer_public_key: EllipticCurvePublicKey) -> bytes: ...
126 def public_key(self) -> EllipticCurvePublicKey: ...
128 def sign(self, data: bytes, signature_algorithm: EllipticCurveSignatureAlgorithm) -> bytes: ...
130 class EllipticCurvePrivateKeyWithSerialization(EllipticCurvePrivateKey):
133 self, encoding: Encoding, format: PrivateFormat, encryption_algorithm: KeySerializationEncryption
136 def private_numbers(self) -> EllipticCurvePrivateNumbers: ...
138 class EllipticCurvePrivateNumbers(object):
140 def private_value(self) -> int: ...
142 def public_numbers(self) -> EllipticCurvePublicNumbers: ...
143 def __init__(self, private_value: int, public_numbers: EllipticCurvePublicNumbers) -> None: ...
144 def private_key(self, backend: EllipticCurveBackend | None = ...) -> EllipticCurvePrivateKey: ...
146 class EllipticCurvePublicKey(metaclass=ABCMeta):
149 def curve(self) -> EllipticCurve: ...
152 def key_size(self) -> int: ...
154 def from_encoded_point(cls, curve: EllipticCurve, data: bytes) -> EllipticCurvePublicKey: ...
156 def public_bytes(self, encoding: Encoding, format: PublicFormat) -> bytes: ...
158 def public_numbers(self) -> EllipticCurvePublicNumbers: ...
161 self, signature: bytes, signature_algorithm: EllipticCurveSignatureAlgorithm
162 ) -> AsymmetricVerificationContext: ...
164 def verify(self, signature: bytes, data: bytes, signature_algorithm: EllipticCurveSignatureAlgorithm) -> None: ...
166 EllipticCurvePublicKeyWithSerialization = EllipticCurvePublicKey
168 class EllipticCurvePublicNumbers(object):
170 def curve(self) -> EllipticCurve: ...
172 def x(self) -> int: ...
174 def y(self) -> int: ...
175 def __init__(self, x: int, y: int, curve: EllipticCurve) -> None: ...
177 def from_encoded_point(cls, curve: EllipticCurve, data: bytes) -> EllipticCurvePublicNumbers: ...
178 def public_key(self, backend: EllipticCurveBackend | None = ...) -> EllipticCurvePublicKey: ...
180 class EllipticCurveSignatureAlgorithm(metaclass=ABCMeta):
183 def algorithm(self) -> HashAlgorithm | Prehashed: ...
185 class ECDH(object): ...
187 class ECDSA(EllipticCurveSignatureAlgorithm):
188 def __init__(self, algorithm: HashAlgorithm | Prehashed): ...
190 def algorithm(self) -> HashAlgorithm | Prehashed: ...
192 def derive_private_key(
193 private_value: int, curve: EllipticCurve, backend: EllipticCurveBackend | None = ...
194 ) -> EllipticCurvePrivateKey: ...
195 def generate_private_key(curve: EllipticCurve, backend: EllipticCurveBackend | None = ...) -> EllipticCurvePrivateKey: ...
196 def get_curve_for_oid(oid: ObjectIdentifier) -> EllipticCurve: ...