pub struct Secp256k1<C> { /* private fields */ }
Expand description
The secp256k1 engine, used to execute all signature operations
Implementations§
source§impl Secp256k1<None>
impl Secp256k1<None>
sourcepub fn without_caps() -> Secp256k1<None>
pub fn without_caps() -> Secp256k1<None>
Creates a new Secp256k1 context with no capabilities (just de/serialization)
source§impl Secp256k1<SignOnly>
impl Secp256k1<SignOnly>
sourcepub fn signing_only() -> Secp256k1<SignOnly>
pub fn signing_only() -> Secp256k1<SignOnly>
Creates a new Secp256k1 context that can only be used for signing
source§impl Secp256k1<VerifyOnly>
impl Secp256k1<VerifyOnly>
sourcepub fn verification_only() -> Secp256k1<VerifyOnly>
pub fn verification_only() -> Secp256k1<VerifyOnly>
Creates a new Secp256k1 context that can only be used for verification
source§impl<C: Signing> Secp256k1<C>
impl<C: Signing> Secp256k1<C>
sourcepub fn sign(&self, msg: &Message, sk: &SecretKey) -> Signature
pub fn sign(&self, msg: &Message, sk: &SecretKey) -> Signature
Constructs a signature for msg
using the secret key sk
and RFC6979 nonce
Requires a signing-capable context.
sourcepub fn sign_recoverable(
&self,
msg: &Message,
sk: &SecretKey
) -> RecoverableSignature
pub fn sign_recoverable(
&self,
msg: &Message,
sk: &SecretKey
) -> RecoverableSignature
Constructs a signature for msg
using the secret key sk
and RFC6979 nonce
Requires a signing-capable context.
sourcepub fn generate_keypair<R: Rng>(&self, rng: &mut R) -> (SecretKey, PublicKey)
pub fn generate_keypair<R: Rng>(&self, rng: &mut R) -> (SecretKey, PublicKey)
Generates a random keypair. Convenience function for key::SecretKey::new
and key::PublicKey::from_secret_key
; call those functions directly for
batch key generation. Requires a signing-capable context. Requires compilation
with the “rand” feature.
source§impl<C: Verification> Secp256k1<C>
impl<C: Verification> Secp256k1<C>
sourcepub fn recover(
&self,
msg: &Message,
sig: &RecoverableSignature
) -> Result<PublicKey, Error>
pub fn recover(
&self,
msg: &Message,
sig: &RecoverableSignature
) -> Result<PublicKey, Error>
Determines the public key for which sig
is a valid signature for
msg
. Requires a verify-capable context.
sourcepub fn verify(
&self,
msg: &Message,
sig: &Signature,
pk: &PublicKey
) -> Result<(), Error>
pub fn verify(
&self,
msg: &Message,
sig: &Signature,
pk: &PublicKey
) -> Result<(), Error>
Checks that sig
is a valid ECDSA signature for msg
using the public
key pubkey
. Returns Ok(true)
on success. Note that this function cannot
be used for Bitcoin consensus checking since there may exist signatures
which OpenSSL would verify but not libsecp256k1, or vice-versa. Requires a
verify-capable context.