openssl/crypto
Richard Levitte fcd2d5a612 Refactor the computation of API version limits
Previously, the API version limit was indicated with a numeric version
number.  This was "natural" in the pre-3.0.0 because the version was
this simple number.

With 3.0.0, the version is divided into three separate numbers, and
it's only the major number that counts, but we still need to be able
to support pre-3.0.0 version limits.

Therefore, we allow OPENSSL_API_COMPAT to be defined with a pre-3.0.0
style numeric version number or with a simple major number, i.e. can
be defined like this for any application:

    -D OPENSSL_API_COMPAT=0x10100000L
    -D OPENSSL_API_COMPAT=3

Since the pre-3.0.0 numerical version numbers are high, it's easy to
distinguish between a simple major number and a pre-3.0.0 numerical
version number and to thereby support both forms at the same time.

Internally, we define the following macros depending on the value of
OPENSSL_API_COMPAT:

    OPENSSL_API_0_9_8
    OPENSSL_API_1_0_0
    OPENSSL_API_1_1_0
    OPENSSL_API_3

They indicate that functions marked for deprecation in the
corresponding major release shall not be built if defined.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/7724)
2018-12-06 12:24:48 +01:00
..
aes Update copyright year 2018-09-11 13:45:17 +01:00
aria Fix potential null problem. 2017-09-01 09:30:18 +10:00
asn1 Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
async arch/async_posix.h: improve portability. 2018-10-19 10:29:21 +02:00
bf Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
bio Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
blake2 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
bn Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
buffer Update copyright year 2018-04-03 13:57:12 +01:00
camellia Update copyright year 2018-09-11 13:45:17 +01:00
cast Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
chacha chacha/asm/chacha-x86_64.pl: add dedicated path for 128-byte inputs. 2018-07-03 19:02:02 +02:00
cmac Adapt other EVP code to use EVP_MAC instead of direct implementation calls 2018-10-30 05:34:50 +01:00
cms Update copyright year 2018-09-11 13:45:17 +01:00
comp Fix last(?) batch of malloc-NULL places 2018-04-26 14:02:24 -04:00
conf Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
ct Use secure_getenv(3) when available. 2018-09-24 11:21:18 +10:00
des Update copyright year 2018-04-03 13:57:12 +01:00
dh Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
dsa Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
dso Extend dladdr() for AIX, consequence from changes for openssl#6368. 2018-08-22 21:50:33 +02:00
ec Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
engine Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
err Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
evp Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
gmac GMAC implementation 2018-11-05 08:09:41 +10:00
hmac Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
idea Remove parentheses of return. 2017-10-18 16:05:06 +01:00
include/internal bn/bn_{div|shift}.c: introduce fixed-top interfaces. 2018-12-05 10:33:57 +00:00
kdf Reset the HKDF state between operations 2018-10-29 14:06:54 +00:00
kmac KMAC implementation using EVP_MAC 2018-11-14 07:01:09 +10:00
lhash Update copyright year 2018-09-11 13:45:17 +01:00
md2 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
md4 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
md5 Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
mdc2 Remove parentheses of return. 2017-10-18 16:05:06 +01:00
modes Update copyright year 2018-09-11 13:45:17 +01:00
objects KMAC implementation using EVP_MAC 2018-11-14 07:01:09 +10:00
ocsp Update copyright year 2018-09-11 13:45:17 +01:00
pem key zeroisation for pvkfmt now done on all branch paths 2018-09-05 05:14:02 +10:00
perlasm Update copyright year 2018-09-11 13:45:17 +01:00
pkcs7 Update copyright year 2018-09-11 13:45:17 +01:00
pkcs12 Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
poly1305 Add poly1305 MAC support 2018-11-05 13:07:07 +08:00
rand Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
rc2 Remove email addresses from source code. 2017-10-13 10:06:59 -04:00
rc4 Update copyright year 2018-09-11 13:45:17 +01:00
rc5 Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
ripemd Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
rsa Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
seed Update copyright year 2018-09-11 13:45:17 +01:00
sha sha/asm/sha512p8-ppc.pl: optimize epilogue. 2018-11-16 09:23:50 +01:00
siphash Fix SipHash init order. 2018-11-12 07:15:55 +01:00
sm2 EVP module documentation pass 2018-10-17 13:22:14 +03:00
sm3 SM3: restructure to EVP internal and update doc to right location 2017-11-06 07:21:15 +08:00
sm4 SM4: Add SM4 block cipher to EVP 2017-10-31 15:19:14 +10:00
srp Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
stack Revert "stack/stack.c: omit redundant NULL checks." 2018-08-09 14:37:10 +01:00
store crypto/*: address standard-compilance nits. 2018-07-20 13:40:30 +02:00
ts Check conversion return in ASN1_INTEGER_print_bio. 2018-07-31 11:37:05 +10:00
txt_db Update copyright year 2018-04-03 13:57:12 +01:00
ui crypto/ui/ui_openssl.c: make sure to recognise ENXIO and EIO too 2018-09-20 06:39:07 +02:00
whrlpool Harmonize the make variables across all known platforms families 2018-02-14 17:13:53 +01:00
x509 Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
x509v3 Support GeneralSubtrees with minimum = 0 2018-10-27 12:11:41 +08:00
alphacpuid.pl
arm64cpuid.pl {arm64|x86_64}cpuid.pl: add special 16-byte case to OPENSSL_memcmp. 2018-06-03 21:15:18 +02:00
arm_arch.h Fix building linux-armv4 with --strict-warnings 2018-04-20 15:49:33 +02:00
armcap.c crypto/armcap.c: mask SHA512 hardware detection on iOS. 2018-03-06 23:18:24 +01:00
armv4cpuid.pl Update copyright year 2018-05-01 13:34:30 +01:00
build.info KMAC implementation using EVP_MAC 2018-11-14 07:01:09 +10:00
c64xpluscpuid.pl Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
cpt_err.c Fix last(?) batch of malloc-NULL places 2018-04-26 14:02:24 -04:00
cryptlib.c minor fixes for Windows 2018-09-12 09:16:07 +02:00
ctype.c Check for EOF in ASCII conversions. 2017-08-25 06:42:17 +10:00
cversion.c Refactor the computation of API version limits 2018-12-06 12:24:48 +01:00
dllmain.c Update copyright year 2018-09-11 13:45:17 +01:00
ebcdic.c Remove email addresses from source code. 2017-10-13 10:06:59 -04:00
ex_data.c Ensure the thread keys are always allocated in the same order 2018-04-20 15:45:06 +02:00
getenv.c Use secure_getenv(3) when available. 2018-09-24 11:21:18 +10:00
ia64cpuid.S Fix typo in files in crypto folder 2017-08-05 20:42:06 +02:00
init.c Add automatic initializations support for EVP_MAC objects 2018-10-29 13:35:19 +01:00
LPdir_nyi.c
LPdir_unix.c typo-fixes: miscellaneous typo fixes 2018-09-21 23:55:22 +02:00
LPdir_vms.c
LPdir_win.c
LPdir_win32.c
LPdir_wince.c
mem.c crypto/mem.c: switch to tsan_assist.h in CRYPTO_MDEBUG. 2018-08-07 09:08:50 +02:00
mem_clr.c
mem_dbg.c Update copyright year 2018-02-13 13:59:25 +00:00
mem_sec.c test/secmemtest: test secure memory only if it is implemented 2018-10-05 12:19:48 +02:00
mips_arch.h
o_dir.c Move e_os.h to be the very first include. 2017-08-30 07:20:44 +10:00
o_fips.c
o_fopen.c Add missing include file. 2018-09-17 10:40:32 +10:00
o_init.c Use "" not <> on e_os.h include 2017-08-22 11:07:56 -04:00
o_str.c Revert "GH614: Use memcpy()/strdup() when possible" 2017-09-14 10:26:54 +10:00
o_time.c Update copyright year 2018-04-03 13:57:12 +01:00
pariscid.pl PA-RISC assembly pack: make it work with GNU assembler for HP-UX. 2018-06-25 16:45:48 +02:00
ppc_arch.h
ppccap.c crypto/ppccap.c: wire new ChaCha20_ctr32_vsx. 2018-06-06 22:14:15 +02:00
ppccpuid.pl
s390x_arch.h s390x assembly pack: add OPENSSL_s390xcap environment variable. 2018-10-17 14:02:34 +02:00
s390xcap.c Update copyright year 2018-11-20 13:26:47 +00:00
s390xcpuid.pl s390x assembly pack: add OPENSSL_s390xcap environment variable. 2018-10-17 14:02:34 +02:00
sparc_arch.h
sparccpuid.S
sparcv9cap.c Create a prototype for OPENSSL_rdtsc 2017-11-25 14:30:11 +01:00
threads_none.c crypto/threads_*: remove CRYPTO_atomic_{read|write}. 2018-08-17 12:40:39 +02:00
threads_pthread.c crypto/threads_*: remove CRYPTO_atomic_{read|write}. 2018-08-17 12:40:39 +02:00
threads_win.c crypto/threads_*: remove CRYPTO_atomic_{read|write}. 2018-08-17 12:40:39 +02:00
uid.c Update copyright year 2018-09-11 13:45:17 +01:00
vms_rms.h
x86_64cpuid.pl {arm64|x86_64}cpuid.pl: add special 16-byte case to OPENSSL_memcmp. 2018-06-03 21:15:18 +02:00
x86cpuid.pl Fix issues in ia32 RDRAND asm leading to reduced entropy 2018-03-08 10:27:49 -05:00