Crate secp256k1_sys

source ·
Expand description

§secp256k1-sys FFI bindings

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




  • 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 ElligatorSwift encoded group element.
  • Library-internal representation of a Secp256k1 public key
  • Data structure that contains additional arguments for schnorrsig_sign_custom.
  • Library-internal representation of a Secp256k1 signature




  • A trait for producing pointers that will always be valid in C (assuming NULL pointer is a valid no-op).


Type Aliases§

  • Hash function to use to post-process an ECDH point to get a shared secret.
  • A hash function used by ellswift_ecdh to hash the final ECDH 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.