From 7a4b7691b68882288c0bff74bce6f68a88a4ae26 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Fri, 5 Apr 2013 02:09:37 +0200 Subject: [PATCH] Reorganize source tree: no .c for non-objects --- Makefile | 14 +++++++------- src/bench.c | 10 +++++----- src/field_10x26.h | 4 ++-- src/field_5x52.h | 4 ++-- src/field_gmp.h | 4 ++-- src/{ecdsa.c => impl/ecdsa.h} | 15 ++++++++++----- src/{ecmult.c => impl/ecmult.h} | 11 ++++++++--- src/{field.c => impl/field.h} | 11 ++++++++--- src/{field_10x26.c => impl/field_10x26.h} | 9 +++++++-- src/{field_5x52.c => impl/field_5x52.h} | 13 +++++++++---- src/{field_5x52_asm.c => impl/field_5x52_asm.h} | 5 +++++ .../field_5x52_int128.h} | 7 ++++++- src/{field_gmp.c => impl/field_gmp.h} | 9 +++++++-- src/{group.c => impl/group.h} | 11 ++++++++--- src/impl/num.h | 14 ++++++++++++++ src/{num_gmp.c => impl/num_gmp.h} | 5 +++++ src/{num_openssl.c => impl/num_openssl.h} | 7 ++++++- src/num.c | 7 ------- src/num_gmp.h | 4 ++-- src/num_openssl.h | 4 ++-- src/secp256k1.c | 10 +++++----- src/tests.c | 10 +++++----- 22 files changed, 125 insertions(+), 63 deletions(-) rename src/{ecdsa.c => impl/ecdsa.h} (96%) rename src/{ecmult.c => impl/ecmult.h} (98%) rename src/{field.c => impl/field.h} (97%) rename src/{field_10x26.c => impl/field_10x26.h} (99%) rename src/{field_5x52.c => impl/field_5x52.h} (96%) rename src/{field_5x52_asm.c => impl/field_5x52_asm.h} (67%) rename src/{field_5x52_int128.c => impl/field_5x52_int128.h} (97%) rename src/{field_gmp.c => impl/field_gmp.h} (96%) rename src/{group.c => impl/group.h} (99%) create mode 100644 src/impl/num.h rename src/{num_gmp.c => impl/num_gmp.h} (98%) rename src/{num_openssl.c => impl/num_openssl.h} (97%) delete mode 100644 src/num.c diff --git a/Makefile b/Makefile index 1c093f89db3..a1ab3fdc970 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ FLAGS_DEBUG:=-DVERIFY -ggdb3 -O1 FLAGS_TEST:=-DVERIFY -ggdb3 -O2 -march=native SECP256K1_FILES := src/num.h src/field.h src/field_5x52.h src/group.h src/ecmult.h src/ecdsa.h \ - src/num.c src/field.c src/field_5x52.c src/group.c src/ecmult.c src/ecdsa.c + src/impl/*.h JAVA_FILES := src/java/org_bitcoin_NativeSecp256k1.h src/java/org_bitcoin_NativeSecp256k1.c @@ -19,33 +19,33 @@ default: all ifeq ($(CONF), gmpgmp) FLAGS_COMMON := $(FLAGS_COMMON) -DUSE_NUM_GMP -DUSE_FIELD_GMP LIBS := -lgmp -SECP256K1_FILES := $(SECP256K1_FILES) src/num_gmp.h src/num_gmp.c src/field_gmp.c src/field_gmp.h +SECP256K1_FILES := $(SECP256K1_FILES) src/num_gmp.h src/field_gmp.h else ifeq ($(CONF), gmp32) FLAGS_COMMON := $(FLAGS_COMMON) -DUSE_NUM_GMP -DUSE_FIELD_10X26 LIBS := -lgmp -SECP256K1_FILES := $(SECP256K1_FILES) src/num_gmp.h src/num_gmp.c src/field_10x26.c src/field_10x26.h +SECP256K1_FILES := $(SECP256K1_FILES) src/num_gmp.h src/field_10x26.h else ifeq ($(CONF), openssl) FLAGS_COMMON := $(FLAGS_COMMON) -DUSE_NUM_OPENSSL -DUSE_FIELD_INV_BUILTIN LIBS := -lcrypto -SECP256K1_FILES := $(SECP256K1_FILES) src/num_openssl.h src/num_openssl.c src/field_5x52_int128.c +SECP256K1_FILES := $(SECP256K1_FILES) src/num_openssl.h src/field_5x52.h else ifeq ($(CONF), gmp) FLAGS_COMMON := $(FLAGS_COMMON) -DUSE_NUM_GMP LIBS := -lgmp -SECP256K1_FILES := $(SECP256K1_FILES) src/num_gmp.h src/num_gmp.c src/field_5x52_int128.c +SECP256K1_FILES := $(SECP256K1_FILES) src/num_gmp.h src/field_5x52.h else ifeq ($(CONF), gmpasm) FLAGS_COMMON := $(FLAGS_COMMON) -DUSE_NUM_GMP -DUSE_FIELD_5X52_ASM LIBS := -lgmp OBJS := $(OBJS) obj/field_5x52_asm.o -SECP256K1_FILES := $(SECP256K1_FILES) src/num_gmp.h src/num_gmp.c src/field_5x52_asm.c +SECP256K1_FILES := $(SECP256K1_FILES) src/num_gmp.h src/field_5x52.h obj/field_5x52_asm.o: src/field_5x52_asm.asm yasm -f elf64 -o obj/field_5x52_asm.o src/field_5x52_asm.asm else -SECP256K1_FILES := $(SECP256K1_FILES) src/field_5x52_int128.c +error endif endif endif diff --git a/src/bench.c b/src/bench.c index 09a49b716a9..eeee710bd60 100644 --- a/src/bench.c +++ b/src/bench.c @@ -1,10 +1,10 @@ #include -#include "num.c" -#include "field.c" -#include "group.c" -#include "ecmult.c" -#include "ecdsa.c" +#include "impl/num.h" +#include "impl/field.h" +#include "impl/group.h" +#include "impl/ecmult.h" +#include "impl/ecdsa.h" int main() { secp256k1_num_start(); diff --git a/src/field_10x26.h b/src/field_10x26.h index 11f6cf9999a..72c5829030e 100644 --- a/src/field_10x26.h +++ b/src/field_10x26.h @@ -1,5 +1,5 @@ -#ifndef _SECP256K1_FIELD_10x26_ -#define _SECP256K1_FIELD_10x26_ +#ifndef _SECP256K1_FIELD_REPR_ +#define _SECP256K1_FIELD_REPR_ #include diff --git a/src/field_5x52.h b/src/field_5x52.h index f6be2089cbe..8ccad0348c1 100644 --- a/src/field_5x52.h +++ b/src/field_5x52.h @@ -1,5 +1,5 @@ -#ifndef _SECP256K1_FIELD_5x52_ -#define _SECP256K1_FIELD_5x52_ +#ifndef _SECP256K1_FIELD_REPR_ +#define _SECP256K1_FIELD_REPR_ #include diff --git a/src/field_gmp.h b/src/field_gmp.h index 03b83aac805..44a8c60caf6 100644 --- a/src/field_gmp.h +++ b/src/field_gmp.h @@ -1,5 +1,5 @@ -#ifndef _SECP256K1_FIELD_GMP_ -#define _SECP256K1_FIELD_GMP_ +#ifndef _SECP256K1_FIELD_REPR_ +#define _SECP256K1_FIELD_REPR_ #include diff --git a/src/ecdsa.c b/src/impl/ecdsa.h similarity index 96% rename from src/ecdsa.c rename to src/impl/ecdsa.h index 879e01be65c..8589a225fc4 100644 --- a/src/ecdsa.c +++ b/src/impl/ecdsa.h @@ -1,8 +1,11 @@ -#include "num.h" -#include "field.h" -#include "group.h" -#include "ecmult.h" -#include "ecdsa.h" +#ifndef _SECP256K1_ECDSA_IMPL_H_ +#define _SECP256K1_ECDSA_IMPL_H_ + +#include "../num.h" +#include "../field.h" +#include "../group.h" +#include "../ecmult.h" +#include "../ecdsa.h" void static secp256k1_ecdsa_sig_init(secp256k1_ecdsa_sig_t *r) { secp256k1_num_init(&r->r); @@ -141,3 +144,5 @@ void static secp256k1_ecdsa_sig_set_rs(secp256k1_ecdsa_sig_t *sig, const secp256 secp256k1_num_copy(&sig->r, r); secp256k1_num_copy(&sig->s, s); } + +#endif diff --git a/src/ecmult.c b/src/impl/ecmult.h similarity index 98% rename from src/ecmult.c rename to src/impl/ecmult.h index b9301dc6cf4..0261a277407 100644 --- a/src/ecmult.c +++ b/src/impl/ecmult.h @@ -1,6 +1,9 @@ -#include "num.h" -#include "group.h" -#include "ecmult.h" +#ifndef _SECP256K1_ECMULT_IMPL_H_ +#define _SECP256K1_ECMULT_IMPL_H_ + +#include "../num.h" +#include "../group.h" +#include "../ecmult.h" // optimal for 128-bit and 256-bit exponents. #define WINDOW_A 5 @@ -226,3 +229,5 @@ void static secp256k1_ecmult(secp256k1_gej_t *r, const secp256k1_gej_t *a, const secp256k1_num_free(&ng_1); secp256k1_num_free(&ng_128); } + +#endif diff --git a/src/field.c b/src/impl/field.h similarity index 97% rename from src/field.c rename to src/impl/field.h index 26c721b3938..13274e1bcf1 100644 --- a/src/field.c +++ b/src/impl/field.h @@ -1,10 +1,13 @@ +#ifndef _SECP256K1_FIELD_IMPL_H_ +#define _SECP256K1_FIELD_IMPL_H_ + #ifdef USE_FIELD_GMP -#include "field_gmp.c" +#include "field_gmp.h" #else #ifdef USE_FIELD_10X26 -#include "field_10x26.c" +#include "field_10x26.h" #else -#include "field_5x52.c" +#include "field_5x52.h" #endif #endif @@ -158,3 +161,5 @@ void static secp256k1_fe_stop(void) { secp256k1_fe_consts = NULL; } } + +#endif diff --git a/src/field_10x26.c b/src/impl/field_10x26.h similarity index 99% rename from src/field_10x26.c rename to src/impl/field_10x26.h index 9f9edb9d69d..d1767b557d4 100644 --- a/src/field_10x26.c +++ b/src/impl/field_10x26.h @@ -1,8 +1,11 @@ +#ifndef _SECP256K1_FIELD_REPR_IMPL_H_ +#define _SECP256K1_FIELD_REPR_IMPL_H_ + #include #include #include -#include "num.h" -#include "field.h" +#include "../num.h" +#include "../field.h" void static secp256k1_fe_normalize(secp256k1_fe_t *r) { // fog("normalize in: ", r); @@ -473,3 +476,5 @@ void static secp256k1_fe_sqr(secp256k1_fe_t *r, const secp256k1_fe_t *a) { #endif secp256k1_fe_sqr_inner(a->n, r->n); } + +#endif diff --git a/src/field_5x52.c b/src/impl/field_5x52.h similarity index 96% rename from src/field_5x52.c rename to src/impl/field_5x52.h index 0d53352fb59..e11d1e20043 100644 --- a/src/field_5x52.c +++ b/src/impl/field_5x52.h @@ -1,12 +1,15 @@ +#ifndef _SECP256K1_FIELD_REPR_IMPL_H_ +#define _SECP256K1_FIELD_REPR_IMPL_H_ + #include #include -#include "num.h" -#include "field.h" +#include "../num.h" +#include "../field.h" #ifdef USE_FIELD_5X52_ASM -#include "field_5x52_asm.c" +#include "field_5x52_asm.h" #else -#include "field_5x52_int128.c" +#include "field_5x52_int128.h" #endif /** Implements arithmetic modulo FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F, @@ -180,3 +183,5 @@ void static secp256k1_fe_sqr(secp256k1_fe_t *r, const secp256k1_fe_t *a) { #endif secp256k1_fe_sqr_inner(a->n, r->n); } + +#endif diff --git a/src/field_5x52_asm.c b/src/impl/field_5x52_asm.h similarity index 67% rename from src/field_5x52_asm.c rename to src/impl/field_5x52_asm.h index 1082c634705..32cd55d0588 100644 --- a/src/field_5x52_asm.c +++ b/src/impl/field_5x52_asm.h @@ -1,2 +1,7 @@ +#ifndef _SECP256K1_FIELD_INNER5X52_IMPL_H_ +#define _SECP256K1_FIELD_INNER5X52_IMPL_H_ + void __attribute__ ((sysv_abi)) secp256k1_fe_mul_inner(const uint64_t *a, const uint64_t *b, uint64_t *r); void __attribute__ ((sysv_abi)) secp256k1_fe_sqr_inner(const uint64_t *a, uint64_t *r); + +#endif diff --git a/src/field_5x52_int128.c b/src/impl/field_5x52_int128.h similarity index 97% rename from src/field_5x52_int128.c rename to src/impl/field_5x52_int128.h index 6ad3fa127cc..8f187def9eb 100644 --- a/src/field_5x52_int128.c +++ b/src/impl/field_5x52_int128.h @@ -1,4 +1,7 @@ -#include "field.h" +#ifndef _SECP256K1_FIELD_INNER5X52_IMPL_H_ +#define _SECP256K1_FIELD_INNER5X52_IMPL_H_ + +#include void static inline secp256k1_fe_mul_inner(const uint64_t *a, const uint64_t *b, uint64_t *r) { __int128 c = (__int128)a[0] * b[0]; @@ -94,3 +97,5 @@ void static inline secp256k1_fe_sqr_inner(const uint64_t *a, uint64_t *r) { r[1] = t1 + c; } + +#endif diff --git a/src/field_gmp.c b/src/impl/field_gmp.h similarity index 96% rename from src/field_gmp.c rename to src/impl/field_gmp.h index a34667b7b0b..387cb3af7e2 100644 --- a/src/field_gmp.c +++ b/src/impl/field_gmp.h @@ -1,8 +1,11 @@ +#ifndef _SECP256K1_FIELD_REPR_IMPL_H_ +#define _SECP256K1_FIELD_REPR_IMPL_H_ + #include #include #include -#include "num.h" -#include "field.h" +#include "../num.h" +#include "../field.h" void static secp256k1_fe_normalize(secp256k1_fe_t *r) { #if (GMP_NUMB_BITS >= 40) @@ -119,3 +122,5 @@ void static secp256k1_fe_sqr(secp256k1_fe_t *r, const secp256k1_fe_t *a) { mpn_sqr(tmp, ac.n, FIELD_LIMBS); secp256k1_fe_reduce(r, tmp); } + +#endif diff --git a/src/group.c b/src/impl/group.h similarity index 99% rename from src/group.c rename to src/impl/group.h index d0cf9c77094..6c0386952cc 100644 --- a/src/group.c +++ b/src/impl/group.h @@ -1,8 +1,11 @@ +#ifndef _SECP256K1_GROUP_IMPL_H_ +#define _SECP256K1_GROUP_IMPL_H_ + #include -#include "num.h" -#include "field.h" -#include "group.h" +#include "../num.h" +#include "../field.h" +#include "../group.h" void static secp256k1_ge_set_infinity(secp256k1_ge_t *r) { r->infinity = 1; @@ -370,3 +373,5 @@ void static secp256k1_ge_stop(void) { secp256k1_ge_consts = NULL; } } + +#endif diff --git a/src/impl/num.h b/src/impl/num.h new file mode 100644 index 00000000000..f27f0d1f10d --- /dev/null +++ b/src/impl/num.h @@ -0,0 +1,14 @@ +#ifndef _SECP256K1_NUM_IMPL_H_ +#define _SECP256K1_NUM_IMPL_H_ + +#include "../num.h" + +#if defined(USE_NUM_GMP) +#include "num_gmp.h" +#elif defined(USE_NUM_OPENSSL) +#include "num_openssl.h" +#else +#error "Please select num implementation" +#endif + +#endif diff --git a/src/num_gmp.c b/src/impl/num_gmp.h similarity index 98% rename from src/num_gmp.c rename to src/impl/num_gmp.h index 4c3f0a4ad42..f3599ddc67a 100644 --- a/src/num_gmp.c +++ b/src/impl/num_gmp.h @@ -1,3 +1,6 @@ +#ifndef _SECP256K1_NUM_REPR_IMPL_H_ +#define _SECP256K1_NUM_REPR_IMPL_H_ + #include #include #include @@ -153,3 +156,5 @@ void static secp256k1_num_negate(secp256k1_num_t *r) { void static secp256k1_num_set_rand(secp256k1_num_t *r, const secp256k1_num_t *a) { mpz_urandomm(r->bn, secp256k1_num_state.rng, a->bn); } + +#endif diff --git a/src/num_openssl.c b/src/impl/num_openssl.h similarity index 97% rename from src/num_openssl.c rename to src/impl/num_openssl.h index 5b88d98bacb..93b26d7db87 100644 --- a/src/num_openssl.c +++ b/src/impl/num_openssl.h @@ -1,10 +1,13 @@ +#ifndef _SECP256K1_NUM_REPR_IMPL_H_ +#define _SECP256K1_NUM_REPR_IMPL_H_ + #include #include #include #include #include -#include "num.h" +#include "../num.h" void static secp256k1_num_start() { } @@ -148,3 +151,5 @@ void static secp256k1_num_negate(secp256k1_num_t *r) { void static secp256k1_num_set_rand(secp256k1_num_t *r, const secp256k1_num_t *a) { BN_pseudo_rand_range(&r->bn, &a->bn); } + +#endif diff --git a/src/num.c b/src/num.c deleted file mode 100644 index bcc1c018425..00000000000 --- a/src/num.c +++ /dev/null @@ -1,7 +0,0 @@ -#if defined(USE_NUM_GMP) -#include "num_gmp.c" -#elif defined(USE_NUM_OPENSSL) -#include "num_openssl.c" -#else -#error "Please select num implementation" -#endif diff --git a/src/num_gmp.h b/src/num_gmp.h index d908e001123..f1c910d1735 100644 --- a/src/num_gmp.h +++ b/src/num_gmp.h @@ -1,5 +1,5 @@ -#ifndef _SECP256K1_NUM_GMP_ -#define _SECP256K1_NUM_GMP_ +#ifndef _SECP256K1_NUM_REPR_ +#define _SECP256K1_NUM_REPR_ #include diff --git a/src/num_openssl.h b/src/num_openssl.h index 22c502a6bf1..de3f1a474f6 100644 --- a/src/num_openssl.h +++ b/src/num_openssl.h @@ -1,5 +1,5 @@ -#ifndef _SECP256K1_NUM_OPENSSL_ -#define _SECP256K1_NUM_OPENSSL_ +#ifndef _SECP256K1_NUM_REPR_ +#define _SECP256K1_NUM_REPR_ #include diff --git a/src/secp256k1.c b/src/secp256k1.c index 8b93100c1b0..aecdad98df3 100644 --- a/src/secp256k1.c +++ b/src/secp256k1.c @@ -1,8 +1,8 @@ -#include "num.c" -#include "field.c" -#include "group.c" -#include "ecmult.c" -#include "ecdsa.c" +#include "impl/num.h" +#include "impl/field.h" +#include "impl/group.h" +#include "impl/ecmult.h" +#include "impl/ecdsa.h" void secp256k1_start(void) { secp256k1_num_start(); diff --git a/src/tests.c b/src/tests.c index f0c61905bee..1d5b48cdfc3 100644 --- a/src/tests.c +++ b/src/tests.c @@ -1,10 +1,10 @@ #include -#include "num.c" -#include "field.c" -#include "group.c" -#include "ecmult.c" -#include "ecdsa.c" +#include "impl/num.h" +#include "impl/field.h" +#include "impl/group.h" +#include "impl/ecmult.h" +#include "impl/ecdsa.h" // #define COUNT 2 #define COUNT 100