/* * {- join("\n * ", @autowarntext) -} * * Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html */ #ifndef OPENSSL_CONFIGURATION_H #define OPENSSL_CONFIGURATION_H #pragma once #ifdef __cplusplus extern "C" { #endif #ifdef OPENSSL_ALGORITHM_DEFINES #error OPENSSL_ALGORITHM_DEFINES no longer supported #endif /* * OpenSSL was configured with the following options: */ /* clang-format off */ {- if (@{$config{openssl_sys_defines}}) { foreach (@{$config{openssl_sys_defines}}) { $OUT .= "# ifndef $_\n"; $OUT .= "# define $_ 1\n"; $OUT .= "# endif\n"; } } foreach (@{$config{openssl_api_defines}}) { (my $macro, my $value) = $_ =~ /^(.*?)=(.*?)$/; $OUT .= "# define $macro $value\n"; } if (@{$config{openssl_feature_defines}}) { foreach (@{$config{openssl_feature_defines}}) { $OUT .= "# ifndef $_\n"; $OUT .= "# define $_\n"; $OUT .= "# endif\n"; } } ""; -} /* clang-format on */ /* Generate 80386 code? */ /* clang-format off */ {- $config{processor} eq "386" ? "# define" : "# undef" -} I386_ONLY /* clang-format on */ /* * The UEFI build supports both 32-bit and 64-bit builds from a single run * of the Configure script. To allow this, they define THIRTY_TWO_BIT and * SIXTY_FOUR_BIT appropriately for their builds, and we should not touch * them in that case. */ #if !defined(OPENSSL_SYS_UEFI) /* clang-format off */ {- $config{bn_ll} ? "# define" : "# undef" -} BN_LLONG /* clang-format on */ /* Only one for the following should be defined */ /* clang-format off */ {- $config{b64l} ? "# define" : "# undef" -} SIXTY_FOUR_BIT_LONG /* clang-format on */ /* clang-format off */ {- $config{b64} ? "# define" : "# undef" -} SIXTY_FOUR_BIT /* clang-format on */ /* clang-format off */ {- $config{b32} ? "# define" : "# undef" -} THIRTY_TWO_BIT /* clang-format on */ #endif /* * The following are cipher-specific, but are part of the public API. */ /* clang-format off */ # define RC4_INT {- $config{rc4_int} -} /* clang-format on */ #if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) #define OPENSSL_NO_COMP_ALG #else #undef OPENSSL_NO_COMP_ALG #endif #ifdef __cplusplus } #endif #endif /* OPENSSL_CONFIGURATION_H */