Expand description

secp256k1-sys FFI bindings

Direct bindings to the underlying C library functions. These should not be needed for most users.

Modules

recoveryrecovery

FFI of the recovery module

Macros

Structs

A Secp256k1 context, containing various precomputed values and such needed to do elliptic curve computations. If you create one of these with secp256k1_context_create you MUST destroy it with secp256k1_context_destroy, or else you will have a memory leak.

Library-internal representation of a Secp256k1 public key

Library-internal representation of a Secp256k1 signature

Constants

Flag for keys to indicate compressed serialization format

Flag for keys to indicate uncompressed serialization format

Flag for context to enable no precomputation

Flag for context to enable signing precomputation

Flag for context to enable verification precomputation

Statics

Traits

A trait for producing pointers that will always be valid in C. (assuming NULL pointer is a valid no-op) Rust doesn’t promise what pointers does it give to ZST (https://doc.rust-lang.org/nomicon/exotic-sizes.html#zero-sized-types-zsts) In case the type is empty this trait will give a NULL pointer, which should be handled in C.

Functions

rustsecp256k1_v0_5_0_context_createstd and non-rust_secp_no_symbol_renaming

A reimplementation of the C function secp256k1_context_create in rust.

rustsecp256k1_v0_5_0_context_destroystd and non-rust_secp_no_symbol_renaming

A reimplementation of the C function secp256k1_context_destroy in rust.

This function is an override for the C function, this is the an edited version of the original description:

This function is an override for the C function, this is the an edited version of the original description:

secp256k1_context_createstd and non-rust_secp_no_symbol_renaming
secp256k1_context_destroystd and non-rust_secp_no_symbol_renaming

Type Definitions

Hash function to use to post-process an ECDH point to get a shared secret.

A nonce generation function. Ordinary users of the library never need to see this type; only if you need to control nonce generation do you need to use it. I have deliberately made this hard to do: you have to write your own wrapper around the FFI functions to use it. And it’s an unsafe type. Nonces are generated deterministically by RFC6979 by default; there should be no need to ever change this.

Same as secp256k1_nonce function with the exception of accepting an additional pubkey argument and not requiring an attempt argument. The pubkey argument can protect signature schemes with key-prefixed challenge hash inputs against reusing the nonce when signing with the wrong precomputed pubkey.