View Source Bitcoinex.Secp256k1 (bitcoinex v0.1.8)

General Secp256k1 curve operations. libsecp256k1: https://github.com/bitcoin-core/secp256k1

Currently supports ECDSA public key recovery.

In the future, we will NIF for critical operations. However, it is more portable to have a native elixir version.

Link to this section Summary

Functions

force_even_y returns the negated private key if the associated Point has an odd y. Otherwise it returns the private key

Returns the y-coordinate of a secp256k1 curve point (P) using the x-coordinate. To get P(y), we solve for y in this equation: y^2 = x^3 + 7.

verify_point verifies that a given point is on the secp256k1 curve

Link to this section Functions

force_even_y returns the negated private key if the associated Point has an odd y. Otherwise it returns the private key

@spec get_y(integer(), boolean()) :: {:ok, integer()} | {:error, String.t()}

Returns the y-coordinate of a secp256k1 curve point (P) using the x-coordinate. To get P(y), we solve for y in this equation: y^2 = x^3 + 7.

@spec verify_point(Bitcoinex.Secp256k1.Point.t()) :: bool()

verify_point verifies that a given point is on the secp256k1 curve