Skip to main content
Version: v1.0.0-beta.19

ECDSA Signature Verification

Noir supports ECDSA signatures verification over the secp256k1 and secp256r1 curves.

ecdsa_secp256k1::verify_signature

Verifier for ECDSA Secp256k1 signatures.

#include_code ecdsa_secp256k1 noir_stdlib/src/ecdsa_secp256k1.nr rust

example:

fn main(hashed_message : [u8;32], pub_key_x : [u8;32], pub_key_y : [u8;32], signature : [u8;64]) {
let valid_signature = std::ecdsa_secp256k1::verify_signature(pub_key_x, pub_key_y, signature, hashed_message);
assert(valid_signature);
}

This is a black box function. Read this section to learn more about black box functions in Noir.

ecdsa_secp256r1::verify_signature

Verifier for ECDSA Secp256r1 signatures. See ecdsa_secp256r1::verify_signature_vector for a version that accepts vectors directly.

#include_code ecdsa_secp256r1 noir_stdlib/src/ecdsa_secp256r1.nr rust

example:

fn main(hashed_message : [u8;32], pub_key_x : [u8;32], pub_key_y : [u8;32], signature : [u8;64]) {
let valid_signature = std::ecdsa_secp256r1::verify_signature(pub_key_x, pub_key_y, signature, hashed_message);
assert(valid_signature);
}

This is a black box function. Read this section to learn more about black box functions in Noir.