diff options
Diffstat (limited to 'src/lib/libssl/src/apps/apps.h')
-rw-r--r-- | src/lib/libssl/src/apps/apps.h | 179 |
1 files changed, 153 insertions, 26 deletions
diff --git a/src/lib/libssl/src/apps/apps.h b/src/lib/libssl/src/apps/apps.h index 25a9262e03..5b3836ab22 100644 --- a/src/lib/libssl/src/apps/apps.h +++ b/src/lib/libssl/src/apps/apps.h | |||
@@ -55,22 +55,90 @@ | |||
55 | * copied and put under another distribution licence | 55 | * copied and put under another distribution licence |
56 | * [including the GNU Public Licence.] | 56 | * [including the GNU Public Licence.] |
57 | */ | 57 | */ |
58 | /* ==================================================================== | ||
59 | * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. | ||
60 | * | ||
61 | * Redistribution and use in source and binary forms, with or without | ||
62 | * modification, are permitted provided that the following conditions | ||
63 | * are met: | ||
64 | * | ||
65 | * 1. Redistributions of source code must retain the above copyright | ||
66 | * notice, this list of conditions and the following disclaimer. | ||
67 | * | ||
68 | * 2. Redistributions in binary form must reproduce the above copyright | ||
69 | * notice, this list of conditions and the following disclaimer in | ||
70 | * the documentation and/or other materials provided with the | ||
71 | * distribution. | ||
72 | * | ||
73 | * 3. All advertising materials mentioning features or use of this | ||
74 | * software must display the following acknowledgment: | ||
75 | * "This product includes software developed by the OpenSSL Project | ||
76 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" | ||
77 | * | ||
78 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
79 | * endorse or promote products derived from this software without | ||
80 | * prior written permission. For written permission, please contact | ||
81 | * openssl-core@openssl.org. | ||
82 | * | ||
83 | * 5. Products derived from this software may not be called "OpenSSL" | ||
84 | * nor may "OpenSSL" appear in their names without prior written | ||
85 | * permission of the OpenSSL Project. | ||
86 | * | ||
87 | * 6. Redistributions of any form whatsoever must retain the following | ||
88 | * acknowledgment: | ||
89 | * "This product includes software developed by the OpenSSL Project | ||
90 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)" | ||
91 | * | ||
92 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
93 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
94 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
95 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
96 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
97 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
98 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
99 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
100 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
101 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
102 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
103 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
104 | * ==================================================================== | ||
105 | * | ||
106 | * This product includes cryptographic software written by Eric Young | ||
107 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
108 | * Hudson (tjh@cryptsoft.com). | ||
109 | * | ||
110 | */ | ||
58 | 111 | ||
59 | #ifndef HEADER_APPS_H | 112 | #ifndef HEADER_APPS_H |
60 | #define HEADER_APPS_H | 113 | #define HEADER_APPS_H |
61 | 114 | ||
62 | #include "e_os.h" | 115 | #include "e_os.h" |
63 | 116 | ||
64 | #include "buffer.h" | 117 | #include <openssl/buffer.h> |
65 | #include "bio.h" | 118 | #include <openssl/bio.h> |
66 | #include "crypto.h" | 119 | #include <openssl/crypto.h> |
67 | #include "progs.h" | 120 | #include <openssl/x509.h> |
121 | #include <openssl/lhash.h> | ||
122 | #include <openssl/conf.h> | ||
123 | #include <openssl/txt_db.h> | ||
124 | #include <openssl/engine.h> | ||
125 | #include <openssl/ossl_typ.h> | ||
68 | 126 | ||
69 | #ifdef NO_STDIO | 127 | int app_RAND_load_file(const char *file, BIO *bio_e, int dont_warn); |
128 | int app_RAND_write_file(const char *file, BIO *bio_e); | ||
129 | /* When `file' is NULL, use defaults. | ||
130 | * `bio_e' is for error messages. */ | ||
131 | void app_RAND_allow_write_file(void); | ||
132 | long app_RAND_load_files(char *file); /* `file' is a list of files to read, | ||
133 | * separated by LIST_SEPARATOR_CHAR | ||
134 | * (see e_os.h). The string is | ||
135 | * destroyed! */ | ||
136 | |||
137 | #ifdef OPENSSL_NO_STDIO | ||
70 | BIO_METHOD *BIO_s_file(); | 138 | BIO_METHOD *BIO_s_file(); |
71 | #endif | 139 | #endif |
72 | 140 | ||
73 | #ifdef WIN32 | 141 | #ifdef OPENSSL_SYS_WIN32 |
74 | #define rename(from,to) WIN32_rename((from),(to)) | 142 | #define rename(from,to) WIN32_rename((from),(to)) |
75 | int WIN32_rename(char *oldname,char *newname); | 143 | int WIN32_rename(char *oldname,char *newname); |
76 | #endif | 144 | #endif |
@@ -88,8 +156,7 @@ extern BIO *bio_err; | |||
88 | #else | 156 | #else |
89 | 157 | ||
90 | #define MAIN(a,v) PROG(a,v) | 158 | #define MAIN(a,v) PROG(a,v) |
91 | #include "conf.h" | 159 | extern CONF *config; |
92 | extern LHASH *config; | ||
93 | extern char *default_config_file; | 160 | extern char *default_config_file; |
94 | extern BIO *bio_err; | 161 | extern BIO *bio_err; |
95 | 162 | ||
@@ -103,48 +170,108 @@ extern BIO *bio_err; | |||
103 | #define do_pipe_sig() | 170 | #define do_pipe_sig() |
104 | #endif | 171 | #endif |
105 | 172 | ||
106 | #if defined(MONOLITH) && !defined(SSLEAY) | 173 | #if defined(MONOLITH) && !defined(OPENSSL_C) |
107 | # define apps_startup() do_pipe_sig() | 174 | # define apps_startup() \ |
175 | do_pipe_sig() | ||
176 | # define apps_shutdown() | ||
108 | #else | 177 | #else |
109 | # if defined(MSDOS) || defined(WIN16) || defined(WIN32) | 178 | # if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WIN16) || \ |
179 | defined(OPENSSL_SYS_WIN32) | ||
110 | # ifdef _O_BINARY | 180 | # ifdef _O_BINARY |
111 | # define apps_startup() \ | 181 | # define apps_startup() \ |
112 | _fmode=_O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \ | 182 | do { _fmode=_O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \ |
113 | SSLeay_add_all_algorithms() | 183 | ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); \ |
184 | ENGINE_load_builtin_engines(); setup_ui_method(); } while(0) | ||
114 | # else | 185 | # else |
115 | # define apps_startup() \ | 186 | # define apps_startup() \ |
116 | _fmode=O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \ | 187 | do { _fmode=O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \ |
117 | SSLeay_add_all_algorithms() | 188 | ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); \ |
189 | ENGINE_load_builtin_engines(); setup_ui_method(); } while(0) | ||
118 | # endif | 190 | # endif |
119 | # else | 191 | # else |
120 | # define apps_startup() do_pipe_sig(); SSLeay_add_all_algorithms(); | 192 | # define apps_startup() \ |
193 | do { do_pipe_sig(); OpenSSL_add_all_algorithms(); \ | ||
194 | ERR_load_crypto_strings(); ENGINE_load_builtin_engines(); \ | ||
195 | setup_ui_method(); } while(0) | ||
121 | # endif | 196 | # endif |
197 | # define apps_shutdown() \ | ||
198 | do { CONF_modules_unload(1); destroy_ui_method(); \ | ||
199 | EVP_cleanup(); ENGINE_cleanup(); \ | ||
200 | CRYPTO_cleanup_all_ex_data(); ERR_remove_state(0); \ | ||
201 | ERR_free_strings(); } while(0) | ||
122 | #endif | 202 | #endif |
123 | 203 | ||
124 | typedef struct args_st | 204 | typedef struct args_st |
125 | { | 205 | { |
126 | char **data; | 206 | char **data; |
127 | int count; | 207 | int count; |
128 | } ARGS; | 208 | } ARGS; |
209 | |||
210 | #define PW_MIN_LENGTH 4 | ||
211 | typedef struct pw_cb_data | ||
212 | { | ||
213 | const void *password; | ||
214 | const char *prompt_info; | ||
215 | } PW_CB_DATA; | ||
216 | |||
217 | int password_callback(char *buf, int bufsiz, int verify, | ||
218 | PW_CB_DATA *cb_data); | ||
219 | |||
220 | int setup_ui_method(); | ||
221 | void destroy_ui_method(); | ||
129 | 222 | ||
130 | #ifndef NOPROTO | ||
131 | int should_retry(int i); | 223 | int should_retry(int i); |
132 | int args_from_file(char *file, int *argc, char **argv[]); | 224 | int args_from_file(char *file, int *argc, char **argv[]); |
133 | int str2fmt(char *s); | 225 | int str2fmt(char *s); |
134 | void program_name(char *in,char *out,int size); | 226 | void program_name(char *in,char *out,int size); |
135 | int chopup_args(ARGS *arg,char *buf, int *argc, char **argv[]); | 227 | int chopup_args(ARGS *arg,char *buf, int *argc, char **argv[]); |
136 | #else | 228 | #ifdef HEADER_X509_H |
137 | int should_retry(); | 229 | int dump_cert_text(BIO *out, X509 *x); |
138 | int args_from_file(); | 230 | void print_name(BIO *out, char *title, X509_NAME *nm, unsigned long lflags); |
139 | int str2fmt(); | ||
140 | void program_name(); | ||
141 | int chopup_args(); | ||
142 | #endif | 231 | #endif |
232 | int set_cert_ex(unsigned long *flags, const char *arg); | ||
233 | int set_name_ex(unsigned long *flags, const char *arg); | ||
234 | int set_ext_copy(int *copy_type, const char *arg); | ||
235 | int copy_extensions(X509 *x, X509_REQ *req, int copy_type); | ||
236 | int app_passwd(BIO *err, char *arg1, char *arg2, char **pass1, char **pass2); | ||
237 | int add_oid_section(BIO *err, CONF *conf); | ||
238 | X509 *load_cert(BIO *err, const char *file, int format, | ||
239 | const char *pass, ENGINE *e, const char *cert_descrip); | ||
240 | EVP_PKEY *load_key(BIO *err, const char *file, int format, | ||
241 | const char *pass, ENGINE *e, const char *key_descrip); | ||
242 | EVP_PKEY *load_pubkey(BIO *err, const char *file, int format, | ||
243 | const char *pass, ENGINE *e, const char *key_descrip); | ||
244 | STACK_OF(X509) *load_certs(BIO *err, const char *file, int format, | ||
245 | const char *pass, ENGINE *e, const char *cert_descrip); | ||
246 | X509_STORE *setup_verify(BIO *bp, char *CAfile, char *CApath); | ||
247 | ENGINE *setup_engine(BIO *err, const char *engine, int debug); | ||
248 | |||
249 | int load_config(BIO *err, CONF *cnf); | ||
250 | |||
251 | /* Functions defined in ca.c and also used in ocsp.c */ | ||
252 | int unpack_revinfo(ASN1_TIME **prevtm, int *preason, ASN1_OBJECT **phold, | ||
253 | ASN1_GENERALIZEDTIME **pinvtm, char *str); | ||
254 | int make_serial_index(TXT_DB *db); | ||
255 | |||
256 | X509_NAME *do_subject(char *str, long chtype); | ||
143 | 257 | ||
144 | #define FORMAT_UNDEF 0 | 258 | #define FORMAT_UNDEF 0 |
145 | #define FORMAT_ASN1 1 | 259 | #define FORMAT_ASN1 1 |
146 | #define FORMAT_TEXT 2 | 260 | #define FORMAT_TEXT 2 |
147 | #define FORMAT_PEM 3 | 261 | #define FORMAT_PEM 3 |
148 | #define FORMAT_NETSCAPE 4 | 262 | #define FORMAT_NETSCAPE 4 |
263 | #define FORMAT_PKCS12 5 | ||
264 | #define FORMAT_SMIME 6 | ||
265 | #define FORMAT_ENGINE 7 | ||
266 | #define FORMAT_IISSGC 8 /* XXX this stupid macro helps us to avoid | ||
267 | * adding yet another param to load_*key() */ | ||
268 | |||
269 | #define EXT_COPY_NONE 0 | ||
270 | #define EXT_COPY_ADD 1 | ||
271 | #define EXT_COPY_ALL 2 | ||
272 | |||
273 | #define NETSCAPE_CERT_HDR "certificate" | ||
274 | |||
275 | #define APP_PASS_LEN 1024 | ||
149 | 276 | ||
150 | #endif | 277 | #endif |