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.