Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/src/bench_internal.c
/*********************************************************************** | /*********************************************************************** | ||||
* Copyright (c) 2014-2015 Pieter Wuille * | * Copyright (c) 2014-2015 Pieter Wuille * | ||||
* Distributed under the MIT software license, see the accompanying * | * Distributed under the MIT software license, see the accompanying * | ||||
* file COPYING or https://www.opensource.org/licenses/mit-license.php.* | * file COPYING or https://www.opensource.org/licenses/mit-license.php.* | ||||
***********************************************************************/ | ***********************************************************************/ | ||||
#include <stdio.h> | #include <stdio.h> | ||||
#include "include/secp256k1.h" | #include "include/secp256k1.h" | ||||
#include "assumptions.h" | #include "assumptions.h" | ||||
#include "util.h" | #include "util.h" | ||||
#include "hash_impl.h" | #include "hash_impl.h" | ||||
#include "num_impl.h" | |||||
#include "field_impl.h" | #include "field_impl.h" | ||||
#include "group_impl.h" | #include "group_impl.h" | ||||
#include "scalar_impl.h" | #include "scalar_impl.h" | ||||
#include "ecmult_const_impl.h" | #include "ecmult_const_impl.h" | ||||
#include "ecmult_impl.h" | #include "ecmult_impl.h" | ||||
#include "bench.h" | #include "bench.h" | ||||
#include "secp256k1.c" | #include "secp256k1.c" | ||||
▲ Show 20 Lines • Show All 333 Lines • ▼ Show 20 Lines | |||||
void bench_context_sign(void* arg, int iters) { | void bench_context_sign(void* arg, int iters) { | ||||
int i; | int i; | ||||
(void)arg; | (void)arg; | ||||
for (i = 0; i < iters; i++) { | for (i = 0; i < iters; i++) { | ||||
secp256k1_context_destroy(secp256k1_context_create(SECP256K1_CONTEXT_SIGN)); | secp256k1_context_destroy(secp256k1_context_create(SECP256K1_CONTEXT_SIGN)); | ||||
} | } | ||||
} | } | ||||
#ifndef USE_NUM_NONE | |||||
void bench_num_jacobi(void* arg, int iters) { | |||||
int i, j = 0; | |||||
bench_inv *data = (bench_inv*)arg; | |||||
secp256k1_num nx, na, norder; | |||||
secp256k1_scalar_get_num(&nx, &data->scalar[0]); | |||||
secp256k1_scalar_order_get_num(&norder); | |||||
secp256k1_scalar_get_num(&na, &data->scalar[1]); | |||||
for (i = 0; i < iters; i++) { | |||||
j += secp256k1_num_jacobi(&nx, &norder); | |||||
secp256k1_num_add(&nx, &nx, &na); | |||||
} | |||||
CHECK(j <= iters); | |||||
} | |||||
#endif | |||||
int main(int argc, char **argv) { | int main(int argc, char **argv) { | ||||
bench_inv data; | bench_inv data; | ||||
int iters = get_iters(20000); | int iters = get_iters(20000); | ||||
if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "add")) run_benchmark("scalar_add", bench_scalar_add, bench_setup, NULL, &data, 10, iters*100); | if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "add")) run_benchmark("scalar_add", bench_scalar_add, bench_setup, NULL, &data, 10, iters*100); | ||||
if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "negate")) run_benchmark("scalar_negate", bench_scalar_negate, bench_setup, NULL, &data, 10, iters*100); | if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "negate")) run_benchmark("scalar_negate", bench_scalar_negate, bench_setup, NULL, &data, 10, iters*100); | ||||
if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "mul")) run_benchmark("scalar_mul", bench_scalar_mul, bench_setup, NULL, &data, 10, iters*10); | if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "mul")) run_benchmark("scalar_mul", bench_scalar_mul, bench_setup, NULL, &data, 10, iters*10); | ||||
if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "split")) run_benchmark("scalar_split", bench_scalar_split, bench_setup, NULL, &data, 10, iters); | if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "split")) run_benchmark("scalar_split", bench_scalar_split, bench_setup, NULL, &data, 10, iters); | ||||
Show All 20 Lines | int main(int argc, char **argv) { | ||||
if (have_flag(argc, argv, "hash") || have_flag(argc, argv, "sha256")) run_benchmark("hash_sha256", bench_sha256, bench_setup, NULL, &data, 10, iters); | if (have_flag(argc, argv, "hash") || have_flag(argc, argv, "sha256")) run_benchmark("hash_sha256", bench_sha256, bench_setup, NULL, &data, 10, iters); | ||||
if (have_flag(argc, argv, "hash") || have_flag(argc, argv, "hmac")) run_benchmark("hash_hmac_sha256", bench_hmac_sha256, bench_setup, NULL, &data, 10, iters); | if (have_flag(argc, argv, "hash") || have_flag(argc, argv, "hmac")) run_benchmark("hash_hmac_sha256", bench_hmac_sha256, bench_setup, NULL, &data, 10, iters); | ||||
if (have_flag(argc, argv, "hash") || have_flag(argc, argv, "rng6979")) run_benchmark("hash_rfc6979_hmac_sha256", bench_rfc6979_hmac_sha256, bench_setup, NULL, &data, 10, iters); | if (have_flag(argc, argv, "hash") || have_flag(argc, argv, "rng6979")) run_benchmark("hash_rfc6979_hmac_sha256", bench_rfc6979_hmac_sha256, bench_setup, NULL, &data, 10, iters); | ||||
if (have_flag(argc, argv, "context") || have_flag(argc, argv, "verify")) run_benchmark("context_verify", bench_context_verify, bench_setup, NULL, &data, 10, 1 + iters/1000); | if (have_flag(argc, argv, "context") || have_flag(argc, argv, "verify")) run_benchmark("context_verify", bench_context_verify, bench_setup, NULL, &data, 10, 1 + iters/1000); | ||||
if (have_flag(argc, argv, "context") || have_flag(argc, argv, "sign")) run_benchmark("context_sign", bench_context_sign, bench_setup, NULL, &data, 10, 1 + iters/100); | if (have_flag(argc, argv, "context") || have_flag(argc, argv, "sign")) run_benchmark("context_sign", bench_context_sign, bench_setup, NULL, &data, 10, 1 + iters/100); | ||||
#ifndef USE_NUM_NONE | |||||
if (have_flag(argc, argv, "num") || have_flag(argc, argv, "jacobi")) run_benchmark("num_jacobi", bench_num_jacobi, bench_setup, NULL, &data, 10, iters*10); | |||||
#endif | |||||
return 0; | return 0; | ||||
} | } |