motion-openssl 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +53 -0
- data/lib/OpenSSL/aes.h +149 -0
- data/lib/OpenSSL/asn1.h +1419 -0
- data/lib/OpenSSL/asn1_mac.h +579 -0
- data/lib/OpenSSL/asn1t.h +973 -0
- data/lib/OpenSSL/bio.h +879 -0
- data/lib/OpenSSL/blowfish.h +130 -0
- data/lib/OpenSSL/bn.h +939 -0
- data/lib/OpenSSL/buffer.h +125 -0
- data/lib/OpenSSL/camellia.h +132 -0
- data/lib/OpenSSL/cast.h +107 -0
- data/lib/OpenSSL/cmac.h +82 -0
- data/lib/OpenSSL/cms.h +555 -0
- data/lib/OpenSSL/comp.h +79 -0
- data/lib/OpenSSL/conf.h +267 -0
- data/lib/OpenSSL/conf_api.h +89 -0
- data/lib/OpenSSL/crypto.h +661 -0
- data/lib/OpenSSL/des.h +257 -0
- data/lib/OpenSSL/des_old.h +497 -0
- data/lib/OpenSSL/dh.h +392 -0
- data/lib/OpenSSL/dsa.h +332 -0
- data/lib/OpenSSL/dso.h +451 -0
- data/lib/OpenSSL/dtls1.h +272 -0
- data/lib/OpenSSL/e_os2.h +328 -0
- data/lib/OpenSSL/ebcdic.h +26 -0
- data/lib/OpenSSL/ec.h +1282 -0
- data/lib/OpenSSL/ecdh.h +134 -0
- data/lib/OpenSSL/ecdsa.h +335 -0
- data/lib/OpenSSL/engine.h +960 -0
- data/lib/OpenSSL/err.h +389 -0
- data/lib/OpenSSL/evp.h +1534 -0
- data/lib/OpenSSL/hmac.h +109 -0
- data/lib/OpenSSL/idea.h +105 -0
- data/lib/OpenSSL/krb5_asn.h +240 -0
- data/lib/OpenSSL/kssl.h +197 -0
- data/lib/OpenSSL/lhash.h +240 -0
- data/lib/OpenSSL/libcrypto-tvOS.a +0 -0
- data/lib/OpenSSL/libcrypto.a +0 -0
- data/lib/OpenSSL/libssl-tvOS.a +0 -0
- data/lib/OpenSSL/libssl.a +0 -0
- data/lib/OpenSSL/md4.h +119 -0
- data/lib/OpenSSL/md5.h +119 -0
- data/lib/OpenSSL/mdc2.h +94 -0
- data/lib/OpenSSL/modes.h +163 -0
- data/lib/OpenSSL/obj_mac.h +4194 -0
- data/lib/OpenSSL/objects.h +1143 -0
- data/lib/OpenSSL/ocsp.h +637 -0
- data/lib/OpenSSL/opensslconf.h +262 -0
- data/lib/OpenSSL/opensslv.h +97 -0
- data/lib/OpenSSL/ossl_typ.h +211 -0
- data/lib/OpenSSL/pem.h +615 -0
- data/lib/OpenSSL/pem2.h +70 -0
- data/lib/OpenSSL/pkcs12.h +342 -0
- data/lib/OpenSSL/pkcs7.h +481 -0
- data/lib/OpenSSL/pqueue.h +99 -0
- data/lib/OpenSSL/rand.h +150 -0
- data/lib/OpenSSL/rc2.h +103 -0
- data/lib/OpenSSL/rc4.h +88 -0
- data/lib/OpenSSL/ripemd.h +105 -0
- data/lib/OpenSSL/rsa.h +664 -0
- data/lib/OpenSSL/safestack.h +2672 -0
- data/lib/OpenSSL/seed.h +149 -0
- data/lib/OpenSSL/sha.h +214 -0
- data/lib/OpenSSL/srp.h +169 -0
- data/lib/OpenSSL/srtp.h +147 -0
- data/lib/OpenSSL/ssl.h +3168 -0
- data/lib/OpenSSL/ssl2.h +265 -0
- data/lib/OpenSSL/ssl23.h +84 -0
- data/lib/OpenSSL/ssl3.h +774 -0
- data/lib/OpenSSL/stack.h +107 -0
- data/lib/OpenSSL/symhacks.h +516 -0
- data/lib/OpenSSL/tls1.h +810 -0
- data/lib/OpenSSL/ts.h +862 -0
- data/lib/OpenSSL/txt_db.h +112 -0
- data/lib/OpenSSL/ui.h +415 -0
- data/lib/OpenSSL/ui_compat.h +88 -0
- data/lib/OpenSSL/whrlpool.h +41 -0
- data/lib/OpenSSL/x509.h +1327 -0
- data/lib/OpenSSL/x509_vfy.h +647 -0
- data/lib/OpenSSL/x509v3.h +1055 -0
- data/lib/motion-openssl.rb +8 -0
- data/lib/motion-openssl/hooks.rb +8 -0
- data/lib/motion-openssl/hooks/openssl.rb +20 -0
- data/lib/motion-openssl/version.rb +5 -0
- data/motion/openssl.rb +1 -0
- data/motion/openssl/random.rb +18 -0
- metadata +229 -0
data/lib/OpenSSL/comp.h
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
|
2
|
+
#ifndef HEADER_COMP_H
|
3
|
+
# define HEADER_COMP_H
|
4
|
+
|
5
|
+
# include <openssl/crypto.h>
|
6
|
+
|
7
|
+
#ifdef __cplusplus
|
8
|
+
extern "C" {
|
9
|
+
#endif
|
10
|
+
|
11
|
+
typedef struct comp_ctx_st COMP_CTX;
|
12
|
+
|
13
|
+
typedef struct comp_method_st {
|
14
|
+
int type; /* NID for compression library */
|
15
|
+
const char *name; /* A text string to identify the library */
|
16
|
+
int (*init) (COMP_CTX *ctx);
|
17
|
+
void (*finish) (COMP_CTX *ctx);
|
18
|
+
int (*compress) (COMP_CTX *ctx,
|
19
|
+
unsigned char *out, unsigned int olen,
|
20
|
+
unsigned char *in, unsigned int ilen);
|
21
|
+
int (*expand) (COMP_CTX *ctx,
|
22
|
+
unsigned char *out, unsigned int olen,
|
23
|
+
unsigned char *in, unsigned int ilen);
|
24
|
+
/*
|
25
|
+
* The following two do NOTHING, but are kept for backward compatibility
|
26
|
+
*/
|
27
|
+
long (*ctrl) (void);
|
28
|
+
long (*callback_ctrl) (void);
|
29
|
+
} COMP_METHOD;
|
30
|
+
|
31
|
+
struct comp_ctx_st {
|
32
|
+
COMP_METHOD *meth;
|
33
|
+
unsigned long compress_in;
|
34
|
+
unsigned long compress_out;
|
35
|
+
unsigned long expand_in;
|
36
|
+
unsigned long expand_out;
|
37
|
+
CRYPTO_EX_DATA ex_data;
|
38
|
+
};
|
39
|
+
|
40
|
+
COMP_CTX *COMP_CTX_new(COMP_METHOD *meth);
|
41
|
+
void COMP_CTX_free(COMP_CTX *ctx);
|
42
|
+
int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,
|
43
|
+
unsigned char *in, int ilen);
|
44
|
+
int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,
|
45
|
+
unsigned char *in, int ilen);
|
46
|
+
COMP_METHOD *COMP_rle(void);
|
47
|
+
COMP_METHOD *COMP_zlib(void);
|
48
|
+
void COMP_zlib_cleanup(void);
|
49
|
+
|
50
|
+
# ifdef HEADER_BIO_H
|
51
|
+
# ifdef ZLIB
|
52
|
+
BIO_METHOD *BIO_f_zlib(void);
|
53
|
+
# endif
|
54
|
+
# endif
|
55
|
+
|
56
|
+
/* BEGIN ERROR CODES */
|
57
|
+
/*
|
58
|
+
* The following lines are auto generated by the script mkerr.pl. Any changes
|
59
|
+
* made after this point may be overwritten when the script is next run.
|
60
|
+
*/
|
61
|
+
void ERR_load_COMP_strings(void);
|
62
|
+
|
63
|
+
/* Error codes for the COMP functions. */
|
64
|
+
|
65
|
+
/* Function codes. */
|
66
|
+
# define COMP_F_BIO_ZLIB_FLUSH 99
|
67
|
+
# define COMP_F_BIO_ZLIB_NEW 100
|
68
|
+
# define COMP_F_BIO_ZLIB_READ 101
|
69
|
+
# define COMP_F_BIO_ZLIB_WRITE 102
|
70
|
+
|
71
|
+
/* Reason codes. */
|
72
|
+
# define COMP_R_ZLIB_DEFLATE_ERROR 99
|
73
|
+
# define COMP_R_ZLIB_INFLATE_ERROR 100
|
74
|
+
# define COMP_R_ZLIB_NOT_SUPPORTED 101
|
75
|
+
|
76
|
+
#ifdef __cplusplus
|
77
|
+
}
|
78
|
+
#endif
|
79
|
+
#endif
|
data/lib/OpenSSL/conf.h
ADDED
@@ -0,0 +1,267 @@
|
|
1
|
+
/* crypto/conf/conf.h */
|
2
|
+
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
3
|
+
* All rights reserved.
|
4
|
+
*
|
5
|
+
* This package is an SSL implementation written
|
6
|
+
* by Eric Young (eay@cryptsoft.com).
|
7
|
+
* The implementation was written so as to conform with Netscapes SSL.
|
8
|
+
*
|
9
|
+
* This library is free for commercial and non-commercial use as long as
|
10
|
+
* the following conditions are aheared to. The following conditions
|
11
|
+
* apply to all code found in this distribution, be it the RC4, RSA,
|
12
|
+
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
13
|
+
* included with this distribution is covered by the same copyright terms
|
14
|
+
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
15
|
+
*
|
16
|
+
* Copyright remains Eric Young's, and as such any Copyright notices in
|
17
|
+
* the code are not to be removed.
|
18
|
+
* If this package is used in a product, Eric Young should be given attribution
|
19
|
+
* as the author of the parts of the library used.
|
20
|
+
* This can be in the form of a textual message at program startup or
|
21
|
+
* in documentation (online or textual) provided with the package.
|
22
|
+
*
|
23
|
+
* Redistribution and use in source and binary forms, with or without
|
24
|
+
* modification, are permitted provided that the following conditions
|
25
|
+
* are met:
|
26
|
+
* 1. Redistributions of source code must retain the copyright
|
27
|
+
* notice, this list of conditions and the following disclaimer.
|
28
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
29
|
+
* notice, this list of conditions and the following disclaimer in the
|
30
|
+
* documentation and/or other materials provided with the distribution.
|
31
|
+
* 3. All advertising materials mentioning features or use of this software
|
32
|
+
* must display the following acknowledgement:
|
33
|
+
* "This product includes cryptographic software written by
|
34
|
+
* Eric Young (eay@cryptsoft.com)"
|
35
|
+
* The word 'cryptographic' can be left out if the rouines from the library
|
36
|
+
* being used are not cryptographic related :-).
|
37
|
+
* 4. If you include any Windows specific code (or a derivative thereof) from
|
38
|
+
* the apps directory (application code) you must include an acknowledgement:
|
39
|
+
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
40
|
+
*
|
41
|
+
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
42
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
43
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
44
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
45
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
46
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
47
|
+
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
48
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
49
|
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
50
|
+
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
51
|
+
* SUCH DAMAGE.
|
52
|
+
*
|
53
|
+
* The licence and distribution terms for any publically available version or
|
54
|
+
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
55
|
+
* copied and put under another distribution licence
|
56
|
+
* [including the GNU Public Licence.]
|
57
|
+
*/
|
58
|
+
|
59
|
+
#ifndef HEADER_CONF_H
|
60
|
+
# define HEADER_CONF_H
|
61
|
+
|
62
|
+
# include <openssl/bio.h>
|
63
|
+
# include <openssl/lhash.h>
|
64
|
+
# include <openssl/stack.h>
|
65
|
+
# include <openssl/safestack.h>
|
66
|
+
# include <openssl/e_os2.h>
|
67
|
+
|
68
|
+
# include <openssl/ossl_typ.h>
|
69
|
+
|
70
|
+
#ifdef __cplusplus
|
71
|
+
extern "C" {
|
72
|
+
#endif
|
73
|
+
|
74
|
+
typedef struct {
|
75
|
+
char *section;
|
76
|
+
char *name;
|
77
|
+
char *value;
|
78
|
+
} CONF_VALUE;
|
79
|
+
|
80
|
+
DECLARE_STACK_OF(CONF_VALUE)
|
81
|
+
DECLARE_LHASH_OF(CONF_VALUE);
|
82
|
+
|
83
|
+
struct conf_st;
|
84
|
+
struct conf_method_st;
|
85
|
+
typedef struct conf_method_st CONF_METHOD;
|
86
|
+
|
87
|
+
struct conf_method_st {
|
88
|
+
const char *name;
|
89
|
+
CONF *(*create) (CONF_METHOD *meth);
|
90
|
+
int (*init) (CONF *conf);
|
91
|
+
int (*destroy) (CONF *conf);
|
92
|
+
int (*destroy_data) (CONF *conf);
|
93
|
+
int (*load_bio) (CONF *conf, BIO *bp, long *eline);
|
94
|
+
int (*dump) (const CONF *conf, BIO *bp);
|
95
|
+
int (*is_number) (const CONF *conf, char c);
|
96
|
+
int (*to_int) (const CONF *conf, char c);
|
97
|
+
int (*load) (CONF *conf, const char *name, long *eline);
|
98
|
+
};
|
99
|
+
|
100
|
+
/* Module definitions */
|
101
|
+
|
102
|
+
typedef struct conf_imodule_st CONF_IMODULE;
|
103
|
+
typedef struct conf_module_st CONF_MODULE;
|
104
|
+
|
105
|
+
DECLARE_STACK_OF(CONF_MODULE)
|
106
|
+
DECLARE_STACK_OF(CONF_IMODULE)
|
107
|
+
|
108
|
+
/* DSO module function typedefs */
|
109
|
+
typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf);
|
110
|
+
typedef void conf_finish_func (CONF_IMODULE *md);
|
111
|
+
|
112
|
+
# define CONF_MFLAGS_IGNORE_ERRORS 0x1
|
113
|
+
# define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2
|
114
|
+
# define CONF_MFLAGS_SILENT 0x4
|
115
|
+
# define CONF_MFLAGS_NO_DSO 0x8
|
116
|
+
# define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10
|
117
|
+
# define CONF_MFLAGS_DEFAULT_SECTION 0x20
|
118
|
+
|
119
|
+
int CONF_set_default_method(CONF_METHOD *meth);
|
120
|
+
void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash);
|
121
|
+
LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file,
|
122
|
+
long *eline);
|
123
|
+
# ifndef OPENSSL_NO_FP_API
|
124
|
+
LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp,
|
125
|
+
long *eline);
|
126
|
+
# endif
|
127
|
+
LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp,
|
128
|
+
long *eline);
|
129
|
+
STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf,
|
130
|
+
const char *section);
|
131
|
+
char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group,
|
132
|
+
const char *name);
|
133
|
+
long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group,
|
134
|
+
const char *name);
|
135
|
+
void CONF_free(LHASH_OF(CONF_VALUE) *conf);
|
136
|
+
int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out);
|
137
|
+
int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out);
|
138
|
+
|
139
|
+
void OPENSSL_config(const char *config_name);
|
140
|
+
void OPENSSL_no_config(void);
|
141
|
+
|
142
|
+
/*
|
143
|
+
* New conf code. The semantics are different from the functions above. If
|
144
|
+
* that wasn't the case, the above functions would have been replaced
|
145
|
+
*/
|
146
|
+
|
147
|
+
struct conf_st {
|
148
|
+
CONF_METHOD *meth;
|
149
|
+
void *meth_data;
|
150
|
+
LHASH_OF(CONF_VALUE) *data;
|
151
|
+
};
|
152
|
+
|
153
|
+
CONF *NCONF_new(CONF_METHOD *meth);
|
154
|
+
CONF_METHOD *NCONF_default(void);
|
155
|
+
CONF_METHOD *NCONF_WIN32(void);
|
156
|
+
# if 0 /* Just to give you an idea of what I have in
|
157
|
+
* mind */
|
158
|
+
CONF_METHOD *NCONF_XML(void);
|
159
|
+
# endif
|
160
|
+
void NCONF_free(CONF *conf);
|
161
|
+
void NCONF_free_data(CONF *conf);
|
162
|
+
|
163
|
+
int NCONF_load(CONF *conf, const char *file, long *eline);
|
164
|
+
# ifndef OPENSSL_NO_FP_API
|
165
|
+
int NCONF_load_fp(CONF *conf, FILE *fp, long *eline);
|
166
|
+
# endif
|
167
|
+
int NCONF_load_bio(CONF *conf, BIO *bp, long *eline);
|
168
|
+
STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf,
|
169
|
+
const char *section);
|
170
|
+
char *NCONF_get_string(const CONF *conf, const char *group, const char *name);
|
171
|
+
int NCONF_get_number_e(const CONF *conf, const char *group, const char *name,
|
172
|
+
long *result);
|
173
|
+
int NCONF_dump_fp(const CONF *conf, FILE *out);
|
174
|
+
int NCONF_dump_bio(const CONF *conf, BIO *out);
|
175
|
+
|
176
|
+
# if 0 /* The following function has no error
|
177
|
+
* checking, and should therefore be avoided */
|
178
|
+
long NCONF_get_number(CONF *conf, char *group, char *name);
|
179
|
+
# else
|
180
|
+
# define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r)
|
181
|
+
# endif
|
182
|
+
|
183
|
+
/* Module functions */
|
184
|
+
|
185
|
+
int CONF_modules_load(const CONF *cnf, const char *appname,
|
186
|
+
unsigned long flags);
|
187
|
+
int CONF_modules_load_file(const char *filename, const char *appname,
|
188
|
+
unsigned long flags);
|
189
|
+
void CONF_modules_unload(int all);
|
190
|
+
void CONF_modules_finish(void);
|
191
|
+
void CONF_modules_free(void);
|
192
|
+
int CONF_module_add(const char *name, conf_init_func *ifunc,
|
193
|
+
conf_finish_func *ffunc);
|
194
|
+
|
195
|
+
const char *CONF_imodule_get_name(const CONF_IMODULE *md);
|
196
|
+
const char *CONF_imodule_get_value(const CONF_IMODULE *md);
|
197
|
+
void *CONF_imodule_get_usr_data(const CONF_IMODULE *md);
|
198
|
+
void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data);
|
199
|
+
CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md);
|
200
|
+
unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md);
|
201
|
+
void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags);
|
202
|
+
void *CONF_module_get_usr_data(CONF_MODULE *pmod);
|
203
|
+
void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data);
|
204
|
+
|
205
|
+
char *CONF_get1_default_config_file(void);
|
206
|
+
|
207
|
+
int CONF_parse_list(const char *list, int sep, int nospc,
|
208
|
+
int (*list_cb) (const char *elem, int len, void *usr),
|
209
|
+
void *arg);
|
210
|
+
|
211
|
+
void OPENSSL_load_builtin_modules(void);
|
212
|
+
|
213
|
+
/* BEGIN ERROR CODES */
|
214
|
+
/*
|
215
|
+
* The following lines are auto generated by the script mkerr.pl. Any changes
|
216
|
+
* made after this point may be overwritten when the script is next run.
|
217
|
+
*/
|
218
|
+
void ERR_load_CONF_strings(void);
|
219
|
+
|
220
|
+
/* Error codes for the CONF functions. */
|
221
|
+
|
222
|
+
/* Function codes. */
|
223
|
+
# define CONF_F_CONF_DUMP_FP 104
|
224
|
+
# define CONF_F_CONF_LOAD 100
|
225
|
+
# define CONF_F_CONF_LOAD_BIO 102
|
226
|
+
# define CONF_F_CONF_LOAD_FP 103
|
227
|
+
# define CONF_F_CONF_MODULES_LOAD 116
|
228
|
+
# define CONF_F_CONF_PARSE_LIST 119
|
229
|
+
# define CONF_F_DEF_LOAD 120
|
230
|
+
# define CONF_F_DEF_LOAD_BIO 121
|
231
|
+
# define CONF_F_MODULE_INIT 115
|
232
|
+
# define CONF_F_MODULE_LOAD_DSO 117
|
233
|
+
# define CONF_F_MODULE_RUN 118
|
234
|
+
# define CONF_F_NCONF_DUMP_BIO 105
|
235
|
+
# define CONF_F_NCONF_DUMP_FP 106
|
236
|
+
# define CONF_F_NCONF_GET_NUMBER 107
|
237
|
+
# define CONF_F_NCONF_GET_NUMBER_E 112
|
238
|
+
# define CONF_F_NCONF_GET_SECTION 108
|
239
|
+
# define CONF_F_NCONF_GET_STRING 109
|
240
|
+
# define CONF_F_NCONF_LOAD 113
|
241
|
+
# define CONF_F_NCONF_LOAD_BIO 110
|
242
|
+
# define CONF_F_NCONF_LOAD_FP 114
|
243
|
+
# define CONF_F_NCONF_NEW 111
|
244
|
+
# define CONF_F_STR_COPY 101
|
245
|
+
|
246
|
+
/* Reason codes. */
|
247
|
+
# define CONF_R_ERROR_LOADING_DSO 110
|
248
|
+
# define CONF_R_LIST_CANNOT_BE_NULL 115
|
249
|
+
# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100
|
250
|
+
# define CONF_R_MISSING_EQUAL_SIGN 101
|
251
|
+
# define CONF_R_MISSING_FINISH_FUNCTION 111
|
252
|
+
# define CONF_R_MISSING_INIT_FUNCTION 112
|
253
|
+
# define CONF_R_MODULE_INITIALIZATION_ERROR 109
|
254
|
+
# define CONF_R_NO_CLOSE_BRACE 102
|
255
|
+
# define CONF_R_NO_CONF 105
|
256
|
+
# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106
|
257
|
+
# define CONF_R_NO_SECTION 107
|
258
|
+
# define CONF_R_NO_SUCH_FILE 114
|
259
|
+
# define CONF_R_NO_VALUE 108
|
260
|
+
# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103
|
261
|
+
# define CONF_R_UNKNOWN_MODULE_NAME 113
|
262
|
+
# define CONF_R_VARIABLE_HAS_NO_VALUE 104
|
263
|
+
|
264
|
+
#ifdef __cplusplus
|
265
|
+
}
|
266
|
+
#endif
|
267
|
+
#endif
|
@@ -0,0 +1,89 @@
|
|
1
|
+
/* conf_api.h */
|
2
|
+
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
3
|
+
* All rights reserved.
|
4
|
+
*
|
5
|
+
* This package is an SSL implementation written
|
6
|
+
* by Eric Young (eay@cryptsoft.com).
|
7
|
+
* The implementation was written so as to conform with Netscapes SSL.
|
8
|
+
*
|
9
|
+
* This library is free for commercial and non-commercial use as long as
|
10
|
+
* the following conditions are aheared to. The following conditions
|
11
|
+
* apply to all code found in this distribution, be it the RC4, RSA,
|
12
|
+
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
13
|
+
* included with this distribution is covered by the same copyright terms
|
14
|
+
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
15
|
+
*
|
16
|
+
* Copyright remains Eric Young's, and as such any Copyright notices in
|
17
|
+
* the code are not to be removed.
|
18
|
+
* If this package is used in a product, Eric Young should be given attribution
|
19
|
+
* as the author of the parts of the library used.
|
20
|
+
* This can be in the form of a textual message at program startup or
|
21
|
+
* in documentation (online or textual) provided with the package.
|
22
|
+
*
|
23
|
+
* Redistribution and use in source and binary forms, with or without
|
24
|
+
* modification, are permitted provided that the following conditions
|
25
|
+
* are met:
|
26
|
+
* 1. Redistributions of source code must retain the copyright
|
27
|
+
* notice, this list of conditions and the following disclaimer.
|
28
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
29
|
+
* notice, this list of conditions and the following disclaimer in the
|
30
|
+
* documentation and/or other materials provided with the distribution.
|
31
|
+
* 3. All advertising materials mentioning features or use of this software
|
32
|
+
* must display the following acknowledgement:
|
33
|
+
* "This product includes cryptographic software written by
|
34
|
+
* Eric Young (eay@cryptsoft.com)"
|
35
|
+
* The word 'cryptographic' can be left out if the rouines from the library
|
36
|
+
* being used are not cryptographic related :-).
|
37
|
+
* 4. If you include any Windows specific code (or a derivative thereof) from
|
38
|
+
* the apps directory (application code) you must include an acknowledgement:
|
39
|
+
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
40
|
+
*
|
41
|
+
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
42
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
43
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
44
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
45
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
46
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
47
|
+
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
48
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
49
|
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
50
|
+
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
51
|
+
* SUCH DAMAGE.
|
52
|
+
*
|
53
|
+
* The licence and distribution terms for any publically available version or
|
54
|
+
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
55
|
+
* copied and put under another distribution licence
|
56
|
+
* [including the GNU Public Licence.]
|
57
|
+
*/
|
58
|
+
|
59
|
+
#ifndef HEADER_CONF_API_H
|
60
|
+
# define HEADER_CONF_API_H
|
61
|
+
|
62
|
+
# include <openssl/lhash.h>
|
63
|
+
# include <openssl/conf.h>
|
64
|
+
|
65
|
+
#ifdef __cplusplus
|
66
|
+
extern "C" {
|
67
|
+
#endif
|
68
|
+
|
69
|
+
/* Up until OpenSSL 0.9.5a, this was new_section */
|
70
|
+
CONF_VALUE *_CONF_new_section(CONF *conf, const char *section);
|
71
|
+
/* Up until OpenSSL 0.9.5a, this was get_section */
|
72
|
+
CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section);
|
73
|
+
/* Up until OpenSSL 0.9.5a, this was CONF_get_section */
|
74
|
+
STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf,
|
75
|
+
const char *section);
|
76
|
+
|
77
|
+
int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value);
|
78
|
+
char *_CONF_get_string(const CONF *conf, const char *section,
|
79
|
+
const char *name);
|
80
|
+
long _CONF_get_number(const CONF *conf, const char *section,
|
81
|
+
const char *name);
|
82
|
+
|
83
|
+
int _CONF_new_data(CONF *conf);
|
84
|
+
void _CONF_free_data(CONF *conf);
|
85
|
+
|
86
|
+
#ifdef __cplusplus
|
87
|
+
}
|
88
|
+
#endif
|
89
|
+
#endif
|
@@ -0,0 +1,661 @@
|
|
1
|
+
/* crypto/crypto.h */
|
2
|
+
/* ====================================================================
|
3
|
+
* Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved.
|
4
|
+
*
|
5
|
+
* Redistribution and use in source and binary forms, with or without
|
6
|
+
* modification, are permitted provided that the following conditions
|
7
|
+
* are met:
|
8
|
+
*
|
9
|
+
* 1. Redistributions of source code must retain the above copyright
|
10
|
+
* notice, this list of conditions and the following disclaimer.
|
11
|
+
*
|
12
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
13
|
+
* notice, this list of conditions and the following disclaimer in
|
14
|
+
* the documentation and/or other materials provided with the
|
15
|
+
* distribution.
|
16
|
+
*
|
17
|
+
* 3. All advertising materials mentioning features or use of this
|
18
|
+
* software must display the following acknowledgment:
|
19
|
+
* "This product includes software developed by the OpenSSL Project
|
20
|
+
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
21
|
+
*
|
22
|
+
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
23
|
+
* endorse or promote products derived from this software without
|
24
|
+
* prior written permission. For written permission, please contact
|
25
|
+
* openssl-core@openssl.org.
|
26
|
+
*
|
27
|
+
* 5. Products derived from this software may not be called "OpenSSL"
|
28
|
+
* nor may "OpenSSL" appear in their names without prior written
|
29
|
+
* permission of the OpenSSL Project.
|
30
|
+
*
|
31
|
+
* 6. Redistributions of any form whatsoever must retain the following
|
32
|
+
* acknowledgment:
|
33
|
+
* "This product includes software developed by the OpenSSL Project
|
34
|
+
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
35
|
+
*
|
36
|
+
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
37
|
+
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
38
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
39
|
+
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
40
|
+
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
41
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
42
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
43
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
44
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
45
|
+
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
46
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
47
|
+
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
48
|
+
* ====================================================================
|
49
|
+
*
|
50
|
+
* This product includes cryptographic software written by Eric Young
|
51
|
+
* (eay@cryptsoft.com). This product includes software written by Tim
|
52
|
+
* Hudson (tjh@cryptsoft.com).
|
53
|
+
*
|
54
|
+
*/
|
55
|
+
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
56
|
+
* All rights reserved.
|
57
|
+
*
|
58
|
+
* This package is an SSL implementation written
|
59
|
+
* by Eric Young (eay@cryptsoft.com).
|
60
|
+
* The implementation was written so as to conform with Netscapes SSL.
|
61
|
+
*
|
62
|
+
* This library is free for commercial and non-commercial use as long as
|
63
|
+
* the following conditions are aheared to. The following conditions
|
64
|
+
* apply to all code found in this distribution, be it the RC4, RSA,
|
65
|
+
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
66
|
+
* included with this distribution is covered by the same copyright terms
|
67
|
+
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
68
|
+
*
|
69
|
+
* Copyright remains Eric Young's, and as such any Copyright notices in
|
70
|
+
* the code are not to be removed.
|
71
|
+
* If this package is used in a product, Eric Young should be given attribution
|
72
|
+
* as the author of the parts of the library used.
|
73
|
+
* This can be in the form of a textual message at program startup or
|
74
|
+
* in documentation (online or textual) provided with the package.
|
75
|
+
*
|
76
|
+
* Redistribution and use in source and binary forms, with or without
|
77
|
+
* modification, are permitted provided that the following conditions
|
78
|
+
* are met:
|
79
|
+
* 1. Redistributions of source code must retain the copyright
|
80
|
+
* notice, this list of conditions and the following disclaimer.
|
81
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
82
|
+
* notice, this list of conditions and the following disclaimer in the
|
83
|
+
* documentation and/or other materials provided with the distribution.
|
84
|
+
* 3. All advertising materials mentioning features or use of this software
|
85
|
+
* must display the following acknowledgement:
|
86
|
+
* "This product includes cryptographic software written by
|
87
|
+
* Eric Young (eay@cryptsoft.com)"
|
88
|
+
* The word 'cryptographic' can be left out if the rouines from the library
|
89
|
+
* being used are not cryptographic related :-).
|
90
|
+
* 4. If you include any Windows specific code (or a derivative thereof) from
|
91
|
+
* the apps directory (application code) you must include an acknowledgement:
|
92
|
+
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
93
|
+
*
|
94
|
+
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
95
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
96
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
97
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
98
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
99
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
100
|
+
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
101
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
102
|
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
103
|
+
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
104
|
+
* SUCH DAMAGE.
|
105
|
+
*
|
106
|
+
* The licence and distribution terms for any publically available version or
|
107
|
+
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
108
|
+
* copied and put under another distribution licence
|
109
|
+
* [including the GNU Public Licence.]
|
110
|
+
*/
|
111
|
+
/* ====================================================================
|
112
|
+
* Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
|
113
|
+
* ECDH support in OpenSSL originally developed by
|
114
|
+
* SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
|
115
|
+
*/
|
116
|
+
|
117
|
+
#ifndef HEADER_CRYPTO_H
|
118
|
+
# define HEADER_CRYPTO_H
|
119
|
+
|
120
|
+
# include <stdlib.h>
|
121
|
+
|
122
|
+
# include <openssl/e_os2.h>
|
123
|
+
|
124
|
+
# ifndef OPENSSL_NO_FP_API
|
125
|
+
# include <stdio.h>
|
126
|
+
# endif
|
127
|
+
|
128
|
+
# include <openssl/stack.h>
|
129
|
+
# include <openssl/safestack.h>
|
130
|
+
# include <openssl/opensslv.h>
|
131
|
+
# include <openssl/ossl_typ.h>
|
132
|
+
|
133
|
+
# ifdef CHARSET_EBCDIC
|
134
|
+
# include <openssl/ebcdic.h>
|
135
|
+
# endif
|
136
|
+
|
137
|
+
/*
|
138
|
+
* Resolve problems on some operating systems with symbol names that clash
|
139
|
+
* one way or another
|
140
|
+
*/
|
141
|
+
# include <openssl/symhacks.h>
|
142
|
+
|
143
|
+
#ifdef __cplusplus
|
144
|
+
extern "C" {
|
145
|
+
#endif
|
146
|
+
|
147
|
+
/* Backward compatibility to SSLeay */
|
148
|
+
/*
|
149
|
+
* This is more to be used to check the correct DLL is being used in the MS
|
150
|
+
* world.
|
151
|
+
*/
|
152
|
+
# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER
|
153
|
+
# define SSLEAY_VERSION 0
|
154
|
+
/* #define SSLEAY_OPTIONS 1 no longer supported */
|
155
|
+
# define SSLEAY_CFLAGS 2
|
156
|
+
# define SSLEAY_BUILT_ON 3
|
157
|
+
# define SSLEAY_PLATFORM 4
|
158
|
+
# define SSLEAY_DIR 5
|
159
|
+
|
160
|
+
/* Already declared in ossl_typ.h */
|
161
|
+
# if 0
|
162
|
+
typedef struct crypto_ex_data_st CRYPTO_EX_DATA;
|
163
|
+
/* Called when a new object is created */
|
164
|
+
typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad,
|
165
|
+
int idx, long argl, void *argp);
|
166
|
+
/* Called when an object is free()ed */
|
167
|
+
typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad,
|
168
|
+
int idx, long argl, void *argp);
|
169
|
+
/* Called when we need to dup an object */
|
170
|
+
typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from,
|
171
|
+
void *from_d, int idx, long argl, void *argp);
|
172
|
+
# endif
|
173
|
+
|
174
|
+
/* A generic structure to pass assorted data in a expandable way */
|
175
|
+
typedef struct openssl_item_st {
|
176
|
+
int code;
|
177
|
+
void *value; /* Not used for flag attributes */
|
178
|
+
size_t value_size; /* Max size of value for output, length for
|
179
|
+
* input */
|
180
|
+
size_t *value_length; /* Returned length of value for output */
|
181
|
+
} OPENSSL_ITEM;
|
182
|
+
|
183
|
+
/*
|
184
|
+
* When changing the CRYPTO_LOCK_* list, be sure to maintin the text lock
|
185
|
+
* names in cryptlib.c
|
186
|
+
*/
|
187
|
+
|
188
|
+
# define CRYPTO_LOCK_ERR 1
|
189
|
+
# define CRYPTO_LOCK_EX_DATA 2
|
190
|
+
# define CRYPTO_LOCK_X509 3
|
191
|
+
# define CRYPTO_LOCK_X509_INFO 4
|
192
|
+
# define CRYPTO_LOCK_X509_PKEY 5
|
193
|
+
# define CRYPTO_LOCK_X509_CRL 6
|
194
|
+
# define CRYPTO_LOCK_X509_REQ 7
|
195
|
+
# define CRYPTO_LOCK_DSA 8
|
196
|
+
# define CRYPTO_LOCK_RSA 9
|
197
|
+
# define CRYPTO_LOCK_EVP_PKEY 10
|
198
|
+
# define CRYPTO_LOCK_X509_STORE 11
|
199
|
+
# define CRYPTO_LOCK_SSL_CTX 12
|
200
|
+
# define CRYPTO_LOCK_SSL_CERT 13
|
201
|
+
# define CRYPTO_LOCK_SSL_SESSION 14
|
202
|
+
# define CRYPTO_LOCK_SSL_SESS_CERT 15
|
203
|
+
# define CRYPTO_LOCK_SSL 16
|
204
|
+
# define CRYPTO_LOCK_SSL_METHOD 17
|
205
|
+
# define CRYPTO_LOCK_RAND 18
|
206
|
+
# define CRYPTO_LOCK_RAND2 19
|
207
|
+
# define CRYPTO_LOCK_MALLOC 20
|
208
|
+
# define CRYPTO_LOCK_BIO 21
|
209
|
+
# define CRYPTO_LOCK_GETHOSTBYNAME 22
|
210
|
+
# define CRYPTO_LOCK_GETSERVBYNAME 23
|
211
|
+
# define CRYPTO_LOCK_READDIR 24
|
212
|
+
# define CRYPTO_LOCK_RSA_BLINDING 25
|
213
|
+
# define CRYPTO_LOCK_DH 26
|
214
|
+
# define CRYPTO_LOCK_MALLOC2 27
|
215
|
+
# define CRYPTO_LOCK_DSO 28
|
216
|
+
# define CRYPTO_LOCK_DYNLOCK 29
|
217
|
+
# define CRYPTO_LOCK_ENGINE 30
|
218
|
+
# define CRYPTO_LOCK_UI 31
|
219
|
+
# define CRYPTO_LOCK_ECDSA 32
|
220
|
+
# define CRYPTO_LOCK_EC 33
|
221
|
+
# define CRYPTO_LOCK_ECDH 34
|
222
|
+
# define CRYPTO_LOCK_BN 35
|
223
|
+
# define CRYPTO_LOCK_EC_PRE_COMP 36
|
224
|
+
# define CRYPTO_LOCK_STORE 37
|
225
|
+
# define CRYPTO_LOCK_COMP 38
|
226
|
+
# define CRYPTO_LOCK_FIPS 39
|
227
|
+
# define CRYPTO_LOCK_FIPS2 40
|
228
|
+
# define CRYPTO_NUM_LOCKS 41
|
229
|
+
|
230
|
+
# define CRYPTO_LOCK 1
|
231
|
+
# define CRYPTO_UNLOCK 2
|
232
|
+
# define CRYPTO_READ 4
|
233
|
+
# define CRYPTO_WRITE 8
|
234
|
+
|
235
|
+
# ifndef OPENSSL_NO_LOCKING
|
236
|
+
# ifndef CRYPTO_w_lock
|
237
|
+
# define CRYPTO_w_lock(type) \
|
238
|
+
CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
|
239
|
+
# define CRYPTO_w_unlock(type) \
|
240
|
+
CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
|
241
|
+
# define CRYPTO_r_lock(type) \
|
242
|
+
CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
|
243
|
+
# define CRYPTO_r_unlock(type) \
|
244
|
+
CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
|
245
|
+
# define CRYPTO_add(addr,amount,type) \
|
246
|
+
CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
|
247
|
+
# endif
|
248
|
+
# else
|
249
|
+
# define CRYPTO_w_lock(a)
|
250
|
+
# define CRYPTO_w_unlock(a)
|
251
|
+
# define CRYPTO_r_lock(a)
|
252
|
+
# define CRYPTO_r_unlock(a)
|
253
|
+
# define CRYPTO_add(a,b,c) ((*(a))+=(b))
|
254
|
+
# endif
|
255
|
+
|
256
|
+
/*
|
257
|
+
* Some applications as well as some parts of OpenSSL need to allocate and
|
258
|
+
* deallocate locks in a dynamic fashion. The following typedef makes this
|
259
|
+
* possible in a type-safe manner.
|
260
|
+
*/
|
261
|
+
/* struct CRYPTO_dynlock_value has to be defined by the application. */
|
262
|
+
typedef struct {
|
263
|
+
int references;
|
264
|
+
struct CRYPTO_dynlock_value *data;
|
265
|
+
} CRYPTO_dynlock;
|
266
|
+
|
267
|
+
/*
|
268
|
+
* The following can be used to detect memory leaks in the SSLeay library. It
|
269
|
+
* used, it turns on malloc checking
|
270
|
+
*/
|
271
|
+
|
272
|
+
# define CRYPTO_MEM_CHECK_OFF 0x0/* an enume */
|
273
|
+
# define CRYPTO_MEM_CHECK_ON 0x1/* a bit */
|
274
|
+
# define CRYPTO_MEM_CHECK_ENABLE 0x2/* a bit */
|
275
|
+
# define CRYPTO_MEM_CHECK_DISABLE 0x3/* an enume */
|
276
|
+
|
277
|
+
/*
|
278
|
+
* The following are bit values to turn on or off options connected to the
|
279
|
+
* malloc checking functionality
|
280
|
+
*/
|
281
|
+
|
282
|
+
/* Adds time to the memory checking information */
|
283
|
+
# define V_CRYPTO_MDEBUG_TIME 0x1/* a bit */
|
284
|
+
/* Adds thread number to the memory checking information */
|
285
|
+
# define V_CRYPTO_MDEBUG_THREAD 0x2/* a bit */
|
286
|
+
|
287
|
+
# define V_CRYPTO_MDEBUG_ALL (V_CRYPTO_MDEBUG_TIME | V_CRYPTO_MDEBUG_THREAD)
|
288
|
+
|
289
|
+
/* predec of the BIO type */
|
290
|
+
typedef struct bio_st BIO_dummy;
|
291
|
+
|
292
|
+
struct crypto_ex_data_st {
|
293
|
+
STACK_OF(void) *sk;
|
294
|
+
/* gcc is screwing up this data structure :-( */
|
295
|
+
int dummy;
|
296
|
+
};
|
297
|
+
DECLARE_STACK_OF(void)
|
298
|
+
|
299
|
+
/*
|
300
|
+
* This stuff is basically class callback functions The current classes are
|
301
|
+
* SSL_CTX, SSL, SSL_SESSION, and a few more
|
302
|
+
*/
|
303
|
+
|
304
|
+
typedef struct crypto_ex_data_func_st {
|
305
|
+
long argl; /* Arbitary long */
|
306
|
+
void *argp; /* Arbitary void * */
|
307
|
+
CRYPTO_EX_new *new_func;
|
308
|
+
CRYPTO_EX_free *free_func;
|
309
|
+
CRYPTO_EX_dup *dup_func;
|
310
|
+
} CRYPTO_EX_DATA_FUNCS;
|
311
|
+
|
312
|
+
DECLARE_STACK_OF(CRYPTO_EX_DATA_FUNCS)
|
313
|
+
|
314
|
+
/*
|
315
|
+
* Per class, we have a STACK of CRYPTO_EX_DATA_FUNCS for each CRYPTO_EX_DATA
|
316
|
+
* entry.
|
317
|
+
*/
|
318
|
+
|
319
|
+
# define CRYPTO_EX_INDEX_BIO 0
|
320
|
+
# define CRYPTO_EX_INDEX_SSL 1
|
321
|
+
# define CRYPTO_EX_INDEX_SSL_CTX 2
|
322
|
+
# define CRYPTO_EX_INDEX_SSL_SESSION 3
|
323
|
+
# define CRYPTO_EX_INDEX_X509_STORE 4
|
324
|
+
# define CRYPTO_EX_INDEX_X509_STORE_CTX 5
|
325
|
+
# define CRYPTO_EX_INDEX_RSA 6
|
326
|
+
# define CRYPTO_EX_INDEX_DSA 7
|
327
|
+
# define CRYPTO_EX_INDEX_DH 8
|
328
|
+
# define CRYPTO_EX_INDEX_ENGINE 9
|
329
|
+
# define CRYPTO_EX_INDEX_X509 10
|
330
|
+
# define CRYPTO_EX_INDEX_UI 11
|
331
|
+
# define CRYPTO_EX_INDEX_ECDSA 12
|
332
|
+
# define CRYPTO_EX_INDEX_ECDH 13
|
333
|
+
# define CRYPTO_EX_INDEX_COMP 14
|
334
|
+
# define CRYPTO_EX_INDEX_STORE 15
|
335
|
+
|
336
|
+
/*
|
337
|
+
* Dynamically assigned indexes start from this value (don't use directly,
|
338
|
+
* use via CRYPTO_ex_data_new_class).
|
339
|
+
*/
|
340
|
+
# define CRYPTO_EX_INDEX_USER 100
|
341
|
+
|
342
|
+
/*
|
343
|
+
* This is the default callbacks, but we can have others as well: this is
|
344
|
+
* needed in Win32 where the application malloc and the library malloc may
|
345
|
+
* not be the same.
|
346
|
+
*/
|
347
|
+
# define CRYPTO_malloc_init() CRYPTO_set_mem_functions(\
|
348
|
+
malloc, realloc, free)
|
349
|
+
|
350
|
+
# if defined CRYPTO_MDEBUG_ALL || defined CRYPTO_MDEBUG_TIME || defined CRYPTO_MDEBUG_THREAD
|
351
|
+
# ifndef CRYPTO_MDEBUG /* avoid duplicate #define */
|
352
|
+
# define CRYPTO_MDEBUG
|
353
|
+
# endif
|
354
|
+
# endif
|
355
|
+
|
356
|
+
/*
|
357
|
+
* Set standard debugging functions (not done by default unless CRYPTO_MDEBUG
|
358
|
+
* is defined)
|
359
|
+
*/
|
360
|
+
# define CRYPTO_malloc_debug_init() do {\
|
361
|
+
CRYPTO_set_mem_debug_functions(\
|
362
|
+
CRYPTO_dbg_malloc,\
|
363
|
+
CRYPTO_dbg_realloc,\
|
364
|
+
CRYPTO_dbg_free,\
|
365
|
+
CRYPTO_dbg_set_options,\
|
366
|
+
CRYPTO_dbg_get_options);\
|
367
|
+
} while(0)
|
368
|
+
|
369
|
+
int CRYPTO_mem_ctrl(int mode);
|
370
|
+
int CRYPTO_is_mem_check_on(void);
|
371
|
+
|
372
|
+
/* for applications */
|
373
|
+
# define MemCheck_start() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON)
|
374
|
+
# define MemCheck_stop() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_OFF)
|
375
|
+
|
376
|
+
/* for library-internal use */
|
377
|
+
# define MemCheck_on() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ENABLE)
|
378
|
+
# define MemCheck_off() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_DISABLE)
|
379
|
+
# define is_MemCheck_on() CRYPTO_is_mem_check_on()
|
380
|
+
|
381
|
+
# define OPENSSL_malloc(num) CRYPTO_malloc((int)num,__FILE__,__LINE__)
|
382
|
+
# define OPENSSL_strdup(str) CRYPTO_strdup((str),__FILE__,__LINE__)
|
383
|
+
# define OPENSSL_realloc(addr,num) \
|
384
|
+
CRYPTO_realloc((char *)addr,(int)num,__FILE__,__LINE__)
|
385
|
+
# define OPENSSL_realloc_clean(addr,old_num,num) \
|
386
|
+
CRYPTO_realloc_clean(addr,old_num,num,__FILE__,__LINE__)
|
387
|
+
# define OPENSSL_remalloc(addr,num) \
|
388
|
+
CRYPTO_remalloc((char **)addr,(int)num,__FILE__,__LINE__)
|
389
|
+
# define OPENSSL_freeFunc CRYPTO_free
|
390
|
+
# define OPENSSL_free(addr) CRYPTO_free(addr)
|
391
|
+
|
392
|
+
# define OPENSSL_malloc_locked(num) \
|
393
|
+
CRYPTO_malloc_locked((int)num,__FILE__,__LINE__)
|
394
|
+
# define OPENSSL_free_locked(addr) CRYPTO_free_locked(addr)
|
395
|
+
|
396
|
+
const char *SSLeay_version(int type);
|
397
|
+
unsigned long SSLeay(void);
|
398
|
+
|
399
|
+
int OPENSSL_issetugid(void);
|
400
|
+
|
401
|
+
/* An opaque type representing an implementation of "ex_data" support */
|
402
|
+
typedef struct st_CRYPTO_EX_DATA_IMPL CRYPTO_EX_DATA_IMPL;
|
403
|
+
/* Return an opaque pointer to the current "ex_data" implementation */
|
404
|
+
const CRYPTO_EX_DATA_IMPL *CRYPTO_get_ex_data_implementation(void);
|
405
|
+
/* Sets the "ex_data" implementation to be used (if it's not too late) */
|
406
|
+
int CRYPTO_set_ex_data_implementation(const CRYPTO_EX_DATA_IMPL *i);
|
407
|
+
/* Get a new "ex_data" class, and return the corresponding "class_index" */
|
408
|
+
int CRYPTO_ex_data_new_class(void);
|
409
|
+
/* Within a given class, get/register a new index */
|
410
|
+
int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp,
|
411
|
+
CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func,
|
412
|
+
CRYPTO_EX_free *free_func);
|
413
|
+
/*
|
414
|
+
* Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a
|
415
|
+
* given class (invokes whatever per-class callbacks are applicable)
|
416
|
+
*/
|
417
|
+
int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad);
|
418
|
+
int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to,
|
419
|
+
CRYPTO_EX_DATA *from);
|
420
|
+
void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad);
|
421
|
+
/*
|
422
|
+
* Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular
|
423
|
+
* index (relative to the class type involved)
|
424
|
+
*/
|
425
|
+
int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val);
|
426
|
+
void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx);
|
427
|
+
/*
|
428
|
+
* This function cleans up all "ex_data" state. It mustn't be called under
|
429
|
+
* potential race-conditions.
|
430
|
+
*/
|
431
|
+
void CRYPTO_cleanup_all_ex_data(void);
|
432
|
+
|
433
|
+
int CRYPTO_get_new_lockid(char *name);
|
434
|
+
|
435
|
+
int CRYPTO_num_locks(void); /* return CRYPTO_NUM_LOCKS (shared libs!) */
|
436
|
+
void CRYPTO_lock(int mode, int type, const char *file, int line);
|
437
|
+
void CRYPTO_set_locking_callback(void (*func) (int mode, int type,
|
438
|
+
const char *file, int line));
|
439
|
+
void (*CRYPTO_get_locking_callback(void)) (int mode, int type,
|
440
|
+
const char *file, int line);
|
441
|
+
void CRYPTO_set_add_lock_callback(int (*func)
|
442
|
+
(int *num, int mount, int type,
|
443
|
+
const char *file, int line));
|
444
|
+
int (*CRYPTO_get_add_lock_callback(void)) (int *num, int mount, int type,
|
445
|
+
const char *file, int line);
|
446
|
+
|
447
|
+
/* Don't use this structure directly. */
|
448
|
+
typedef struct crypto_threadid_st {
|
449
|
+
void *ptr;
|
450
|
+
unsigned long val;
|
451
|
+
} CRYPTO_THREADID;
|
452
|
+
/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */
|
453
|
+
void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val);
|
454
|
+
void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr);
|
455
|
+
int CRYPTO_THREADID_set_callback(void (*threadid_func) (CRYPTO_THREADID *));
|
456
|
+
void (*CRYPTO_THREADID_get_callback(void)) (CRYPTO_THREADID *);
|
457
|
+
void CRYPTO_THREADID_current(CRYPTO_THREADID *id);
|
458
|
+
int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, const CRYPTO_THREADID *b);
|
459
|
+
void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, const CRYPTO_THREADID *src);
|
460
|
+
unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id);
|
461
|
+
# ifndef OPENSSL_NO_DEPRECATED
|
462
|
+
void CRYPTO_set_id_callback(unsigned long (*func) (void));
|
463
|
+
unsigned long (*CRYPTO_get_id_callback(void)) (void);
|
464
|
+
unsigned long CRYPTO_thread_id(void);
|
465
|
+
# endif
|
466
|
+
|
467
|
+
const char *CRYPTO_get_lock_name(int type);
|
468
|
+
int CRYPTO_add_lock(int *pointer, int amount, int type, const char *file,
|
469
|
+
int line);
|
470
|
+
|
471
|
+
int CRYPTO_get_new_dynlockid(void);
|
472
|
+
void CRYPTO_destroy_dynlockid(int i);
|
473
|
+
struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i);
|
474
|
+
void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value
|
475
|
+
*(*dyn_create_function) (const char
|
476
|
+
*file,
|
477
|
+
int line));
|
478
|
+
void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)
|
479
|
+
(int mode,
|
480
|
+
struct CRYPTO_dynlock_value *l,
|
481
|
+
const char *file, int line));
|
482
|
+
void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)
|
483
|
+
(struct CRYPTO_dynlock_value *l,
|
484
|
+
const char *file, int line));
|
485
|
+
struct CRYPTO_dynlock_value
|
486
|
+
*(*CRYPTO_get_dynlock_create_callback(void)) (const char *file, int line);
|
487
|
+
void (*CRYPTO_get_dynlock_lock_callback(void)) (int mode,
|
488
|
+
struct CRYPTO_dynlock_value
|
489
|
+
*l, const char *file,
|
490
|
+
int line);
|
491
|
+
void (*CRYPTO_get_dynlock_destroy_callback(void)) (struct CRYPTO_dynlock_value
|
492
|
+
*l, const char *file,
|
493
|
+
int line);
|
494
|
+
|
495
|
+
/*
|
496
|
+
* CRYPTO_set_mem_functions includes CRYPTO_set_locked_mem_functions -- call
|
497
|
+
* the latter last if you need different functions
|
498
|
+
*/
|
499
|
+
int CRYPTO_set_mem_functions(void *(*m) (size_t), void *(*r) (void *, size_t),
|
500
|
+
void (*f) (void *));
|
501
|
+
int CRYPTO_set_locked_mem_functions(void *(*m) (size_t),
|
502
|
+
void (*free_func) (void *));
|
503
|
+
int CRYPTO_set_mem_ex_functions(void *(*m) (size_t, const char *, int),
|
504
|
+
void *(*r) (void *, size_t, const char *,
|
505
|
+
int), void (*f) (void *));
|
506
|
+
int CRYPTO_set_locked_mem_ex_functions(void *(*m) (size_t, const char *, int),
|
507
|
+
void (*free_func) (void *));
|
508
|
+
int CRYPTO_set_mem_debug_functions(void (*m)
|
509
|
+
(void *, int, const char *, int, int),
|
510
|
+
void (*r) (void *, void *, int,
|
511
|
+
const char *, int, int),
|
512
|
+
void (*f) (void *, int), void (*so) (long),
|
513
|
+
long (*go) (void));
|
514
|
+
void CRYPTO_get_mem_functions(void *(**m) (size_t),
|
515
|
+
void *(**r) (void *, size_t),
|
516
|
+
void (**f) (void *));
|
517
|
+
void CRYPTO_get_locked_mem_functions(void *(**m) (size_t),
|
518
|
+
void (**f) (void *));
|
519
|
+
void CRYPTO_get_mem_ex_functions(void *(**m) (size_t, const char *, int),
|
520
|
+
void *(**r) (void *, size_t, const char *,
|
521
|
+
int), void (**f) (void *));
|
522
|
+
void CRYPTO_get_locked_mem_ex_functions(void
|
523
|
+
*(**m) (size_t, const char *, int),
|
524
|
+
void (**f) (void *));
|
525
|
+
void CRYPTO_get_mem_debug_functions(void (**m)
|
526
|
+
(void *, int, const char *, int, int),
|
527
|
+
void (**r) (void *, void *, int,
|
528
|
+
const char *, int, int),
|
529
|
+
void (**f) (void *, int),
|
530
|
+
void (**so) (long), long (**go) (void));
|
531
|
+
|
532
|
+
void *CRYPTO_malloc_locked(int num, const char *file, int line);
|
533
|
+
void CRYPTO_free_locked(void *ptr);
|
534
|
+
void *CRYPTO_malloc(int num, const char *file, int line);
|
535
|
+
char *CRYPTO_strdup(const char *str, const char *file, int line);
|
536
|
+
void CRYPTO_free(void *ptr);
|
537
|
+
void *CRYPTO_realloc(void *addr, int num, const char *file, int line);
|
538
|
+
void *CRYPTO_realloc_clean(void *addr, int old_num, int num, const char *file,
|
539
|
+
int line);
|
540
|
+
void *CRYPTO_remalloc(void *addr, int num, const char *file, int line);
|
541
|
+
|
542
|
+
void OPENSSL_cleanse(void *ptr, size_t len);
|
543
|
+
|
544
|
+
void CRYPTO_set_mem_debug_options(long bits);
|
545
|
+
long CRYPTO_get_mem_debug_options(void);
|
546
|
+
|
547
|
+
# define CRYPTO_push_info(info) \
|
548
|
+
CRYPTO_push_info_(info, __FILE__, __LINE__);
|
549
|
+
int CRYPTO_push_info_(const char *info, const char *file, int line);
|
550
|
+
int CRYPTO_pop_info(void);
|
551
|
+
int CRYPTO_remove_all_info(void);
|
552
|
+
|
553
|
+
/*
|
554
|
+
* Default debugging functions (enabled by CRYPTO_malloc_debug_init() macro;
|
555
|
+
* used as default in CRYPTO_MDEBUG compilations):
|
556
|
+
*/
|
557
|
+
/*-
|
558
|
+
* The last argument has the following significance:
|
559
|
+
*
|
560
|
+
* 0: called before the actual memory allocation has taken place
|
561
|
+
* 1: called after the actual memory allocation has taken place
|
562
|
+
*/
|
563
|
+
void CRYPTO_dbg_malloc(void *addr, int num, const char *file, int line,
|
564
|
+
int before_p);
|
565
|
+
void CRYPTO_dbg_realloc(void *addr1, void *addr2, int num, const char *file,
|
566
|
+
int line, int before_p);
|
567
|
+
void CRYPTO_dbg_free(void *addr, int before_p);
|
568
|
+
/*-
|
569
|
+
* Tell the debugging code about options. By default, the following values
|
570
|
+
* apply:
|
571
|
+
*
|
572
|
+
* 0: Clear all options.
|
573
|
+
* V_CRYPTO_MDEBUG_TIME (1): Set the "Show Time" option.
|
574
|
+
* V_CRYPTO_MDEBUG_THREAD (2): Set the "Show Thread Number" option.
|
575
|
+
* V_CRYPTO_MDEBUG_ALL (3): 1 + 2
|
576
|
+
*/
|
577
|
+
void CRYPTO_dbg_set_options(long bits);
|
578
|
+
long CRYPTO_dbg_get_options(void);
|
579
|
+
|
580
|
+
# ifndef OPENSSL_NO_FP_API
|
581
|
+
void CRYPTO_mem_leaks_fp(FILE *);
|
582
|
+
# endif
|
583
|
+
void CRYPTO_mem_leaks(struct bio_st *bio);
|
584
|
+
/* unsigned long order, char *file, int line, int num_bytes, char *addr */
|
585
|
+
typedef void *CRYPTO_MEM_LEAK_CB (unsigned long, const char *, int, int,
|
586
|
+
void *);
|
587
|
+
void CRYPTO_mem_leaks_cb(CRYPTO_MEM_LEAK_CB *cb);
|
588
|
+
|
589
|
+
/* die if we have to */
|
590
|
+
void OpenSSLDie(const char *file, int line, const char *assertion);
|
591
|
+
# define OPENSSL_assert(e) (void)((e) ? 0 : (OpenSSLDie(__FILE__, __LINE__, #e),1))
|
592
|
+
|
593
|
+
unsigned long *OPENSSL_ia32cap_loc(void);
|
594
|
+
# define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc()))
|
595
|
+
int OPENSSL_isservice(void);
|
596
|
+
|
597
|
+
int FIPS_mode(void);
|
598
|
+
int FIPS_mode_set(int r);
|
599
|
+
|
600
|
+
void OPENSSL_init(void);
|
601
|
+
|
602
|
+
# define fips_md_init(alg) fips_md_init_ctx(alg, alg)
|
603
|
+
|
604
|
+
# ifdef OPENSSL_FIPS
|
605
|
+
# define fips_md_init_ctx(alg, cx) \
|
606
|
+
int alg##_Init(cx##_CTX *c) \
|
607
|
+
{ \
|
608
|
+
if (FIPS_mode()) OpenSSLDie(__FILE__, __LINE__, \
|
609
|
+
"Low level API call to digest " #alg " forbidden in FIPS mode!"); \
|
610
|
+
return private_##alg##_Init(c); \
|
611
|
+
} \
|
612
|
+
int private_##alg##_Init(cx##_CTX *c)
|
613
|
+
|
614
|
+
# define fips_cipher_abort(alg) \
|
615
|
+
if (FIPS_mode()) OpenSSLDie(__FILE__, __LINE__, \
|
616
|
+
"Low level API call to cipher " #alg " forbidden in FIPS mode!")
|
617
|
+
|
618
|
+
# else
|
619
|
+
# define fips_md_init_ctx(alg, cx) \
|
620
|
+
int alg##_Init(cx##_CTX *c)
|
621
|
+
# define fips_cipher_abort(alg) while(0)
|
622
|
+
# endif
|
623
|
+
|
624
|
+
/*
|
625
|
+
* CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal.
|
626
|
+
* It takes an amount of time dependent on |len|, but independent of the
|
627
|
+
* contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements
|
628
|
+
* into a defined order as the return value when a != b is undefined, other
|
629
|
+
* than to be non-zero.
|
630
|
+
*/
|
631
|
+
int CRYPTO_memcmp(const void *a, const void *b, size_t len);
|
632
|
+
|
633
|
+
/* BEGIN ERROR CODES */
|
634
|
+
/*
|
635
|
+
* The following lines are auto generated by the script mkerr.pl. Any changes
|
636
|
+
* made after this point may be overwritten when the script is next run.
|
637
|
+
*/
|
638
|
+
void ERR_load_CRYPTO_strings(void);
|
639
|
+
|
640
|
+
/* Error codes for the CRYPTO functions. */
|
641
|
+
|
642
|
+
/* Function codes. */
|
643
|
+
# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100
|
644
|
+
# define CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID 103
|
645
|
+
# define CRYPTO_F_CRYPTO_GET_NEW_LOCKID 101
|
646
|
+
# define CRYPTO_F_CRYPTO_SET_EX_DATA 102
|
647
|
+
# define CRYPTO_F_DEF_ADD_INDEX 104
|
648
|
+
# define CRYPTO_F_DEF_GET_CLASS 105
|
649
|
+
# define CRYPTO_F_FIPS_MODE_SET 109
|
650
|
+
# define CRYPTO_F_INT_DUP_EX_DATA 106
|
651
|
+
# define CRYPTO_F_INT_FREE_EX_DATA 107
|
652
|
+
# define CRYPTO_F_INT_NEW_EX_DATA 108
|
653
|
+
|
654
|
+
/* Reason codes. */
|
655
|
+
# define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101
|
656
|
+
# define CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK 100
|
657
|
+
|
658
|
+
#ifdef __cplusplus
|
659
|
+
}
|
660
|
+
#endif
|
661
|
+
#endif
|