ossl_typ.h revision 392aa7cc7d2b122614c5393c3e357da07fd07af3
180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/* ====================================================================
280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *
480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Redistribution and use in source and binary forms, with or without
580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * modification, are permitted provided that the following conditions
680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * are met:
780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *
880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * 1. Redistributions of source code must retain the above copyright
980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    notice, this list of conditions and the following disclaimer.
1080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *
110a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger * 2. Redistributions in binary form must reproduce the above copyright
120a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger *    notice, this list of conditions and the following disclaimer in
1380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    the documentation and/or other materials provided with the
1480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    distribution.
1580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *
1680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * 3. All advertising materials mentioning features or use of this
1780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    software must display the following acknowledgment:
1880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    "This product includes software developed by the OpenSSL Project
1980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
2080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *
2180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
2280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    endorse or promote products derived from this software without
2380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    prior written permission. For written permission, please contact
2480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    openssl-core@openssl.org.
2580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *
2680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * 5. Products derived from this software may not be called "OpenSSL"
2780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    nor may "OpenSSL" appear in their names without prior written
2880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    permission of the OpenSSL Project.
2980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *
3080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * 6. Redistributions of any form whatsoever must retain the following
310a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger *    acknowledgment:
3280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    "This product includes software developed by the OpenSSL Project
3380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
3480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *
3580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
3680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
3780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
3880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
3980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
4080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
4180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
4280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
4380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
4480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
4580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
4680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * OF THE POSSIBILITY OF SUCH DAMAGE.
470a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger * ====================================================================
480a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger *
490a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger * This product includes cryptographic software written by Eric Young
500a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger * (eay@cryptsoft.com).  This product includes software written by Tim
510a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger * Hudson (tjh@cryptsoft.com).
520a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger *
530a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger */
540a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger
550a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#ifndef HEADER_OPENSSL_TYPES_H
560a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#define HEADER_OPENSSL_TYPES_H
5780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
5880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include <openssl/e_os2.h>
5980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
6080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifdef NO_ASN1_TYPEDEFS
6180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_INTEGER		ASN1_STRING
6280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_ENUMERATED		ASN1_STRING
6380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_BIT_STRING		ASN1_STRING
6480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_OCTET_STRING	ASN1_STRING
6580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_PRINTABLESTRING	ASN1_STRING
6680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_T61STRING		ASN1_STRING
6780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_IA5STRING		ASN1_STRING
6880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_UTCTIME		ASN1_STRING
6980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_GENERALIZEDTIME	ASN1_STRING
7080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_TIME		ASN1_STRING
7180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_GENERALSTRING	ASN1_STRING
7280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_UNIVERSALSTRING	ASN1_STRING
730a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#define ASN1_BMPSTRING		ASN1_STRING
740a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#define ASN1_VISIBLESTRING	ASN1_STRING
750a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#define ASN1_UTF8STRING		ASN1_STRING
7680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define ASN1_BOOLEAN		int
770a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#define ASN1_NULL		int
780a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenberger#else
7980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef struct asn1_string_st ASN1_INTEGER;
8080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef struct asn1_string_st ASN1_ENUMERATED;
810a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergertypedef struct asn1_string_st ASN1_BIT_STRING;
820a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergertypedef struct asn1_string_st ASN1_OCTET_STRING;
830a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergertypedef struct asn1_string_st ASN1_PRINTABLESTRING;
8480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef struct asn1_string_st ASN1_T61STRING;
8580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef struct asn1_string_st ASN1_IA5STRING;
8680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef struct asn1_string_st ASN1_GENERALSTRING;
870a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergertypedef struct asn1_string_st ASN1_UNIVERSALSTRING;
880a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergertypedef struct asn1_string_st ASN1_BMPSTRING;
890a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergertypedef struct asn1_string_st ASN1_UTCTIME;
9080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef struct asn1_string_st ASN1_TIME;
910a657bbc2c6fc9daf699942e023050536d5ec95fDerek Sollenbergertypedef struct asn1_string_st ASN1_GENERALIZEDTIME;
9280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef struct asn1_string_st ASN1_VISIBLESTRING;
9380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef struct asn1_string_st ASN1_UTF8STRING;
9480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef struct asn1_string_st ASN1_STRING;
9580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef int ASN1_BOOLEAN;
9680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef int ASN1_NULL;
9780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif
9880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
9980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef struct ASN1_ITEM_st ASN1_ITEM;
10080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querutypedef struct asn1_pctx_st ASN1_PCTX;
10180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
10280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifdef OPENSSL_SYS_WIN32
10380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#undef X509_NAME
10480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#undef X509_EXTENSIONS
10580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#undef X509_CERT_PAIR
10680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#undef PKCS7_ISSUER_AND_SERIAL
10780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#undef OCSP_REQUEST
108#undef OCSP_RESPONSE
109#endif
110
111#ifdef BIGNUM
112#undef BIGNUM
113#endif
114typedef struct bignum_st BIGNUM;
115typedef struct bignum_ctx BN_CTX;
116typedef struct bn_blinding_st BN_BLINDING;
117typedef struct bn_mont_ctx_st BN_MONT_CTX;
118typedef struct bn_recp_ctx_st BN_RECP_CTX;
119typedef struct bn_gencb_st BN_GENCB;
120
121typedef struct buf_mem_st BUF_MEM;
122
123typedef struct evp_cipher_st EVP_CIPHER;
124typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
125typedef struct env_md_st EVP_MD;
126typedef struct env_md_ctx_st EVP_MD_CTX;
127typedef struct evp_pkey_st EVP_PKEY;
128
129typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD;
130
131typedef struct evp_pkey_method_st EVP_PKEY_METHOD;
132typedef struct evp_pkey_ctx_st EVP_PKEY_CTX;
133
134typedef struct dh_st DH;
135typedef struct dh_method DH_METHOD;
136
137typedef struct dsa_st DSA;
138typedef struct dsa_method DSA_METHOD;
139
140typedef struct rsa_st RSA;
141typedef struct rsa_meth_st RSA_METHOD;
142
143typedef struct rand_meth_st RAND_METHOD;
144
145typedef struct ecdh_method ECDH_METHOD;
146typedef struct ecdsa_method ECDSA_METHOD;
147
148typedef struct x509_st X509;
149typedef struct X509_algor_st X509_ALGOR;
150typedef struct X509_crl_st X509_CRL;
151typedef struct x509_crl_method_st X509_CRL_METHOD;
152typedef struct x509_revoked_st X509_REVOKED;
153typedef struct X509_name_st X509_NAME;
154typedef struct X509_pubkey_st X509_PUBKEY;
155typedef struct x509_store_st X509_STORE;
156typedef struct x509_store_ctx_st X509_STORE_CTX;
157
158typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO;
159
160typedef struct v3_ext_ctx X509V3_CTX;
161typedef struct conf_st CONF;
162
163typedef struct store_st STORE;
164typedef struct store_method_st STORE_METHOD;
165
166typedef struct ui_st UI;
167typedef struct ui_method_st UI_METHOD;
168
169typedef struct st_ERR_FNS ERR_FNS;
170
171typedef struct engine_st ENGINE;
172typedef struct ssl_st SSL;
173typedef struct ssl_ctx_st SSL_CTX;
174
175typedef struct X509_POLICY_NODE_st X509_POLICY_NODE;
176typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL;
177typedef struct X509_POLICY_TREE_st X509_POLICY_TREE;
178typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE;
179
180typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID;
181typedef struct DIST_POINT_st DIST_POINT;
182typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT;
183typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS;
184
185  /* If placed in pkcs12.h, we end up with a circular depency with pkcs7.h */
186#define DECLARE_PKCS12_STACK_OF(type) /* Nothing */
187#define IMPLEMENT_PKCS12_STACK_OF(type) /* Nothing */
188
189typedef struct crypto_ex_data_st CRYPTO_EX_DATA;
190/* Callback types for crypto.h */
191typedef int CRYPTO_EX_new(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
192					int idx, long argl, void *argp);
193typedef void CRYPTO_EX_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
194					int idx, long argl, void *argp);
195typedef int CRYPTO_EX_dup(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, void *from_d,
196					int idx, long argl, void *argp);
197
198typedef struct ocsp_req_ctx_st OCSP_REQ_CTX;
199typedef struct ocsp_response_st OCSP_RESPONSE;
200typedef struct ocsp_responder_id_st OCSP_RESPID;
201
202#endif /* def HEADER_OPENSSL_TYPES_H */
203