ecc — ECDSA implementation supporting secp256r1

This is a native C implementation with wrappers for Python. It supports the SECP256R1 curve as used by NEO This is pure python implementation of ECDSA with secp256r1 curve support as used by NEO.

class neo3.core.cryptography.ecc.ECCCurve(self: neo3crypto.ECCCurve, arg0: int)None

Bases: pybind11_builtins.pybind11_object

Members:

SECP256R1

SECP256K1

SECP256K1 = <ECCCurve.SECP256K1: 1>
SECP256R1 = <ECCCurve.SECP256R1: 0>
property name
class neo3.core.cryptography.ecc.ECPoint(*args, **kwargs)

Bases: neo3crypto.ECPoint, neo3.core.serialization.ISerializable

Overloaded function.

  1. __init__(self: neo3crypto.ECPoint, public_key: bytes, curve: neo3crypto.ECCCurve, validate: bool) -> None

  2. __init__(self: neo3crypto.ECPoint, private_key: bytes, curve: neo3crypto.ECCCurve) -> None

deserialize(reader, curve=<ECCCurve.SECP256R1: 0>)

Deserialize the object from a binary stream.

Parameters

reader (BinaryReader) – instance.

Return type

None

classmethod deserialize_from_bytes(data, curve=<ECCCurve.SECP256R1: 0>, validate=True)

Parse data into an object instance.

Parameters
  • data (Union[bytes, bytearray]) – ECPoint in hex escaped bytes format.

  • curve (ECCCurve) – the curve type to decompress

  • validate (bool) – validate if the point valid point on the specified curve

Return type

~ISerializable_T

Returns

a deserialized instance of the class.

is_zero()
serialize(writer, compress=True)

Serialize the object into a binary stream.

Parameters

writer (BinaryWriter) – instance.

Return type

None