| Index: openssl/crypto/err/err.h | 
| =================================================================== | 
| --- openssl/crypto/err/err.h	(revision 105093) | 
| +++ openssl/crypto/err/err.h	(working copy) | 
| @@ -55,6 +55,59 @@ | 
| * copied and put under another distribution licence | 
| * [including the GNU Public Licence.] | 
| */ | 
| +/* ==================================================================== | 
| + * Copyright (c) 1998-2006 The OpenSSL Project.  All rights reserved. | 
| + * | 
| + * Redistribution and use in source and binary forms, with or without | 
| + * modification, are permitted provided that the following conditions | 
| + * are met: | 
| + * | 
| + * 1. Redistributions of source code must retain the above copyright | 
| + *    notice, this list of conditions and the following disclaimer. | 
| + * | 
| + * 2. Redistributions in binary form must reproduce the above copyright | 
| + *    notice, this list of conditions and the following disclaimer in | 
| + *    the documentation and/or other materials provided with the | 
| + *    distribution. | 
| + * | 
| + * 3. All advertising materials mentioning features or use of this | 
| + *    software must display the following acknowledgment: | 
| + *    "This product includes software developed by the OpenSSL Project | 
| + *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)" | 
| + * | 
| + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | 
| + *    endorse or promote products derived from this software without | 
| + *    prior written permission. For written permission, please contact | 
| + *    openssl-core@openssl.org. | 
| + * | 
| + * 5. Products derived from this software may not be called "OpenSSL" | 
| + *    nor may "OpenSSL" appear in their names without prior written | 
| + *    permission of the OpenSSL Project. | 
| + * | 
| + * 6. Redistributions of any form whatsoever must retain the following | 
| + *    acknowledgment: | 
| + *    "This product includes software developed by the OpenSSL Project | 
| + *    for use in the OpenSSL Toolkit (http://www.openssl.org/)" | 
| + * | 
| + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | 
| + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 
| + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 
| + * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR | 
| + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 
| + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | 
| + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 
| + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | 
| + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | 
| + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 
| + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | 
| + * OF THE POSSIBILITY OF SUCH DAMAGE. | 
| + * ==================================================================== | 
| + * | 
| + * This product includes cryptographic software written by Eric Young | 
| + * (eay@cryptsoft.com).  This product includes software written by Tim | 
| + * Hudson (tjh@cryptsoft.com). | 
| + * | 
| + */ | 
|  | 
| #ifndef HEADER_ERR_H | 
| #define HEADER_ERR_H | 
| @@ -94,7 +147,7 @@ | 
| #define ERR_NUM_ERRORS	16 | 
| typedef struct err_state_st | 
| { | 
| -	unsigned long pid; | 
| +	CRYPTO_THREADID tid; | 
| int err_flags[ERR_NUM_ERRORS]; | 
| unsigned long err_buffer[ERR_NUM_ERRORS]; | 
| char *err_data[ERR_NUM_ERRORS]; | 
| @@ -142,7 +195,9 @@ | 
| #define ERR_LIB_STORE           44 | 
| #define ERR_LIB_FIPS		45 | 
| #define ERR_LIB_CMS		46 | 
| -#define ERR_LIB_JPAKE		47 | 
| +#define ERR_LIB_TS		47 | 
| +#define ERR_LIB_HMAC		48 | 
| +#define ERR_LIB_JPAKE		49 | 
|  | 
| #define ERR_LIB_USER		128 | 
|  | 
| @@ -176,6 +231,8 @@ | 
| #define STOREerr(f,r) ERR_PUT_error(ERR_LIB_STORE,(f),(r),__FILE__,__LINE__) | 
| #define FIPSerr(f,r) ERR_PUT_error(ERR_LIB_FIPS,(f),(r),__FILE__,__LINE__) | 
| #define CMSerr(f,r) ERR_PUT_error(ERR_LIB_CMS,(f),(r),__FILE__,__LINE__) | 
| +#define TSerr(f,r) ERR_PUT_error(ERR_LIB_TS,(f),(r),__FILE__,__LINE__) | 
| +#define HMACerr(f,r) ERR_PUT_error(ERR_LIB_HMAC,(f),(r),__FILE__,__LINE__) | 
| #define JPAKEerr(f,r) ERR_PUT_error(ERR_LIB_JPAKE,(f),(r),__FILE__,__LINE__) | 
|  | 
| /* Borland C seems too stupid to be able to shift and do longs in | 
| @@ -232,6 +289,7 @@ | 
| #define ERR_R_ECDSA_LIB ERR_LIB_ECDSA	 /* 42 */ | 
| #define ERR_R_ECDH_LIB  ERR_LIB_ECDH	 /* 43 */ | 
| #define ERR_R_STORE_LIB ERR_LIB_STORE    /* 44 */ | 
| +#define ERR_R_TS_LIB	ERR_LIB_TS       /* 45 */ | 
|  | 
| #define ERR_R_NESTED_ASN1_ERROR			58 | 
| #define ERR_R_BAD_ASN1_OBJECT_HEADER		59 | 
| @@ -294,13 +352,16 @@ | 
| void ERR_load_crypto_strings(void); | 
| void ERR_free_strings(void); | 
|  | 
| +void ERR_remove_thread_state(const CRYPTO_THREADID *tid); | 
| +#ifndef OPENSSL_NO_DEPRECATED | 
| void ERR_remove_state(unsigned long pid); /* if zero we look it up */ | 
| +#endif | 
| ERR_STATE *ERR_get_state(void); | 
|  | 
| #ifndef OPENSSL_NO_LHASH | 
| -LHASH *ERR_get_string_table(void); | 
| -LHASH *ERR_get_err_state_table(void); | 
| -void ERR_release_err_state_table(LHASH **hash); | 
| +LHASH_OF(ERR_STRING_DATA) *ERR_get_string_table(void); | 
| +LHASH_OF(ERR_STATE) *ERR_get_err_state_table(void); | 
| +void ERR_release_err_state_table(LHASH_OF(ERR_STATE) **hash); | 
| #endif | 
|  | 
| int ERR_get_next_error_library(void); | 
| @@ -308,12 +369,6 @@ | 
| int ERR_set_mark(void); | 
| int ERR_pop_to_mark(void); | 
|  | 
| -#ifdef OPENSSL_FIPS | 
| -void int_ERR_set_state_func(ERR_STATE *(*get_func)(void), | 
| -				void (*remove_func)(unsigned long pid)); | 
| -void int_ERR_lib_init(void); | 
| -#endif | 
| - | 
| /* Already defined in ossl_typ.h */ | 
| /* typedef struct st_ERR_FNS ERR_FNS; */ | 
| /* An application can use this function and provide the return value to loaded | 
|  |