xref: /freebsd-src/crypto/openssl/include/internal/cryptlib.h (revision c9cf7b5cb1693e44f8caa63f47bbb9ae85508687)
1e71b7053SJung-uk Kim /*
2e71b7053SJung-uk Kim  * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
3e71b7053SJung-uk Kim  *
4e71b7053SJung-uk Kim  * Licensed under the OpenSSL license (the "License").  You may not use
5e71b7053SJung-uk Kim  * this file except in compliance with the License.  You can obtain a copy
6e71b7053SJung-uk Kim  * in the file LICENSE in the source distribution or at
7e71b7053SJung-uk Kim  * https://www.openssl.org/source/license.html
8e71b7053SJung-uk Kim  */
9e71b7053SJung-uk Kim 
10e71b7053SJung-uk Kim #ifndef HEADER_CRYPTLIB_H
11e71b7053SJung-uk Kim # define HEADER_CRYPTLIB_H
12e71b7053SJung-uk Kim 
13e71b7053SJung-uk Kim # include <stdlib.h>
14e71b7053SJung-uk Kim # include <string.h>
15e71b7053SJung-uk Kim 
16e71b7053SJung-uk Kim # ifdef OPENSSL_USE_APPLINK
17e71b7053SJung-uk Kim #  undef BIO_FLAGS_UPLINK
18e71b7053SJung-uk Kim #  define BIO_FLAGS_UPLINK 0x8000
19e71b7053SJung-uk Kim #  include "ms/uplink.h"
20e71b7053SJung-uk Kim # endif
21e71b7053SJung-uk Kim 
22e71b7053SJung-uk Kim # include <openssl/crypto.h>
23e71b7053SJung-uk Kim # include <openssl/buffer.h>
24e71b7053SJung-uk Kim # include <openssl/bio.h>
25e71b7053SJung-uk Kim # include <openssl/err.h>
26e71b7053SJung-uk Kim # include "internal/nelem.h"
27e71b7053SJung-uk Kim 
28e71b7053SJung-uk Kim #ifdef NDEBUG
29e71b7053SJung-uk Kim # define ossl_assert(x) ((x) != 0)
30e71b7053SJung-uk Kim #else
31e71b7053SJung-uk Kim __owur static ossl_inline int ossl_assert_int(int expr, const char *exprstr,
32e71b7053SJung-uk Kim                                               const char *file, int line)
33e71b7053SJung-uk Kim {
34e71b7053SJung-uk Kim     if (!expr)
35e71b7053SJung-uk Kim         OPENSSL_die(exprstr, file, line);
36e71b7053SJung-uk Kim 
37e71b7053SJung-uk Kim     return expr;
38e71b7053SJung-uk Kim }
39e71b7053SJung-uk Kim 
40e71b7053SJung-uk Kim # define ossl_assert(x) ossl_assert_int((x) != 0, "Assertion failed: "#x, \
41e71b7053SJung-uk Kim                                          __FILE__, __LINE__)
42e71b7053SJung-uk Kim 
43e71b7053SJung-uk Kim #endif
44e71b7053SJung-uk Kim 
45e71b7053SJung-uk Kim typedef struct ex_callback_st EX_CALLBACK;
46e71b7053SJung-uk Kim 
47e71b7053SJung-uk Kim DEFINE_STACK_OF(EX_CALLBACK)
48e71b7053SJung-uk Kim 
49e71b7053SJung-uk Kim typedef struct app_mem_info_st APP_INFO;
50e71b7053SJung-uk Kim 
51e71b7053SJung-uk Kim typedef struct mem_st MEM;
52e71b7053SJung-uk Kim DEFINE_LHASH_OF(MEM);
53e71b7053SJung-uk Kim 
54e71b7053SJung-uk Kim # define OPENSSL_CONF             "openssl.cnf"
55e71b7053SJung-uk Kim 
56e71b7053SJung-uk Kim # ifndef OPENSSL_SYS_VMS
57e71b7053SJung-uk Kim #  define X509_CERT_AREA          OPENSSLDIR
58e71b7053SJung-uk Kim #  define X509_CERT_DIR           OPENSSLDIR "/certs"
59e71b7053SJung-uk Kim #  define X509_CERT_FILE          OPENSSLDIR "/cert.pem"
60e71b7053SJung-uk Kim #  define X509_PRIVATE_DIR        OPENSSLDIR "/private"
61e71b7053SJung-uk Kim #  define CTLOG_FILE              OPENSSLDIR "/ct_log_list.cnf"
62e71b7053SJung-uk Kim # else
63e71b7053SJung-uk Kim #  define X509_CERT_AREA          "OSSL$DATAROOT:[000000]"
64e71b7053SJung-uk Kim #  define X509_CERT_DIR           "OSSL$DATAROOT:[CERTS]"
65e71b7053SJung-uk Kim #  define X509_CERT_FILE          "OSSL$DATAROOT:[000000]cert.pem"
66e71b7053SJung-uk Kim #  define X509_PRIVATE_DIR        "OSSL$DATAROOT:[PRIVATE]"
67e71b7053SJung-uk Kim #  define CTLOG_FILE              "OSSL$DATAROOT:[000000]ct_log_list.cnf"
68e71b7053SJung-uk Kim # endif
69e71b7053SJung-uk Kim 
70e71b7053SJung-uk Kim # define X509_CERT_DIR_EVP        "SSL_CERT_DIR"
71e71b7053SJung-uk Kim # define X509_CERT_FILE_EVP       "SSL_CERT_FILE"
72e71b7053SJung-uk Kim # define CTLOG_FILE_EVP           "CTLOG_FILE"
73e71b7053SJung-uk Kim 
74e71b7053SJung-uk Kim /* size of string representations */
75e71b7053SJung-uk Kim # define DECIMAL_SIZE(type)      ((sizeof(type)*8+2)/3+1)
76e71b7053SJung-uk Kim # define HEX_SIZE(type)          (sizeof(type)*2)
77e71b7053SJung-uk Kim 
78e71b7053SJung-uk Kim void OPENSSL_cpuid_setup(void);
79e71b7053SJung-uk Kim extern unsigned int OPENSSL_ia32cap_P[];
80e71b7053SJung-uk Kim void OPENSSL_showfatal(const char *fmta, ...);
81e71b7053SJung-uk Kim void crypto_cleanup_all_ex_data_int(void);
82e71b7053SJung-uk Kim int openssl_init_fork_handlers(void);
83e71b7053SJung-uk Kim 
84*c9cf7b5cSJung-uk Kim char *ossl_safe_getenv(const char *name);
85*c9cf7b5cSJung-uk Kim 
86e71b7053SJung-uk Kim extern CRYPTO_RWLOCK *memdbg_lock;
87e71b7053SJung-uk Kim int openssl_strerror_r(int errnum, char *buf, size_t buflen);
88e71b7053SJung-uk Kim # if !defined(OPENSSL_NO_STDIO)
89e71b7053SJung-uk Kim FILE *openssl_fopen(const char *filename, const char *mode);
90e71b7053SJung-uk Kim # else
91e71b7053SJung-uk Kim void *openssl_fopen(const char *filename, const char *mode);
92e71b7053SJung-uk Kim # endif
93e71b7053SJung-uk Kim 
94e71b7053SJung-uk Kim uint32_t OPENSSL_rdtsc(void);
95e71b7053SJung-uk Kim 
96e71b7053SJung-uk Kim #endif
97