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