diff options
Diffstat (limited to 'src/lib/libssl/src/apps/apps.h')
-rw-r--r-- | src/lib/libssl/src/apps/apps.h | 139 |
1 files changed, 121 insertions, 18 deletions
diff --git a/src/lib/libssl/src/apps/apps.h b/src/lib/libssl/src/apps/apps.h index 74d479e91d..a05ba712be 100644 --- a/src/lib/libssl/src/apps/apps.h +++ b/src/lib/libssl/src/apps/apps.h | |||
@@ -55,11 +55,64 @@ | |||
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 "openssl/e_os.h" | 115 | #include "e_os.h" |
63 | 116 | ||
64 | #include <openssl/buffer.h> | 117 | #include <openssl/buffer.h> |
65 | #include <openssl/bio.h> | 118 | #include <openssl/bio.h> |
@@ -67,6 +120,9 @@ | |||
67 | #include <openssl/x509.h> | 120 | #include <openssl/x509.h> |
68 | #include <openssl/lhash.h> | 121 | #include <openssl/lhash.h> |
69 | #include <openssl/conf.h> | 122 | #include <openssl/conf.h> |
123 | #include <openssl/txt_db.h> | ||
124 | #include <openssl/engine.h> | ||
125 | #include <openssl/ossl_typ.h> | ||
70 | 126 | ||
71 | int app_RAND_load_file(const char *file, BIO *bio_e, int dont_warn); | 127 | int app_RAND_load_file(const char *file, BIO *bio_e, int dont_warn); |
72 | int app_RAND_write_file(const char *file, BIO *bio_e); | 128 | int app_RAND_write_file(const char *file, BIO *bio_e); |
@@ -78,11 +134,11 @@ long app_RAND_load_files(char *file); /* `file' is a list of files to read, | |||
78 | * (see e_os.h). The string is | 134 | * (see e_os.h). The string is |
79 | * destroyed! */ | 135 | * destroyed! */ |
80 | 136 | ||
81 | #ifdef NO_STDIO | 137 | #ifdef OPENSSL_NO_STDIO |
82 | BIO_METHOD *BIO_s_file(); | 138 | BIO_METHOD *BIO_s_file(); |
83 | #endif | 139 | #endif |
84 | 140 | ||
85 | #ifdef WIN32 | 141 | #ifdef OPENSSL_SYS_WIN32 |
86 | #define rename(from,to) WIN32_rename((from),(to)) | 142 | #define rename(from,to) WIN32_rename((from),(to)) |
87 | int WIN32_rename(char *oldname,char *newname); | 143 | int WIN32_rename(char *oldname,char *newname); |
88 | #endif | 144 | #endif |
@@ -100,7 +156,7 @@ extern BIO *bio_err; | |||
100 | #else | 156 | #else |
101 | 157 | ||
102 | #define MAIN(a,v) PROG(a,v) | 158 | #define MAIN(a,v) PROG(a,v) |
103 | extern LHASH *config; | 159 | extern CONF *config; |
104 | extern char *default_config_file; | 160 | extern char *default_config_file; |
105 | extern BIO *bio_err; | 161 | extern BIO *bio_err; |
106 | 162 | ||
@@ -115,21 +171,34 @@ extern BIO *bio_err; | |||
115 | #endif | 171 | #endif |
116 | 172 | ||
117 | #if defined(MONOLITH) && !defined(OPENSSL_C) | 173 | #if defined(MONOLITH) && !defined(OPENSSL_C) |
118 | # define apps_startup() do_pipe_sig() | 174 | # define apps_startup() \ |
175 | do_pipe_sig() | ||
176 | # define apps_shutdown() | ||
119 | #else | 177 | #else |
120 | # if defined(MSDOS) || defined(WIN16) || defined(WIN32) | 178 | # if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WIN16) || \ |
179 | defined(OPENSSL_SYS_WIN32) | ||
121 | # ifdef _O_BINARY | 180 | # ifdef _O_BINARY |
122 | # define apps_startup() \ | 181 | # define apps_startup() \ |
123 | _fmode=_O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \ | 182 | do { _fmode=_O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \ |
124 | SSLeay_add_all_algorithms() | 183 | ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); \ |
184 | ENGINE_load_builtin_engines(); setup_ui_method(); } while(0) | ||
125 | # else | 185 | # else |
126 | # define apps_startup() \ | 186 | # define apps_startup() \ |
127 | _fmode=O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \ | 187 | do { _fmode=O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \ |
128 | SSLeay_add_all_algorithms() | 188 | ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); \ |
189 | ENGINE_load_builtin_engines(); setup_ui_method(); } while(0) | ||
129 | # endif | 190 | # endif |
130 | # else | 191 | # else |
131 | # 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) | ||
132 | # 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) | ||
133 | #endif | 202 | #endif |
134 | 203 | ||
135 | typedef struct args_st | 204 | typedef struct args_st |
@@ -138,6 +207,19 @@ typedef struct args_st | |||
138 | int count; | 207 | int count; |
139 | } ARGS; | 208 | } ARGS; |
140 | 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(); | ||
222 | |||
141 | int should_retry(int i); | 223 | int should_retry(int i); |
142 | int args_from_file(char *file, int *argc, char **argv[]); | 224 | int args_from_file(char *file, int *argc, char **argv[]); |
143 | int str2fmt(char *s); | 225 | int str2fmt(char *s); |
@@ -147,13 +229,29 @@ int chopup_args(ARGS *arg,char *buf, int *argc, char **argv[]); | |||
147 | int dump_cert_text(BIO *out, X509 *x); | 229 | int dump_cert_text(BIO *out, X509 *x); |
148 | void print_name(BIO *out, char *title, X509_NAME *nm, unsigned long lflags); | 230 | void print_name(BIO *out, char *title, X509_NAME *nm, unsigned long lflags); |
149 | #endif | 231 | #endif |
232 | int set_cert_ex(unsigned long *flags, const char *arg); | ||
150 | int set_name_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); | ||
151 | int app_passwd(BIO *err, char *arg1, char *arg2, char **pass1, char **pass2); | 236 | int app_passwd(BIO *err, char *arg1, char *arg2, char **pass1, char **pass2); |
152 | int add_oid_section(BIO *err, LHASH *conf); | 237 | int add_oid_section(BIO *err, CONF *conf); |
153 | X509 *load_cert(BIO *err, char *file, int format); | 238 | X509 *load_cert(BIO *err, const char *file, int format, |
154 | EVP_PKEY *load_key(BIO *err, char *file, int format, char *pass); | 239 | const char *pass, ENGINE *e, const char *cert_descrip); |
155 | EVP_PKEY *load_pubkey(BIO *err, char *file, int format); | 240 | EVP_PKEY *load_key(BIO *err, const char *file, int format, |
156 | STACK_OF(X509) *load_certs(BIO *err, 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); | ||
157 | 255 | ||
158 | #define FORMAT_UNDEF 0 | 256 | #define FORMAT_UNDEF 0 |
159 | #define FORMAT_ASN1 1 | 257 | #define FORMAT_ASN1 1 |
@@ -162,8 +260,13 @@ STACK_OF(X509) *load_certs(BIO *err, char *file, int format); | |||
162 | #define FORMAT_NETSCAPE 4 | 260 | #define FORMAT_NETSCAPE 4 |
163 | #define FORMAT_PKCS12 5 | 261 | #define FORMAT_PKCS12 5 |
164 | #define FORMAT_SMIME 6 | 262 | #define FORMAT_SMIME 6 |
165 | /* Since this is currently inofficial, let's give it a high number */ | 263 | #define FORMAT_ENGINE 7 |
166 | #define FORMAT_ENGINE 127 | 264 | #define FORMAT_IISSGC 8 /* XXX this stupid macro helps us to avoid |
265 | * adding yet another param to load_*key() */ | ||
266 | |||
267 | #define EXT_COPY_NONE 0 | ||
268 | #define EXT_COPY_ADD 1 | ||
269 | #define EXT_COPY_ALL 2 | ||
167 | 270 | ||
168 | #define NETSCAPE_CERT_HDR "certificate" | 271 | #define NETSCAPE_CERT_HDR "certificate" |
169 | 272 | ||