13 unsigned char msg[32];
14 unsigned char key[32];
17 static void bench_sign_setup(
void* arg) {
21 for (i = 0; i < 32; i++) {
24 for (i = 0; i < 32; i++) {
25 data->
key[i] = i + 65;
29 static void bench_sign(
void* arg) {
33 unsigned char sig[74];
34 for (i = 0; i < 20000; i++) {
40 for (j = 0; j < 32; j++) {
41 data->
msg[j] = sig[j];
42 data->
key[j] = sig[j + 32];
52 run_benchmark(
"ecdsa_sign", bench_sign, bench_sign_setup, NULL, &data, 10, 20000);
#define SECP256K1_CONTEXT_SIGN
SECP256K1_API void secp256k1_context_destroy(secp256k1_context *ctx)
Destroy a secp256k1 context object.
void run_benchmark(char *name, void(*benchmark)(void *), void(*setup)(void *), void(*teardown)(void *), void *data, int count, int iter)
SECP256K1_API int secp256k1_ecdsa_sign(const secp256k1_context *ctx, secp256k1_ecdsa_signature *sig, const unsigned char *msg32, const unsigned char *seckey, secp256k1_nonce_function noncefp, const void *ndata) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4)
Create an ECDSA signature.
Opaque data structured that holds a parsed ECDSA signature.
SECP256K1_API int secp256k1_ecdsa_signature_serialize_der(const secp256k1_context *ctx, unsigned char *output, size_t *outputlen, const secp256k1_ecdsa_signature *sig) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4)
Serialize an ECDSA signature in DER format.
SECP256K1_API secp256k1_context * secp256k1_context_create(unsigned int flags) SECP256K1_WARN_UNUSED_RESULT
Create a secp256k1 context object.