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