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 typedef struct rsa_pss_params_st RSA_PSS_PARAMS; 113 114 typedef struct ec_key_st EC_KEY; 115 typedef struct ec_key_method_st EC_KEY_METHOD; 116 117 typedef struct rand_meth_st RAND_METHOD; 118 typedef struct rand_drbg_st RAND_DRBG; 119 120 typedef struct ssl_dane_st SSL_DANE; 121 typedef struct x509_st X509; 122 typedef struct X509_algor_st X509_ALGOR; 123 typedef struct X509_crl_st X509_CRL; 124 typedef struct x509_crl_method_st X509_CRL_METHOD; 125 typedef struct x509_revoked_st X509_REVOKED; 126 typedef struct X509_name_st X509_NAME; 127 typedef struct X509_pubkey_st X509_PUBKEY; 128 typedef struct x509_store_st X509_STORE; 129 typedef struct x509_store_ctx_st X509_STORE_CTX; 130 131 typedef struct x509_object_st X509_OBJECT; 132 typedef struct x509_lookup_st X509_LOOKUP; 133 typedef struct x509_lookup_method_st X509_LOOKUP_METHOD; 134 typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM; 135 136 typedef struct x509_sig_info_st X509_SIG_INFO; 137 138 typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; 139 140 typedef struct v3_ext_ctx X509V3_CTX; 141 typedef struct conf_st CONF; 142 typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS; 143 144 typedef struct ui_st UI; 145 typedef struct ui_method_st UI_METHOD; 146 147 typedef struct engine_st ENGINE; 148 typedef struct ssl_st SSL; 149 typedef struct ssl_ctx_st SSL_CTX; 150 151 typedef struct comp_ctx_st COMP_CTX; 152 typedef struct comp_method_st COMP_METHOD; 153 154 typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; 155 typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; 156 typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; 157 typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; 158 159 typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; 160 typedef struct DIST_POINT_st DIST_POINT; 161 typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; 162 typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; 163 164 typedef struct crypto_ex_data_st CRYPTO_EX_DATA; 165 166 typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; 167 typedef struct ocsp_response_st OCSP_RESPONSE; 168 typedef struct ocsp_responder_id_st OCSP_RESPID; 169 170 typedef struct sct_st SCT; 171 typedef struct sct_ctx_st SCT_CTX; 172 typedef struct ctlog_st CTLOG; 173 typedef struct ctlog_store_st CTLOG_STORE; 174 typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX; 175 176 typedef struct ossl_store_info_st OSSL_STORE_INFO; 177 typedef struct ossl_store_search_st OSSL_STORE_SEARCH; 178 179 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && \ 180 defined(INTMAX_MAX) && defined(UINTMAX_MAX) 181 typedef intmax_t ossl_intmax_t; 182 typedef uintmax_t ossl_uintmax_t; 183 #else 184 /* 185 * Not long long, because the C-library can only be expected to provide 186 * strtoll(), strtoull() at the same time as intmax_t and strtoimax(), 187 * strtoumax(). Since we use these for parsing arguments, we need the 188 * conversion functions, not just the sizes. 189 */ 190 typedef long ossl_intmax_t; 191 typedef unsigned long ossl_uintmax_t; 192 #endif 193 194 #ifdef __cplusplus 195 } 196 #endif 197 #endif /* def HEADER_OPENSSL_TYPES_H */ 198