192f3ab15Sopenharmony_ci#include <openssl/opensslv.h>
292f3ab15Sopenharmony_ci#include <openssl/opensslconf.h>
392f3ab15Sopenharmony_ci
492f3ab15Sopenharmony_ci#define VERSION2(n, v) RUST_VERSION_##n##_##v
592f3ab15Sopenharmony_ci#define VERSION(n, v) VERSION2(n, v)
692f3ab15Sopenharmony_ci
792f3ab15Sopenharmony_ci#define NEW_VERSION2(a, b, c) RUST_VERSION_NEW_OPENSSL_##a##_##b##_##c
892f3ab15Sopenharmony_ci#define NEW_VERSION(a, b, c) NEW_VERSION2(a, b, c)
992f3ab15Sopenharmony_ci
1092f3ab15Sopenharmony_ci#ifdef LIBRESSL_VERSION_NUMBER
1192f3ab15Sopenharmony_ciVERSION(LIBRESSL, LIBRESSL_VERSION_NUMBER)
1292f3ab15Sopenharmony_ci#elif defined OPENSSL_VERSION_MAJOR
1392f3ab15Sopenharmony_ciNEW_VERSION(OPENSSL_VERSION_MAJOR, OPENSSL_VERSION_MINOR, OPENSSL_VERSION_PATCH)
1492f3ab15Sopenharmony_ci#else
1592f3ab15Sopenharmony_ciVERSION(OPENSSL, OPENSSL_VERSION_NUMBER)
1692f3ab15Sopenharmony_ci#endif
1792f3ab15Sopenharmony_ci
1892f3ab15Sopenharmony_ci#ifdef OPENSSL_IS_BORINGSSL
1992f3ab15Sopenharmony_ciRUST_OPENSSL_IS_BORINGSSL
2092f3ab15Sopenharmony_ci#endif
2192f3ab15Sopenharmony_ci
2292f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_BF
2392f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_BF
2492f3ab15Sopenharmony_ci#endif
2592f3ab15Sopenharmony_ci
2692f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_BUF_FREELISTS
2792f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_BUF_FREELISTS
2892f3ab15Sopenharmony_ci#endif
2992f3ab15Sopenharmony_ci
3092f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_CHACHA
3192f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_CHACHA
3292f3ab15Sopenharmony_ci#endif
3392f3ab15Sopenharmony_ci
3492f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_IDEA
3592f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_IDEA
3692f3ab15Sopenharmony_ci#endif
3792f3ab15Sopenharmony_ci
3892f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_CAMELLIA
3992f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_CAMELLIA
4092f3ab15Sopenharmony_ci#endif
4192f3ab15Sopenharmony_ci
4292f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_CAST
4392f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_CAST
4492f3ab15Sopenharmony_ci#endif
4592f3ab15Sopenharmony_ci
4692f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_CMS
4792f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_CMS
4892f3ab15Sopenharmony_ci#endif
4992f3ab15Sopenharmony_ci
5092f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_COMP
5192f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_COMP
5292f3ab15Sopenharmony_ci#endif
5392f3ab15Sopenharmony_ci
5492f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_EC
5592f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_EC
5692f3ab15Sopenharmony_ci#endif
5792f3ab15Sopenharmony_ci
5892f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_EC2M
5992f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_EC2M
6092f3ab15Sopenharmony_ci#endif
6192f3ab15Sopenharmony_ci
6292f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_ENGINE
6392f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_ENGINE
6492f3ab15Sopenharmony_ci#endif
6592f3ab15Sopenharmony_ci
6692f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_KRB5
6792f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_KRB5
6892f3ab15Sopenharmony_ci#endif
6992f3ab15Sopenharmony_ci
7092f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_NEXTPROTONEG
7192f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_NEXTPROTONEG
7292f3ab15Sopenharmony_ci#endif
7392f3ab15Sopenharmony_ci
7492f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_OCSP
7592f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_OCSP
7692f3ab15Sopenharmony_ci#endif
7792f3ab15Sopenharmony_ci
7892f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_OCB
7992f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_OCB
8092f3ab15Sopenharmony_ci#endif
8192f3ab15Sopenharmony_ci
8292f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_PSK
8392f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_PSK
8492f3ab15Sopenharmony_ci#endif
8592f3ab15Sopenharmony_ci
8692f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_RC4
8792f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_RC4
8892f3ab15Sopenharmony_ci#endif
8992f3ab15Sopenharmony_ci
9092f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_RFC3779
9192f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_RFC3779
9292f3ab15Sopenharmony_ci#endif
9392f3ab15Sopenharmony_ci
9492f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_RMD160
9592f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_RMD160
9692f3ab15Sopenharmony_ci#endif
9792f3ab15Sopenharmony_ci
9892f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_SHA
9992f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_SHA
10092f3ab15Sopenharmony_ci#endif
10192f3ab15Sopenharmony_ci
10292f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_SRP
10392f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_SRP
10492f3ab15Sopenharmony_ci#endif
10592f3ab15Sopenharmony_ci
10692f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_SSL3_METHOD
10792f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_SSL3_METHOD
10892f3ab15Sopenharmony_ci#endif
10992f3ab15Sopenharmony_ci
11092f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_TLSEXT
11192f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_TLSEXT
11292f3ab15Sopenharmony_ci#endif
11392f3ab15Sopenharmony_ci
11492f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_SOCK
11592f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_SOCK
11692f3ab15Sopenharmony_ci#endif
11792f3ab15Sopenharmony_ci
11892f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_STDIO
11992f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_STDIO
12092f3ab15Sopenharmony_ci#endif
12192f3ab15Sopenharmony_ci
12292f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_SM3
12392f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_SM3
12492f3ab15Sopenharmony_ci#endif
12592f3ab15Sopenharmony_ci
12692f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_SM4
12792f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_SM4
12892f3ab15Sopenharmony_ci#endif
12992f3ab15Sopenharmony_ci
13092f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_DEPRECATED_3_0
13192f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_DEPRECATED_3_0
13292f3ab15Sopenharmony_ci#endif
13392f3ab15Sopenharmony_ci
13492f3ab15Sopenharmony_ci#ifdef OPENSSL_NO_SEED
13592f3ab15Sopenharmony_ciRUST_CONF_OPENSSL_NO_SEED
13692f3ab15Sopenharmony_ci#endif
137