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