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 |
