OLD | NEW |
1 /* apps/pkcs7.c */ | 1 /* apps/pkcs7.c */ |
2 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 * All rights reserved. | 3 * All rights reserved. |
4 * | 4 * |
5 * This package is an SSL implementation written | 5 * This package is an SSL implementation written |
6 * by Eric Young (eay@cryptsoft.com). | 6 * by Eric Young (eay@cryptsoft.com). |
7 * The implementation was written so as to conform with Netscapes SSL. | 7 * The implementation was written so as to conform with Netscapes SSL. |
8 * | 8 * |
9 * This library is free for commercial and non-commercial use as long as | 9 * This library is free for commercial and non-commercial use as long as |
10 * the following conditions are aheared to. The following conditions | 10 * the following conditions are aheared to. The following conditions |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 * -outform arg - output format - default PEM | 75 * -outform arg - output format - default PEM |
76 * -in arg - input file - default stdin | 76 * -in arg - input file - default stdin |
77 * -out arg - output file - default stdout | 77 * -out arg - output file - default stdout |
78 * -print_certs | 78 * -print_certs |
79 */ | 79 */ |
80 | 80 |
81 int MAIN(int, char **); | 81 int MAIN(int, char **); |
82 | 82 |
83 int MAIN(int argc, char **argv) | 83 int MAIN(int argc, char **argv) |
84 { | 84 { |
85 #ifndef OPENSSL_NO_ENGINE | |
86 ENGINE *e = NULL; | |
87 #endif | |
88 PKCS7 *p7=NULL; | 85 PKCS7 *p7=NULL; |
89 int i,badops=0; | 86 int i,badops=0; |
90 BIO *in=NULL,*out=NULL; | 87 BIO *in=NULL,*out=NULL; |
91 int informat,outformat; | 88 int informat,outformat; |
92 char *infile,*outfile,*prog; | 89 char *infile,*outfile,*prog; |
93 » int print_certs=0,text=0,noout=0; | 90 » int print_certs=0,text=0,noout=0,p7_print=0; |
94 int ret=1; | 91 int ret=1; |
95 #ifndef OPENSSL_NO_ENGINE | 92 #ifndef OPENSSL_NO_ENGINE |
96 char *engine=NULL; | 93 char *engine=NULL; |
97 #endif | 94 #endif |
98 | 95 |
99 apps_startup(); | 96 apps_startup(); |
100 | 97 |
101 if (bio_err == NULL) | 98 if (bio_err == NULL) |
102 if ((bio_err=BIO_new(BIO_s_file())) != NULL) | 99 if ((bio_err=BIO_new(BIO_s_file())) != NULL) |
103 BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT); | 100 BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT); |
(...skipping 28 matching lines...) Expand all Loading... |
132 } | 129 } |
133 else if (strcmp(*argv,"-out") == 0) | 130 else if (strcmp(*argv,"-out") == 0) |
134 { | 131 { |
135 if (--argc < 1) goto bad; | 132 if (--argc < 1) goto bad; |
136 outfile= *(++argv); | 133 outfile= *(++argv); |
137 } | 134 } |
138 else if (strcmp(*argv,"-noout") == 0) | 135 else if (strcmp(*argv,"-noout") == 0) |
139 noout=1; | 136 noout=1; |
140 else if (strcmp(*argv,"-text") == 0) | 137 else if (strcmp(*argv,"-text") == 0) |
141 text=1; | 138 text=1; |
| 139 else if (strcmp(*argv,"-print") == 0) |
| 140 p7_print=1; |
142 else if (strcmp(*argv,"-print_certs") == 0) | 141 else if (strcmp(*argv,"-print_certs") == 0) |
143 print_certs=1; | 142 print_certs=1; |
144 #ifndef OPENSSL_NO_ENGINE | 143 #ifndef OPENSSL_NO_ENGINE |
145 else if (strcmp(*argv,"-engine") == 0) | 144 else if (strcmp(*argv,"-engine") == 0) |
146 { | 145 { |
147 if (--argc < 1) goto bad; | 146 if (--argc < 1) goto bad; |
148 engine= *(++argv); | 147 engine= *(++argv); |
149 } | 148 } |
150 #endif | 149 #endif |
151 else | 150 else |
(...skipping 21 matching lines...) Expand all Loading... |
173 #ifndef OPENSSL_NO_ENGINE | 172 #ifndef OPENSSL_NO_ENGINE |
174 BIO_printf(bio_err," -engine e use engine e, possibly a hard
ware device.\n"); | 173 BIO_printf(bio_err," -engine e use engine e, possibly a hard
ware device.\n"); |
175 #endif | 174 #endif |
176 ret = 1; | 175 ret = 1; |
177 goto end; | 176 goto end; |
178 } | 177 } |
179 | 178 |
180 ERR_load_crypto_strings(); | 179 ERR_load_crypto_strings(); |
181 | 180 |
182 #ifndef OPENSSL_NO_ENGINE | 181 #ifndef OPENSSL_NO_ENGINE |
183 e = setup_engine(bio_err, engine, 0); | 182 setup_engine(bio_err, engine, 0); |
184 #endif | 183 #endif |
185 | 184 |
186 in=BIO_new(BIO_s_file()); | 185 in=BIO_new(BIO_s_file()); |
187 out=BIO_new(BIO_s_file()); | 186 out=BIO_new(BIO_s_file()); |
188 if ((in == NULL) || (out == NULL)) | 187 if ((in == NULL) || (out == NULL)) |
189 { | 188 { |
190 ERR_print_errors(bio_err); | 189 ERR_print_errors(bio_err); |
191 goto end; | 190 goto end; |
192 } | 191 } |
193 | 192 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 } | 230 } |
232 else | 231 else |
233 { | 232 { |
234 if (BIO_write_filename(out,outfile) <= 0) | 233 if (BIO_write_filename(out,outfile) <= 0) |
235 { | 234 { |
236 perror(outfile); | 235 perror(outfile); |
237 goto end; | 236 goto end; |
238 } | 237 } |
239 } | 238 } |
240 | 239 |
| 240 if (p7_print) |
| 241 PKCS7_print_ctx(out, p7, 0, NULL); |
| 242 |
241 if (print_certs) | 243 if (print_certs) |
242 { | 244 { |
243 STACK_OF(X509) *certs=NULL; | 245 STACK_OF(X509) *certs=NULL; |
244 STACK_OF(X509_CRL) *crls=NULL; | 246 STACK_OF(X509_CRL) *crls=NULL; |
245 | 247 |
246 i=OBJ_obj2nid(p7->type); | 248 i=OBJ_obj2nid(p7->type); |
247 switch (i) | 249 switch (i) |
248 { | 250 { |
249 case NID_pkcs7_signed: | 251 case NID_pkcs7_signed: |
250 certs=p7->d.sign->cert; | 252 certs=p7->d.sign->cert; |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 } | 311 } |
310 } | 312 } |
311 ret=0; | 313 ret=0; |
312 end: | 314 end: |
313 if (p7 != NULL) PKCS7_free(p7); | 315 if (p7 != NULL) PKCS7_free(p7); |
314 if (in != NULL) BIO_free(in); | 316 if (in != NULL) BIO_free(in); |
315 if (out != NULL) BIO_free_all(out); | 317 if (out != NULL) BIO_free_all(out); |
316 apps_shutdown(); | 318 apps_shutdown(); |
317 OPENSSL_EXIT(ret); | 319 OPENSSL_EXIT(ret); |
318 } | 320 } |
OLD | NEW |