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