Index: openssl/crypto/crypto.h |
=================================================================== |
--- openssl/crypto/crypto.h (revision 105093) |
+++ openssl/crypto/crypto.h (working copy) |
@@ -1,6 +1,6 @@ |
/* crypto/crypto.h */ |
/* ==================================================================== |
- * Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. |
+ * 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 |
@@ -219,13 +219,9 @@ |
#define CRYPTO_LOCK_EC_PRE_COMP 36 |
#define CRYPTO_LOCK_STORE 37 |
#define CRYPTO_LOCK_COMP 38 |
-#ifndef OPENSSL_FIPS |
-#define CRYPTO_NUM_LOCKS 39 |
-#else |
#define CRYPTO_LOCK_FIPS 39 |
#define CRYPTO_LOCK_FIPS2 40 |
#define CRYPTO_NUM_LOCKS 41 |
-#endif |
#define CRYPTO_LOCK 1 |
#define CRYPTO_UNLOCK 2 |
@@ -288,9 +284,10 @@ |
struct crypto_ex_data_st |
{ |
- STACK *sk; |
+ STACK_OF(void) *sk; |
int dummy; /* gcc is screwing up this data structure :-( */ |
}; |
+DECLARE_STACK_OF(void) |
/* This stuff is basically class callback functions |
* The current classes are SSL_CTX, SSL, SSL_SESSION, and a few more */ |
@@ -347,7 +344,14 @@ |
/* Set standard debugging functions (not done by default |
* unless CRYPTO_MDEBUG is defined) */ |
-void CRYPTO_malloc_debug_init(void); |
+#define CRYPTO_malloc_debug_init() do {\ |
+ CRYPTO_set_mem_debug_functions(\ |
+ CRYPTO_dbg_malloc,\ |
+ CRYPTO_dbg_realloc,\ |
+ CRYPTO_dbg_free,\ |
+ CRYPTO_dbg_set_options,\ |
+ CRYPTO_dbg_get_options);\ |
+ } while(0) |
int CRYPTO_mem_ctrl(int mode); |
int CRYPTO_is_mem_check_on(void); |
@@ -420,16 +424,32 @@ |
const char *file, int line)); |
int (*CRYPTO_get_add_lock_callback(void))(int *num,int mount,int type, |
const char *file,int line); |
+ |
+/* Don't use this structure directly. */ |
+typedef struct crypto_threadid_st |
+ { |
+ void *ptr; |
+ unsigned long val; |
+ } CRYPTO_THREADID; |
+/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ |
+void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val); |
+void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr); |
+int CRYPTO_THREADID_set_callback(void (*threadid_func)(CRYPTO_THREADID *)); |
+void (*CRYPTO_THREADID_get_callback(void))(CRYPTO_THREADID *); |
+void CRYPTO_THREADID_current(CRYPTO_THREADID *id); |
+int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, const CRYPTO_THREADID *b); |
+void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, const CRYPTO_THREADID *src); |
+unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id); |
+#ifndef OPENSSL_NO_DEPRECATED |
void CRYPTO_set_id_callback(unsigned long (*func)(void)); |
unsigned long (*CRYPTO_get_id_callback(void))(void); |
unsigned long CRYPTO_thread_id(void); |
+#endif |
+ |
const char *CRYPTO_get_lock_name(int type); |
int CRYPTO_add_lock(int *pointer,int amount,int type, const char *file, |
int line); |
-void int_CRYPTO_set_do_dynlock_callback( |
- void (*do_dynlock_cb)(int mode, int type, const char *file, int line)); |
- |
int CRYPTO_get_new_dynlockid(void); |
void CRYPTO_destroy_dynlockid(int i); |
struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i); |
@@ -454,10 +474,6 @@ |
void (*f)(void *,int), |
void (*so)(long), |
long (*go)(void)); |
-void CRYPTO_set_mem_info_functions( |
- int (*push_info_fn)(const char *info, const char *file, int line), |
- int (*pop_info_fn)(void), |
- int (*remove_all_info_fn)(void)); |
void CRYPTO_get_mem_functions(void *(**m)(size_t),void *(**r)(void *, size_t), void (**f)(void *)); |
void CRYPTO_get_locked_mem_functions(void *(**m)(size_t), void (**f)(void *)); |
void CRYPTO_get_mem_ex_functions(void *(**m)(size_t,const char *,int), |
@@ -514,9 +530,6 @@ |
void CRYPTO_dbg_set_options(long bits); |
long CRYPTO_dbg_get_options(void); |
-int CRYPTO_dbg_push_info(const char *info, const char *file, int line); |
-int CRYPTO_dbg_pop_info(void); |
-int CRYPTO_dbg_remove_all_info(void); |
#ifndef OPENSSL_NO_FP_API |
void CRYPTO_mem_leaks_fp(FILE *); |
@@ -534,69 +547,12 @@ |
#define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc())) |
int OPENSSL_isservice(void); |
-#ifdef OPENSSL_FIPS |
-#define FIPS_ERROR_IGNORED(alg) OpenSSLDie(__FILE__, __LINE__, \ |
- alg " previous FIPS forbidden algorithm error ignored"); |
- |
-#define FIPS_BAD_ABORT(alg) OpenSSLDie(__FILE__, __LINE__, \ |
- #alg " Algorithm forbidden in FIPS mode"); |
- |
-#ifdef OPENSSL_FIPS_STRICT |
-#define FIPS_BAD_ALGORITHM(alg) FIPS_BAD_ABORT(alg) |
-#else |
-#define FIPS_BAD_ALGORITHM(alg) \ |
- { \ |
- FIPSerr(FIPS_F_HASH_FINAL,FIPS_R_NON_FIPS_METHOD); \ |
- ERR_add_error_data(2, "Algorithm=", #alg); \ |
- return 0; \ |
- } |
-#endif |
- |
-/* Low level digest API blocking macro */ |
- |
-#define FIPS_NON_FIPS_MD_Init(alg) \ |
- int alg##_Init(alg##_CTX *c) \ |
- { \ |
- if (FIPS_mode()) \ |
- FIPS_BAD_ALGORITHM(alg) \ |
- return private_##alg##_Init(c); \ |
- } \ |
- int private_##alg##_Init(alg##_CTX *c) |
- |
-/* For ciphers the API often varies from cipher to cipher and each needs to |
- * be treated as a special case. Variable key length ciphers (Blowfish, RC4, |
- * CAST) however are very similar and can use a blocking macro. |
- */ |
- |
-#define FIPS_NON_FIPS_VCIPHER_Init(alg) \ |
- void alg##_set_key(alg##_KEY *key, int len, const unsigned char *data) \ |
- { \ |
- if (FIPS_mode()) \ |
- FIPS_BAD_ABORT(alg) \ |
- private_##alg##_set_key(key, len, data); \ |
- } \ |
- void private_##alg##_set_key(alg##_KEY *key, int len, \ |
- const unsigned char *data) |
- |
-#else |
- |
-#define FIPS_NON_FIPS_VCIPHER_Init(alg) \ |
- void alg##_set_key(alg##_KEY *key, int len, const unsigned char *data) |
- |
-#define FIPS_NON_FIPS_MD_Init(alg) \ |
- int alg##_Init(alg##_CTX *c) |
- |
-#endif /* def OPENSSL_FIPS */ |
- |
/* BEGIN ERROR CODES */ |
/* The following lines are auto generated by the script mkerr.pl. Any changes |
* made after this point may be overwritten when the script is next run. |
*/ |
void ERR_load_CRYPTO_strings(void); |
-#define OPENSSL_HAVE_INIT 1 |
-void OPENSSL_init(void); |
- |
/* Error codes for the CRYPTO functions. */ |
/* Function codes. */ |