projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
aesv8-armx.pl: fix typo.
[openssl.git]
/
apps
/
smime.c
diff --git
a/apps/smime.c
b/apps/smime.c
index d12fb13bbdac874e5c976096700049b3df68adba..c583f8a0e16205bbf5b2bf56560aaafacfe0477e 100644
(file)
--- a/
apps/smime.c
+++ b/
apps/smime.c
@@
-1,5
+1,5
@@
/* smime.c */
/* smime.c */
-/* Written by Dr Stephen N Henson (s
henson@bigfoot.com
) for the OpenSSL
+/* Written by Dr Stephen N Henson (s
teve@openssl.org
) for the OpenSSL
* project.
*/
/* ====================================================================
* project.
*/
/* ====================================================================
@@
-93,7
+93,7
@@
int MAIN(int argc, char **argv)
const char *inmode = "r", *outmode = "w";
char *infile = NULL, *outfile = NULL;
char *signerfile = NULL, *recipfile = NULL;
const char *inmode = "r", *outmode = "w";
char *infile = NULL, *outfile = NULL;
char *signerfile = NULL, *recipfile = NULL;
- STACK *sksigners = NULL, *skkeys = NULL;
+ STACK
_OF(OPENSSL_STRING)
*sksigners = NULL, *skkeys = NULL;
char *certfile = NULL, *keyfile = NULL, *contfile=NULL;
const EVP_CIPHER *cipher = NULL;
PKCS7 *p7 = NULL;
char *certfile = NULL, *keyfile = NULL, *contfile=NULL;
const EVP_CIPHER *cipher = NULL;
PKCS7 *p7 = NULL;
@@
-153,6
+153,10
@@
int MAIN(int argc, char **argv)
else if (!strcmp (*args, "-des"))
cipher = EVP_des_cbc();
#endif
else if (!strcmp (*args, "-des"))
cipher = EVP_des_cbc();
#endif
+#ifndef OPENSSL_NO_SEED
+ else if (!strcmp (*args, "-seed"))
+ cipher = EVP_seed_cbc();
+#endif
#ifndef OPENSSL_NO_RC2
else if (!strcmp (*args, "-rc2-40"))
cipher = EVP_rc2_40_cbc();
#ifndef OPENSSL_NO_RC2
else if (!strcmp (*args, "-rc2-40"))
cipher = EVP_rc2_40_cbc();
@@
-256,13
+260,13
@@
int MAIN(int argc, char **argv)
if (signerfile)
{
if (!sksigners)
if (signerfile)
{
if (!sksigners)
- sksigners = sk_new_null();
- sk_push(sksigners, signerfile);
+ sksigners = sk_
OPENSSL_STRING_
new_null();
+ sk_
OPENSSL_STRING_
push(sksigners, signerfile);
if (!keyfile)
keyfile = signerfile;
if (!skkeys)
if (!keyfile)
keyfile = signerfile;
if (!skkeys)
- skkeys = sk_new_null();
- sk_push(skkeys, keyfile);
+ skkeys = sk_
OPENSSL_STRING_
new_null();
+ sk_
OPENSSL_STRING_
push(skkeys, keyfile);
keyfile = NULL;
}
signerfile = *++args;
keyfile = NULL;
}
signerfile = *++args;
@@
-298,12
+302,12
@@
int MAIN(int argc, char **argv)
goto argerr;
}
if (!sksigners)
goto argerr;
}
if (!sksigners)
- sksigners = sk_new_null();
- sk_push(sksigners, signerfile);
+ sksigners = sk_
OPENSSL_STRING_
new_null();
+ sk_
OPENSSL_STRING_
push(sksigners, signerfile);
signerfile = NULL;
if (!skkeys)
signerfile = NULL;
if (!skkeys)
- skkeys = sk_new_null();
- sk_push(skkeys, keyfile);
+ skkeys = sk_
OPENSSL_STRING_
new_null();
+ sk_
OPENSSL_STRING_
push(skkeys, keyfile);
}
keyfile = *++args;
}
}
keyfile = *++args;
}
@@
-385,13
+389,13
@@
int MAIN(int argc, char **argv)
if (signerfile)
{
if (!sksigners)
if (signerfile)
{
if (!sksigners)
- sksigners = sk_new_null();
- sk_push(sksigners, signerfile);
+ sksigners = sk_
OPENSSL_STRING_
new_null();
+ sk_
OPENSSL_STRING_
push(sksigners, signerfile);
if (!skkeys)
if (!skkeys)
- skkeys = sk_new_null();
+ skkeys = sk_
OPENSSL_STRING_
new_null();
if (!keyfile)
keyfile = signerfile;
if (!keyfile)
keyfile = signerfile;
- sk_push(skkeys, keyfile);
+ sk_
OPENSSL_STRING_
push(skkeys, keyfile);
}
if (!sksigners)
{
}
if (!sksigners)
{
@@
-436,6
+440,9
@@
int MAIN(int argc, char **argv)
BIO_printf (bio_err, "-des3 encrypt with triple DES\n");
BIO_printf (bio_err, "-des encrypt with DES\n");
#endif
BIO_printf (bio_err, "-des3 encrypt with triple DES\n");
BIO_printf (bio_err, "-des encrypt with DES\n");
#endif
+#ifndef OPENSSL_NO_SEED
+ BIO_printf (bio_err, "-seed encrypt with SEED\n");
+#endif
#ifndef OPENSSL_NO_RC2
BIO_printf (bio_err, "-rc2-40 encrypt with RC2-40 (default)\n");
BIO_printf (bio_err, "-rc2-64 encrypt with RC2-64\n");
#ifndef OPENSSL_NO_RC2
BIO_printf (bio_err, "-rc2-40 encrypt with RC2-40 (default)\n");
BIO_printf (bio_err, "-rc2-64 encrypt with RC2-64\n");
@@
-664,7
+671,7
@@
int MAIN(int argc, char **argv)
{
if (!(store = setup_verify(bio_err, CAfile, CApath)))
goto end;
{
if (!(store = setup_verify(bio_err, CAfile, CApath)))
goto end;
- X509_STORE_set_verify_cb
_func
(store, smime_cb);
+ X509_STORE_set_verify_cb(store, smime_cb);
if (vpm)
X509_STORE_set1_param(store, vpm);
}
if (vpm)
X509_STORE_set1_param(store, vpm);
}
@@
-681,22
+688,29
@@
int MAIN(int argc, char **argv)
else if (operation & SMIME_SIGNERS)
{
int i;
else if (operation & SMIME_SIGNERS)
{
int i;
- /* If detached data
and SMIME output enable partial
- *
signing
.
+ /* If detached data
content we only enable streaming if
+ *
S/MIME output format
.
*/
if (operation == SMIME_SIGN)
{
*/
if (operation == SMIME_SIGN)
{
- if (indef || (flags & PKCS7_DETACHED))
+ if (flags & PKCS7_DETACHED)
+ {
+ if (outformat == FORMAT_SMIME)
+ flags |= PKCS7_STREAM;
+ }
+ else if (indef)
flags |= PKCS7_STREAM;
flags |= PKCS7_PARTIAL;
p7 = PKCS7_sign(NULL, NULL, other, in, flags);
flags |= PKCS7_STREAM;
flags |= PKCS7_PARTIAL;
p7 = PKCS7_sign(NULL, NULL, other, in, flags);
+ if (!p7)
+ goto end;
}
else
flags |= PKCS7_REUSE_DIGEST;
}
else
flags |= PKCS7_REUSE_DIGEST;
- for (i = 0; i < sk_num(sksigners); i++)
+ for (i = 0; i < sk_
OPENSSL_STRING_
num(sksigners); i++)
{
{
- signerfile = sk_value(sksigners, i);
- keyfile = sk_value(skkeys, i);
+ signerfile = sk_
OPENSSL_STRING_
value(sksigners, i);
+ keyfile = sk_
OPENSSL_STRING_
value(skkeys, i);
signer = load_cert(bio_err, signerfile,FORMAT_PEM, NULL,
e, "signer certificate");
if (!signer)
signer = load_cert(bio_err, signerfile,FORMAT_PEM, NULL,
e, "signer certificate");
if (!signer)
@@
-793,9
+807,9
@@
end:
if (vpm)
X509_VERIFY_PARAM_free(vpm);
if (sksigners)
if (vpm)
X509_VERIFY_PARAM_free(vpm);
if (sksigners)
- sk_free(sksigners);
+ sk_
OPENSSL_STRING_
free(sksigners);
if (skkeys)
if (skkeys)
- sk_free(skkeys);
+ sk_
OPENSSL_STRING_
free(skkeys);
X509_STORE_free(store);
X509_free(cert);
X509_free(recip);
X509_STORE_free(store);
X509_free(cert);
X509_free(recip);