1 /* 2 * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the OpenSSL license (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10 #ifndef HEADER_OPENSSL_TYPES_H 11 # define HEADER_OPENSSL_TYPES_H 12 13 #include <limits.h> 14 15 #ifdef __cplusplus 16 extern "C" { 17 #endif 18 19 # include <openssl/e_os2.h> 20 21 # ifdef NO_ASN1_TYPEDEFS 22 # define ASN1_INTEGER ASN1_STRING 23 # define ASN1_ENUMERATED ASN1_STRING 24 # define ASN1_BIT_STRING ASN1_STRING 25 # define ASN1_OCTET_STRING ASN1_STRING 26 # define ASN1_PRINTABLESTRING ASN1_STRING 27 # define ASN1_T61STRING ASN1_STRING 28 # define ASN1_IA5STRING ASN1_STRING 29 # define ASN1_UTCTIME ASN1_STRING 30 # define ASN1_GENERALIZEDTIME ASN1_STRING 31 # define ASN1_TIME ASN1_STRING 32 # define ASN1_GENERALSTRING ASN1_STRING 33 # define ASN1_UNIVERSALSTRING ASN1_STRING 34 # define ASN1_BMPSTRING ASN1_STRING 35 # define ASN1_VISIBLESTRING ASN1_STRING 36 # define ASN1_UTF8STRING ASN1_STRING 37 # define ASN1_BOOLEAN int 38 # define ASN1_NULL int 39 # else 40 typedef struct asn1_string_st ASN1_INTEGER; 41 typedef struct asn1_string_st ASN1_ENUMERATED; 42 typedef struct asn1_string_st ASN1_BIT_STRING; 43 typedef struct asn1_string_st ASN1_OCTET_STRING; 44 typedef struct asn1_string_st ASN1_PRINTABLESTRING; 45 typedef struct asn1_string_st ASN1_T61STRING; 46 typedef struct asn1_string_st ASN1_IA5STRING; 47 typedef struct asn1_string_st ASN1_GENERALSTRING; 48 typedef struct asn1_string_st ASN1_UNIVERSALSTRING; 49 typedef struct asn1_string_st ASN1_BMPSTRING; 50 typedef struct asn1_string_st ASN1_UTCTIME; 51 typedef struct asn1_string_st ASN1_TIME; 52 typedef struct asn1_string_st ASN1_GENERALIZEDTIME; 53 typedef struct asn1_string_st ASN1_VISIBLESTRING; 54 typedef struct asn1_string_st ASN1_UTF8STRING; 55 typedef struct asn1_string_st ASN1_STRING; 56 typedef int ASN1_BOOLEAN; 57 typedef int ASN1_NULL; 58 # endif 59 60 typedef struct asn1_object_st ASN1_OBJECT; 61 62 typedef struct ASN1_ITEM_st ASN1_ITEM; 63 typedef struct asn1_pctx_st ASN1_PCTX; 64 typedef struct asn1_sctx_st ASN1_SCTX; 65 66 # ifdef _WIN32 67 # undef X509_NAME 68 # undef X509_EXTENSIONS 69 # undef PKCS7_ISSUER_AND_SERIAL 70 # undef PKCS7_SIGNER_INFO 71 # undef OCSP_REQUEST 72 # undef OCSP_RESPONSE 73 # endif 74 75 # ifdef BIGNUM 76 # undef BIGNUM 77 # endif 78 struct dane_st; 79 typedef struct bio_st BIO; 80 typedef struct bignum_st BIGNUM; 81 typedef struct bignum_ctx BN_CTX; 82 typedef struct bn_blinding_st BN_BLINDING; 83 typedef struct bn_mont_ctx_st BN_MONT_CTX; 84 typedef struct bn_recp_ctx_st BN_RECP_CTX; 85 typedef struct bn_gencb_st BN_GENCB; 86 87 typedef struct buf_mem_st BUF_MEM; 88 89 typedef struct evp_cipher_st EVP_CIPHER; 90 typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; 91 typedef struct evp_md_st EVP_MD; 92 typedef struct evp_md_ctx_st EVP_MD_CTX; 93 typedef struct evp_pkey_st EVP_PKEY; 94 95 typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; 96 97 typedef struct evp_pkey_method_st EVP_PKEY_METHOD; 98 typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; 99 100 typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX; 101 102 typedef struct hmac_ctx_st HMAC_CTX; 103 104 typedef struct dh_st DH; 105 typedef struct dh_method DH_METHOD; 106 107 typedef struct dsa_st DSA; 108 typedef struct dsa_method DSA_METHOD; 109 110 typedef struct rsa_st RSA; 111 typedef struct rsa_meth_st RSA_METHOD; 112 113 typedef struct ec_key_st EC_KEY; 114 typedef struct ec_key_method_st EC_KEY_METHOD; 115 116 typedef struct rand_meth_st RAND_METHOD; 117 typedef struct rand_drbg_st RAND_DRBG; 118 119 typedef struct ssl_dane_st SSL_DANE; 120 typedef struct x509_st X509; 121 typedef struct X509_algor_st X509_ALGOR; 122 typedef struct X509_crl_st X509_CRL; 123 typedef struct x509_crl_method_st X509_CRL_METHOD; 124 typedef struct x509_revoked_st X509_REVOKED; 125 typedef struct X509_name_st X509_NAME; 126 typedef struct X509_pubkey_st X509_PUBKEY; 127 typedef struct x509_store_st X509_STORE; 128 typedef struct x509_store_ctx_st X509_STORE_CTX; 129 130 typedef struct x509_object_st X509_OBJECT; 131 typedef struct x509_lookup_st X509_LOOKUP; 132 typedef struct x509_lookup_method_st X509_LOOKUP_METHOD; 133 typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM; 134 135 typedef struct x509_sig_info_st X509_SIG_INFO; 136 137 typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; 138 139 typedef struct v3_ext_ctx X509V3_CTX; 140 typedef struct conf_st CONF; 141 typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS; 142 143 typedef struct ui_st UI; 144 typedef struct ui_method_st UI_METHOD; 145 146 typedef struct engine_st ENGINE; 147 typedef struct ssl_st SSL; 148 typedef struct ssl_ctx_st SSL_CTX; 149 150 typedef struct comp_ctx_st COMP_CTX; 151 typedef struct comp_method_st COMP_METHOD; 152 153 typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; 154 typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; 155 typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; 156 typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; 157 158 typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; 159 typedef struct DIST_POINT_st DIST_POINT; 160 typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; 161 typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; 162 163 typedef struct crypto_ex_data_st CRYPTO_EX_DATA; 164 165 typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; 166 typedef struct ocsp_response_st OCSP_RESPONSE; 167 typedef struct ocsp_responder_id_st OCSP_RESPID; 168 169 typedef struct sct_st SCT; 170 typedef struct sct_ctx_st SCT_CTX; 171 typedef struct ctlog_st CTLOG; 172 typedef struct ctlog_store_st CTLOG_STORE; 173 typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX; 174 175 typedef struct ossl_store_info_st OSSL_STORE_INFO; 176 typedef struct ossl_store_search_st OSSL_STORE_SEARCH; 177 178 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && \ 179 defined(INTMAX_MAX) && defined(UINTMAX_MAX) 180 typedef intmax_t ossl_intmax_t; 181 typedef uintmax_t ossl_uintmax_t; 182 #else 183 /* 184 * Not long long, because the C-library can only be expected to provide 185 * strtoll(), strtoull() at the same time as intmax_t and strtoimax(), 186 * strtoumax(). Since we use these for parsing arguments, we need the 187 * conversion functions, not just the sizes. 188 */ 189 typedef long ossl_intmax_t; 190 typedef unsigned long ossl_uintmax_t; 191 #endif 192 193 #ifdef __cplusplus 194 } 195 #endif 196 #endif /* def HEADER_OPENSSL_TYPES_H */ 197