revert: revert 'stop tracking cmake dependency relic_conf.h.in'

This reverts commit 7d03389345.
This commit is contained in:
Kittywhiskers Van Gogh 2022-12-30 11:40:23 +05:30
parent 964e3aaf36
commit c70f440f66

View File

@ -1,717 +0,0 @@
/*
* RELIC is an Efficient LIbrary for Cryptography
* Copyright (c) 2009 RELIC Authors
*
* This file is part of RELIC. RELIC is legal property of its developers,
* whose names are not listed here. Please refer to the COPYRIGHT file
* for contact information.
*
* RELIC is free software; you can redistribute it and/or modify it under the
* terms of the version 2.1 (or later) of the GNU Lesser General Public License
* as published by the Free Software Foundation; or version 2.0 of the Apache
* License as published by the Apache Software Foundation. See the LICENSE files
* for more details.
*
* RELIC is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the LICENSE files for more details.
*
* You should have received a copy of the GNU Lesser General Public or the
* Apache License along with RELIC. If not, see <https://www.gnu.org/licenses/>
* or <https://www.apache.org/licenses/>.
*/
/**
* @file
*
* Project configuration.
*
* @version $Id: relic_conf.h.in 45 2009-07-04 23:45:48Z dfaranha $
* @ingroup relic
*/
#ifndef RLC_CONF_H
#define RLC_CONF_H
/** Project version. */
#define RLC_VERSION "@VERSION@"
/** Debugging support. */
#cmakedefine DEBUG
/** Profiling support. */
#cmakedefine PROFL
/** Error handling support. */
#cmakedefine CHECK
/** Verbose error messages. */
#cmakedefine VERBS
/** Build with overhead estimation. */
#cmakedefine OVERH
/** Build documentation. */
#cmakedefine DOCUM
/** Build only the selected algorithms. */
#cmakedefine STRIP
/** Build with printing disabled. */
#cmakedefine QUIET
/** Build with colored output. */
#cmakedefine COLOR
/** Build with big-endian support. */
#cmakedefine BIGED
/** Build shared library. */
#cmakedefine SHLIB
/** Build static library. */
#cmakedefine STLIB
/** Number of times each test is ran. */
#define TESTS @TESTS@
/** Number of times each benchmark is ran. */
#define BENCH @BENCH@
/** Number of available cores. */
#define CORES @CORES@
/** Atmel AVR ATMega128 8-bit architecture. */
#define AVR 1
/** MSP430 16-bit architecture. */
#define MSP 2
/** ARM 32-bit architecture. */
#define ARM 3
/** Intel x86-compatible 32-bit architecture. */
#define X86 4
/** AMD64-compatible 64-bit architecture. */
#define X64 5
/** Architecture. */
#cmakedefine ARCH @ARCH@
/** Size of word in this architecture. */
#define WSIZE @WSIZE@
/** Byte boundary to align digit vectors. */
#define ALIGN @ALIGN@
/** Build multiple precision integer module. */
#cmakedefine WITH_BN
/** Build prime field module. */
#cmakedefine WITH_FP
/** Build prime field extension module. */
#cmakedefine WITH_FPX
/** Build binary field module. */
#cmakedefine WITH_FB
/** Build prime elliptic curve module. */
#cmakedefine WITH_EP
/** Build prime field extension elliptic curve module. */
#cmakedefine WITH_EPX
/** Build binary elliptic curve module. */
#cmakedefine WITH_EB
/** Build elliptic Edwards curve module. */
#cmakedefine WITH_ED
/** Build elliptic curve cryptography module. */
#cmakedefine WITH_EC
/** Build pairings over prime curves module. */
#cmakedefine WITH_PP
/** Build pairing-based cryptography module. */
#cmakedefine WITH_PC
/** Build block ciphers. */
#cmakedefine WITH_BC
/** Build hash functions. */
#cmakedefine WITH_MD
/** Build cryptographic protocols. */
#cmakedefine WITH_CP
/** Build Multi-party computation primitives. */
#cmakedefine WITH_MPC
/** Easy C-only backend. */
#define EASY 1
/** GMP backend. */
#define GMP 2
/** GMP constant-time backend. */
#define GMP_SEC 3
/** Arithmetic backend. */
#define ARITH @ARITH@
/** Required precision in bits. */
#define BN_PRECI @BN_PRECI@
/** A multiple precision integer can store w words. */
#define SINGLE 0
/** A multiple precision integer can store the result of an addition. */
#define CARRY 1
/** A multiple precision integer can store the result of a multiplication. */
#define DOUBLE 2
/** Effective size of a multiple precision integer. */
#define BN_MAGNI @BN_MAGNI@
/** Number of Karatsuba steps. */
#define BN_KARAT @BN_KARAT@
/** Schoolbook multiplication. */
#define BASIC 1
/** Comba multiplication. */
#define COMBA 2
/** Chosen multiple precision multiplication method. */
#define BN_MUL @BN_MUL@
/** Schoolbook squaring. */
#define BASIC 1
/** Comba squaring. */
#define COMBA 2
/** Reuse multiplication for squaring. */
#define MULTP 4
/** Chosen multiple precision multiplication method. */
#define BN_SQR @BN_SQR@
/** Division modular reduction. */
#define BASIC 1
/** Barrett modular reduction. */
#define BARRT 2
/** Montgomery modular reduction. */
#define MONTY 3
/** Pseudo-Mersenne modular reduction. */
#define PMERS 4
/** Chosen multiple precision modular reduction method. */
#define BN_MOD @BN_MOD@
/** Binary modular exponentiation. */
#define BASIC 1
/** Sliding window modular exponentiation. */
#define SLIDE 2
/** Montgomery powering ladder. */
#define MONTY 3
/** Chosen multiple precision modular exponentiation method. */
#define BN_MXP @BN_MXP@
/** Basic Euclidean GCD Algorithm. */
#define BASIC 1
/** Lehmer's fast GCD Algorithm. */
#define LEHME 2
/** Stein's binary GCD Algorithm. */
#define STEIN 3
/** Chosen multiple precision greatest common divisor method. */
#define BN_GCD @BN_GCD@
/** Basic prime generation. */
#define BASIC 1
/** Safe prime generation. */
#define SAFEP 2
/** Strong prime generation. */
#define STRON 3
/** Chosen prime generation algorithm. */
#define BN_GEN @BN_GEN@
/** Multiple precision arithmetic method */
#define BN_METHD "@BN_METHD@"
/** Prime field size in bits. */
#define FP_PRIME @FP_PRIME@
/** Number of Karatsuba steps. */
#define FP_KARAT @FP_KARAT@
/** Prefer Pseudo-Mersenne primes over random primes. */
#cmakedefine FP_PMERS
/** Use -1 as quadratic non-residue. */
#cmakedefine FP_QNRES
/** Width of window processing for exponentiation methods. */
#define FP_WIDTH @FP_WIDTH@
/** Schoolbook addition. */
#define BASIC 1
/** Integrated modular addtion. */
#define INTEG 3
/** Chosen prime field multiplication method. */
#define FP_ADD @FP_ADD@
/** Schoolbook multiplication. */
#define BASIC 1
/** Comba multiplication. */
#define COMBA 2
/** Integrated modular multiplication. */
#define INTEG 3
/** Chosen prime field multiplication method. */
#define FP_MUL @FP_MUL@
/** Schoolbook squaring. */
#define BASIC 1
/** Comba squaring. */
#define COMBA 2
/** Integrated modular squaring. */
#define INTEG 3
/** Reuse multiplication for squaring. */
#define MULTP 4
/** Chosen prime field multiplication method. */
#define FP_SQR @FP_SQR@
/** Division-based reduction. */
#define BASIC 1
/** Fast reduction modulo special form prime. */
#define QUICK 2
/** Montgomery modular reduction. */
#define MONTY 3
/** Chosen prime field reduction method. */
#define FP_RDC @FP_RDC@
/** Inversion by Fermat's Little Theorem. */
#define BASIC 1
/** Binary inversion. */
#define BINAR 2
/** Integrated modular multiplication. */
#define MONTY 3
/** Extended Euclidean algorithm. */
#define EXGCD 4
/** Constant-time inversion by Bernstein-Yang division steps. */
#define DIVST 5
/** Use implementation provided by the lower layer. */
#define LOWER 8
/** Chosen prime field inversion method. */
#define FP_INV @FP_INV@
/** Binary modular exponentiation. */
#define BASIC 1
/** Sliding window modular exponentiation. */
#define SLIDE 2
/** Constant-time Montgomery powering ladder. */
#define MONTY 3
/** Chosen multiple precision modular exponentiation method. */
#define FP_EXP @FP_EXP@
/** Prime field arithmetic method */
#define FP_METHD "@FP_METHD@"
/** Basic quadratic extension field arithmetic. */
#define BASIC 1
/** Integrated extension field arithmetic. */
#define INTEG 3
/* Chosen extension field arithmetic method. */
#define FPX_QDR @FPX_QDR@
/** Basic cubic extension field arithmetic. */
#define BASIC 1
/** Integrated extension field arithmetic. */
#define INTEG 3
/* Chosen extension field arithmetic method. */
#define FPX_CBC @FPX_CBC@
/** Basic quadratic extension field arithmetic. */
#define BASIC 1
/** Lazy-reduced extension field arithmetic. */
#define LAZYR 2
/* Chosen extension field arithmetic method. */
#define FPX_RDC @FPX_RDC@
/** Prime extension field arithmetic method */
#define FPX_METHD "@FPX_METHD@"
/** Irreducible polynomial size in bits. */
#define FB_POLYN @FB_POLYN@
/** Number of Karatsuba steps. */
#define FB_KARAT @FB_KARAT@
/** Prefer trinomials over pentanomials. */
#cmakedefine FB_TRINO
/** Prefer square-root friendly polynomials. */
#cmakedefine FB_SQRTF
/** Precompute multiplication table for sqrt(z). */
#cmakedefine FB_PRECO
/** Width of window processing for exponentiation methods. */
#define FB_WIDTH @FB_WIDTH@
/** Shift-and-add multiplication. */
#define BASIC 1
/** Lopez-Dahab multiplication. */
#define LODAH 2
/** Integrated modular multiplication. */
#define INTEG 3
/** Chosen binary field multiplication method. */
#define FB_MUL @FB_MUL@
/** Basic squaring. */
#define BASIC 1
/** Table-based squaring. */
#define QUICK 2
/** Integrated modular squaring. */
#define INTEG 3
/** Chosen binary field squaring method. */
#define FB_SQR @FB_SQR@
/** Shift-and-add modular reduction. */
#define BASIC 1
/** Fast reduction modulo a trinomial or pentanomial. */
#define QUICK 2
/** Chosen binary field modular reduction method. */
#define FB_RDC @FB_RDC@
/** Square root by repeated squaring. */
#define BASIC 1
/** Fast square root extraction. */
#define QUICK 2
/** Chosen binary field modular reduction method. */
#define FB_SRT @FB_SRT@
/** Trace by repeated squaring. */
#define BASIC 1
/** Fast trace computation. */
#define QUICK 2
/** Chosen trace computation method. */
#define FB_TRC @FB_TRC@
/** Solve by half-trace computation. */
#define BASIC 1
/** Solve with precomputed half-traces. */
#define QUICK 2
/** Chosen method to solve a quadratic equation. */
#define FB_SLV @FB_SLV@
/** Inversion by Fermat's Little Theorem. */
#define BASIC 1
/** Binary inversion. */
#define BINAR 2
/** Almost inverse algorithm. */
#define ALMOS 3
/** Extended Euclidean algorithm. */
#define EXGCD 4
/** Itoh-Tsuji inversion. */
#define ITOHT 5
/** Hardware-friendly inversion by Brunner-Curiger-Hofstetter.*/
#define BRUCH 6
/** Constant-time version of almost inverse. */
#define CTAIA 7
/** Use implementation provided by the lower layer. */
#define LOWER 8
/** Chosen binary field inversion method. */
#define FB_INV @FB_INV@
/** Binary modular exponentiation. */
#define BASIC 1
/** Sliding window modular exponentiation. */
#define SLIDE 2
/** Constant-time Montgomery powering ladder. */
#define MONTY 3
/** Chosen multiple precision modular exponentiation method. */
#define FB_EXP @FB_EXP@
/** Iterated squaring/square-root by consecutive squaring/square-root. */
#define BASIC 1
/** Iterated squaring/square-root by table-based method. */
#define QUICK 2
/** Chosen method to solve a quadratic equation. */
#define FB_ITR @FB_ITR@
/** Binary field arithmetic method */
#define FB_METHD "@FB_METHD@"
/** Support for ordinary curves. */
#cmakedefine EP_PLAIN
/** Support for supersingular curves. */
#cmakedefine EP_SUPER
/** Support for prime curves with efficient endormorphisms. */
#cmakedefine EP_ENDOM
/** Use mixed coordinates. */
#cmakedefine EP_MIXED
/** Build precomputation table for generator. */
#cmakedefine EP_PRECO
/** Enable isogeny map for SSWU map-to-curve. */
#cmakedefine EP_CTMAP
/** Width of precomputation table for fixed point methods. */
#define EP_DEPTH @EP_DEPTH@
/** Width of window processing for unknown point methods. */
#define EP_WIDTH @EP_WIDTH@
/** Affine coordinates. */
#define BASIC 1
/** Projective coordinates. */
#define PROJC 2
/** Jacobian coordinates. */
#define JACOB 3
/** Chosen prime elliptic curve coordinate method. */
#define EP_ADD @EP_ADD@
/** Binary point multiplication. */
#define BASIC 1
/** Sliding window. */
#define SLIDE 2
/** Montgomery powering ladder. */
#define MONTY 3
/** Left-to-right Width-w NAF. */
#define LWNAF 4
/** Left-to-right Width-w NAF. */
#define LWREG 5
/** Chosen prime elliptic curve point multiplication method. */
#define EP_MUL @EP_MUL@
/** Binary point multiplication. */
#define BASIC 1
/** Single-table comb method. */
#define COMBS 2
/** Double-table comb method. */
#define COMBD 3
/** Left-to-right Width-w NAF. */
#define LWNAF 4
/** Chosen prime elliptic curve point multiplication method. */
#define EP_FIX @EP_FIX@
/** Basic simultaneouns point multiplication. */
#define BASIC 1
/** Shamir's trick. */
#define TRICK 2
/** Interleaving of w-(T)NAFs. */
#define INTER 3
/** Joint sparse form. */
#define JOINT 4
/** Chosen prime elliptic curve simulteanous point multiplication method. */
#define EP_SIM @EP_SIM@
/** Prime elliptic curve arithmetic method. */
#define EP_METHD "@EP_METHD@"
/** Support for ordinary curves without endormorphisms. */
#cmakedefine EB_PLAIN
/** Support for Koblitz anomalous binary curves. */
#cmakedefine EB_KBLTZ
/** Use mixed coordinates. */
#cmakedefine EB_MIXED
/** Build precomputation table for generator. */
#cmakedefine EB_PRECO
/** Width of precomputation table for fixed point methods. */
#define EB_DEPTH @EB_DEPTH@
/** Width of window processing for unknown point methods. */
#define EB_WIDTH @EB_WIDTH@
/** Binary elliptic curve arithmetic method. */
#define EB_METHD "@EB_METHD@"
/** Affine coordinates. */
#define BASIC 1
/** López-Dahab Projective coordinates. */
#define PROJC 2
/** Chosen binary elliptic curve coordinate method. */
#define EB_ADD @EB_ADD@
/** Binary point multiplication. */
#define BASIC 1
/** L<>pez-Dahab point multiplication. */
#define LODAH 2
/** Halving. */
#define HALVE 3
/** Left-to-right width-w (T)NAF. */
#define LWNAF 4
/** Right-to-left width-w (T)NAF. */
#define RWNAF 5
/** Chosen binary elliptic curve point multiplication method. */
#define EB_MUL @EB_MUL@
/** Binary point multiplication. */
#define BASIC 1
/** Single-table comb method. */
#define COMBS 2
/** Double-table comb method. */
#define COMBD 3
/** Left-to-right Width-w NAF. */
#define LWNAF 4
/** Chosen binary elliptic curve point multiplication method. */
#define EB_FIX @EB_FIX@
/** Basic simultaneouns point multiplication. */
#define BASIC 1
/** Shamir's trick. */
#define TRICK 2
/** Interleaving of w-(T)NAFs. */
#define INTER 3
/** Joint sparse form. */
#define JOINT 4
/** Chosen binary elliptic curve simulteanous point multiplication method. */
#define EB_SIM @EB_SIM@
/** Build precomputation table for generator. */
#cmakedefine ED_PRECO
/** Width of precomputation table for fixed point methods. */
#define ED_DEPTH @ED_DEPTH@
/** Width of window processing for unknown point methods. */
#define ED_WIDTH @ED_WIDTH@
/** Edwards elliptic curve arithmetic method. */
#define ED_METHD "@ED_METHD@"
/** Affine coordinates. */
#define BASIC 1
/** Simple projective twisted Edwards coordinates */
#define PROJC 2
/** Extended projective twisted Edwards coordinates */
#define EXTND 3
/** Chosen binary elliptic curve coordinate method. */
#define ED_ADD @ED_ADD@
/** Binary point multiplication. */
#define BASIC 1
/** Sliding window. */
#define SLIDE 2
/** Montgomery powering ladder. */
#define MONTY 3
/** Left-to-right Width-w NAF. */
#define LWNAF 4
/** Left-to-right Width-w NAF. */
#define LWREG 5
/** Chosen prime elliptic twisted Edwards curve point multiplication method. */
#define ED_MUL @ED_MUL@
/** Binary point multiplication. */
#define BASIC 1
/** Single-table comb method. */
#define COMBS 2
/** Double-table comb method. */
#define COMBD 3
/** Left-to-right Width-w NAF. */
#define LWNAF 4
/** Chosen prime elliptic twisted Edwards curve point multiplication method. */
#define ED_FIX @ED_FIX@
/** Basic simultaneouns point multiplication. */
#define BASIC 1
/** Shamir's trick. */
#define TRICK 2
/** Interleaving of w-(T)NAFs. */
#define INTER 3
/** Joint sparse form. */
#define JOINT 4
/** Chosen prime elliptic curve simulteanous point multiplication method. */
#define ED_SIM @ED_SIM@
/** Prime curves. */
#define PRIME 1
/** Binary curves. */
#define CHAR2 2
/** Edwards curves */
#define EDDIE 3
/** Chosen elliptic curve type. */
#define EC_CUR @EC_CUR@
/** Chosen elliptic curve cryptography method. */
#define EC_METHD "@EC_METHD@"
/** Prefer curves with efficient endomorphisms. */
#cmakedefine EC_ENDOM
/** Basic quadratic extension field arithmetic. */
#define BASIC 1
/** Lazy-reduced extension field arithmetic. */
#define LAZYR 2
/* Chosen extension field arithmetic method. */
#define PP_EXT @PP_EXT@
/** Bilinear pairing method. */
#define PP_METHD "@PP_METHD@"
/** Tate pairing. */
#define TATEP 1
/** Weil pairing. */
#define WEILP 2
/** Optimal ate pairing. */
#define OATEP 3
/** Chosen pairing method over prime elliptic curves. */
#define PP_MAP @PP_MAP@
/** SHA-224 hash function. */
#define SH224 2
/** SHA-256 hash function. */
#define SH256 3
/** SHA-384 hash function. */
#define SH384 4
/** SHA-512 hash function. */
#define SH512 5
/** BLAKE2s-160 hash function. */
#define B2S160 6
/** BLAKE2s-256 hash function. */
#define B2S256 7
/** Chosen hash function. */
#define MD_MAP @MD_MAP@
/** Choice of hash function. */
#define MD_METHD "@MD_METHD@"
/** Chosen RSA method. */
#cmakedefine CP_CRT
/** RSA without padding. */
#define BASIC 1
/** RSA PKCS#1 v1.5 padding. */
#define PKCS1 2
/** RSA PKCS#1 v2.1 padding. */
#define PKCS2 3
/** Chosen RSA padding method. */
#define CP_RSAPD @CP_RSAPD@
/** Automatic memory allocation. */
#define AUTO 1
/** Dynamic memory allocation. */
#define DYNAMIC 2
/** Chosen memory allocation policy. */
#define ALLOC @ALLOC@
/** NIST HASH-DRBG generator. */
#define HASHD 1
/** Intel RdRand instruction. */
#define RDRND 2
/** Operating system underlying generator. */
#define UDEV 3
/** Override library generator with the callback. */
#define CALL 4
/** Chosen random generator. */
#define RAND @RAND@
/** Standard C library generator. */
#define LIBC 1
/** Intel RdRand instruction. */
#define RDRND 2
/** Device node generator. */
#define UDEV 3
/** Use Windows' CryptGenRandom. */
#define WCGR 4
/** Chosen random generator seeder. */
#cmakedefine SEED @SEED@
/** GNU/Linux operating system. */
#define LINUX 1
/** FreeBSD operating system. */
#define FREEBSD 2
/** Windows operating system. */
#define MACOSX 3
/** Windows operating system. */
#define WINDOWS 4
/** Android operating system. */
#define DROID 5
/** Arduino platform. */
#define DUINO 6
/** OpenBSD operating system. */
#define OPENBSD 7
/** Detected operation system. */
#cmakedefine OPSYS @OPSYS@
/** OpenMP multithreading support. */
#define OPENMP 1
/** POSIX multithreading support. */
#define PTHREAD 2
/** Chosen multithreading API. */
#cmakedefine MULTI @MULTI@
/** Per-process high-resolution timer. */
#define HREAL 1
/** Per-process high-resolution timer. */
#define HPROC 2
/** Per-thread high-resolution timer. */
#define HTHRD 3
/** POSIX-compatible timer. */
#define POSIX 4
/** ANSI-compatible timer. */
#define ANSI 5
/** Cycle-counting timer. */
#define CYCLE 6
/** Performance monitoring framework. */
#define PERF 7
/** Chosen timer. */
#cmakedefine TIMER @TIMER@
/** Prefix to identity this build of the library. */
#cmakedefine LABEL @LABEL@
#ifndef ASM
#include "relic_label.h"
/**
* Prints the project options selected at build time.
*/
void conf_print(void);
#endif /* ASM */
#endif /* !RLC_CONF_H */