# Crate secp256k1_zkp[−][src]

# Secp256k1-zkp

Rust bindings for libsecp256k1-zkp, a fork of Pieter Wuille’s secp256k1 library.

This library re-exports everything from `secp256k1`

and adds bindings for the following modules:

- generators
- range proofs
- pedersen commitments

As such, it can be used as a drop-in replacement for `secp256k1`

. All types are interoperable
(as long as you are dependening on the correct version) which means `SecretKey`

s and the `Context`

are interoperable.

## Re-exports

`pub extern crate rand;` | |

`pub extern crate secp256k1_zkp_sys;` | |

`pub extern crate serde;` | |

`pub use secp256k1_zkp_sys as ffi;` |

## Modules

constants | Constants |

ecdh | ECDH |

key | Public and secret keys |

rand | Utilities for random number generation |

recovery | Recovery module |

schnorrsig | schnorrsig |

secp256k1_sys | secp256k1-sys FFI bindings |

serde | Serde |

## Structs

AllPreallocated | Represents the set of all capabilities with a user preallocated memory. |

CommitmentSecrets | Represents all secret data involved in making a |

EcdsaAdaptorSignature | Represents an adaptor signature and dleq proof. |

Generator | Represents a generator on the secp256k1 curve. |

Message | A (hashed) message input to an ECDSA signature |

Opening | The result of rewinding a range proof. |

PedersenCommitment | Represents a commitment to a single u64 value. |

PublicKey | A Secp256k1 public key, used for verification of signatures |

RangeProof | Represents a range proof. |

Secp256k1 | The secp256k1 engine, used to execute all signature operations |

SecretKey | Secret 256-bit key used as |

SerializedSignature | A DER serialized Signature |

SignOnlyPreallocated | Represents the set of capabilities needed for signing with a user preallocated memory. |

Signature | An ECDSA signature |

SurjectionProof | Represents a surjection proof. |

Tag | Represents a tag. |

Tweak | Represents a blinding factor/Tweak on secp256k1 curve |

VerifyOnlyPreallocated | Represents the set of capabilities needed for verification with a user preallocated memory. |

## Enums

All | Represents the set of all capabilities. |

Error | An ECDSA error |

Error | An ECDSA error |

SignOnly | Represents the set of capabilities needed for signing. |

UpstreamError | An ECDSA error |

VerifyOnly | Represents the set of capabilities needed for verification. |

## Constants

ZERO_TWEAK | The zero Tweak |

## Traits

Context | A trait for all kinds of Context’s that Lets you define the exact flags and a function to deallocate memory. It shouldn’t be possible to implement this for types outside this crate. |

Signing | Marker trait for indicating that an instance of |

ThirtyTwoByteHash | Trait describing something that promises to be a 32-byte random number; in particular,
it has negligible probability of being zero or overflowing the group order. Such objects
may be converted to |

Verification | Marker trait for indicating that an instance of |

## Functions

compute_adaptive_blinding_factor | Compute a blinding factor such that the sum of all blinding factors in both sets is equal. |

verify_commitments_sum_to_equal | Verifies that the sum of the committed values within the commitments of both sets is equal. |