diff options
author | Ralf S. Engelschall <rse@openssl.org> | 1998-12-21 10:56:39 +0000 |
---|---|---|
committer | Ralf S. Engelschall <rse@openssl.org> | 1998-12-21 10:56:39 +0000 |
commit | 58964a492275ca9a59a0cd9c8155cb2491b4b909 (patch) | |
tree | c7b16876a5789463bbbb468ef4829c8129b3d718 /crypto/crypto.h | |
parent | d02b48c63a58ea4367a0e905979f140b7d090f86 (diff) | |
download | openssl-58964a492275ca9a59a0cd9c8155cb2491b4b909.tar.gz |
Import of old SSLeay release: SSLeay 0.9.0b
Diffstat (limited to 'crypto/crypto.h')
-rw-r--r-- | crypto/crypto.h | 94 |
1 files changed, 83 insertions, 11 deletions
diff --git a/crypto/crypto.h b/crypto/crypto.h index fd7ff6a77d..0a38b5b87c 100644 --- a/crypto/crypto.h +++ b/crypto/crypto.h @@ -1,5 +1,5 @@ /* crypto/crypto.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * * This package is an SSL implementation written @@ -63,9 +63,11 @@ extern "C" { #endif +#include "stack.h" + /* This is more to be used to check the correct DLL is being used * in the MS world. */ -#define SSLEAY_VERSION_NUMBER 0x0800 /* Version 0.5.1c would be 0513 */ +#define SSLEAY_VERSION_NUMBER 0x0902 /* Version 0.5.1c would be 0513 */ #define SSLEAY_VERSION 0 /* #define SSLEAY_OPTIONS 1 no longer supported */ @@ -95,15 +97,14 @@ extern "C" { #define CRYPTO_LOCK_MALLOC 17 #define CRYPTO_LOCK_BIO 18 #define CRYPTO_LOCK_BIO_GETHOSTBYNAME 19 -#define CRYPTO_NUM_LOCKS 20 +#define CRYPTO_LOCK_RSA_BLINDING 20 +#define CRYPTO_NUM_LOCKS 21 #define CRYPTO_LOCK 1 #define CRYPTO_UNLOCK 2 #define CRYPTO_READ 4 #define CRYPTO_WRITE 8 -/* The following stuff is not being used, it was not finished for - * SSLeay 0.6.0 */ #ifndef CRYPTO_w_lock #define CRYPTO_w_lock(type) \ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) @@ -133,6 +134,43 @@ typedef struct crypto_mem_st } CRYPTO_MEM_FUNC; */ +/* predec of the BIO type */ +typedef struct bio_st BIO_dummy; + +typedef struct crypto_ex_data_st + { + STACK *sk; + int dummy; /* gcc is screwing up this data structure :-( */ + } CRYPTO_EX_DATA; + +/* This stuff is basically class callback functions + * The current classes are SSL_CTX, SSL, SSL_SESION, and a few more */ +typedef struct crypto_ex_data_func_st + { + long argl; /* Arbitary long */ + char *argp; /* Arbitary char * */ + /* Called when a new object is created */ + int (*new_func)(/*char *obj, + char *item,int index,long argl,char *argp*/); + /* Called when this object is free()ed */ + void (*free_func)(/*char *obj, + char *item,int index,long argl,char *argp*/); + + /* Called when we need to dup this one */ + int (*dup_func)(/*char *obj_to,char *obj_from, + char **new,int index,long argl,char *argp*/); + } CRYPTO_EX_DATA_FUNCS; + +/* Per class, we have a STACK of CRYPTO_EX_DATA_FUNCS for each CRYPTO_EX_DATA + * entry. + */ + +#define CRYPTO_EX_INDEX_BIO 0 +#define CRYPTO_EX_INDEX_SSL 1 +#define CRYPTO_EX_INDEX_SSL_CTX 2 +#define CRYPTO_EX_INDEX_SSL_SESSION 3 +#define CRYPTO_EX_INDEX_X509_STORE 4 +#define CRYPTO_EX_INDEX_X509_STORE_CTX 5 /* Use this for win32 DLL's */ #define CRYPTO_malloc_init() CRYPTO_set_mem_functions(\ @@ -163,12 +201,26 @@ typedef struct crypto_mem_st #endif /* WIN32 || MFUNC */ #endif /* MDEBUG */ +/* Case insensiteve linking causes problems.... */ +#ifdef WIN16 +#define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings +#endif + #ifndef NOPROTO char *SSLeay_version(int type); unsigned long SSLeay(void); +int CRYPTO_get_ex_new_index(int idx,STACK **sk,long argl,char *argp, + int (*new_func)(),int (*dup_func)(),void (*free_func)()); +int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad,int idx,char *val); +char *CRYPTO_get_ex_data(CRYPTO_EX_DATA *ad,int idx); +int CRYPTO_dup_ex_data(STACK *meth,CRYPTO_EX_DATA *from,CRYPTO_EX_DATA *to); +void CRYPTO_free_ex_data(STACK *meth,char *obj,CRYPTO_EX_DATA *ad); +void CRYPTO_new_ex_data(STACK *meth, char *obj, CRYPTO_EX_DATA *ad); + int CRYPTO_mem_ctrl(int mode); +int CRYPTO_get_new_lockid(char *name); void CRYPTO_lock(int mode, int type,char *file,int line); void CRYPTO_set_locking_callback(void (*func)(int mode,int type,char *file, int line)); @@ -196,21 +248,29 @@ char *CRYPTO_dbg_malloc(int num,char *file,int line); char *CRYPTO_dbg_realloc(char *addr,int num,char *file,int line); void CRYPTO_dbg_free(char *); char *CRYPTO_dbg_remalloc(char *addr,int num,char *file,int line); -#ifndef WIN16 +#ifndef NO_FP_API void CRYPTO_mem_leaks_fp(FILE *); #endif -#ifdef HEADER_BIO_H -void CRYPTO_mem_leaks(BIO *); -#endif +void CRYPTO_mem_leaks(struct bio_st *bio); /* unsigned long order, char *file, int line, int num_bytes, char *addr */ void CRYPTO_mem_leaks_cb(void (*cb)()); +void ERR_load_CRYPTO_strings(void ); + #else +int CRYPTO_get_ex_new_index(); +int CRYPTO_set_ex_data(); +char *CRYPTO_get_ex_data(); +int CRYPTO_dup_ex_data(); +void CRYPTO_free_ex_data(); +void CRYPTO_new_ex_data(); + int CRYPTO_mem_ctrl(); char *SSLeay_version(); unsigned long SSLeay(); +int CRYPTO_get_new_lockid(); void CRYPTO_lock(); void CRYPTO_set_locking_callback(); void (*CRYPTO_get_locking_callback())(); @@ -232,16 +292,28 @@ char *CRYPTO_dbg_remalloc(); char *CRYPTO_dbg_malloc(); char *CRYPTO_dbg_realloc(); void CRYPTO_dbg_free(); -#ifndef WIN16 +#ifndef NO_FP_API void CRYPTO_mem_leaks_fp(); #endif void CRYPTO_mem_leaks(); void CRYPTO_mem_leaks_cb(); +void ERR_load_CRYPTO_strings(); + #endif +/* BEGIN ERROR CODES */ +/* Error codes for the CRYPTO functions. */ + +/* Function codes. */ +#define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100 +#define CRYPTO_F_CRYPTO_GET_NEW_LOCKID 101 +#define CRYPTO_F_CRYPTO_SET_EX_DATA 102 + +/* Reason codes. */ + #ifdef __cplusplus } #endif - #endif + |