1/*
2 * {- join("\n * ", @autowarntext) -}
3 *
4 * Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
5 *
6 * Licensed under the Apache License 2.0 (the "License").  You may not use
7 * this file except in compliance with the License.  You can obtain a copy
8 * in the file LICENSE in the source distribution or at
9 * https://www.openssl.org/source/license.html
10 */
11
12#ifndef OPENSSL_CONFIGURATION_H
13# define OPENSSL_CONFIGURATION_H
14# pragma once
15
16# ifdef  __cplusplus
17extern "C" {
18# endif
19
20# ifdef OPENSSL_ALGORITHM_DEFINES
21#  error OPENSSL_ALGORITHM_DEFINES no longer supported
22# endif
23
24/*
25 * OpenSSL was configured with the following options:
26 */
27
28{- if (@{$config{openssl_sys_defines}}) {
29      foreach (@{$config{openssl_sys_defines}}) {
30        $OUT .= "# ifndef $_\n";
31        $OUT .= "#  define $_ 1\n";
32        $OUT .= "# endif\n";
33      }
34    }
35    foreach (@{$config{openssl_api_defines}}) {
36        (my $macro, my $value) = $_ =~ /^(.*?)=(.*?)$/;
37        $OUT .= "# define $macro $value\n";
38    }
39    if (@{$config{openssl_feature_defines}}) {
40      foreach (@{$config{openssl_feature_defines}}) {
41        $OUT .= "# ifndef $_\n";
42        $OUT .= "#  define $_\n";
43        $OUT .= "# endif\n";
44      }
45    }
46    "";
47-}
48
49/* Generate 80386 code? */
50{- $config{processor} eq "386" ? "# define" : "# undef" -} I386_ONLY
51
52/*
53 * The following are cipher-specific, but are part of the public API.
54 */
55# if !defined(OPENSSL_SYS_UEFI)
56{- $config{bn_ll} ? "#  define" : "#  undef" -} BN_LLONG
57/* Only one for the following should be defined */
58{- $config{b64l} ? "#  define" : "#  undef" -} SIXTY_FOUR_BIT_LONG
59{- $config{b64}  ? "#  define" : "#  undef" -} SIXTY_FOUR_BIT
60{- $config{b32}  ? "#  define" : "#  undef" -} THIRTY_TWO_BIT
61# endif
62
63# define RC4_INT {- $config{rc4_int} -}
64
65# ifdef  __cplusplus
66}
67# endif
68
69#endif                          /* OPENSSL_CONFIGURATION_H */
70