Fix typo [from HEAD].
[oweals/openssl.git] / apps / smime.c
index e719cddd4c3cb7f7b2df593e52ca14c273cb3fa3..250fd69a981b0a95913c39661c7e5394eb7bba1a 100644 (file)
@@ -87,7 +87,7 @@ int MAIN(int argc, char **argv)
        int operation = 0;
        int ret = 0;
        char **args;
-       char *inmode = "r", *outmode = "w";
+       const char *inmode = "r", *outmode = "w";
        char *infile = NULL, *outfile = NULL;
        char *signerfile = NULL, *recipfile = NULL;
        char *certfile = NULL, *keyfile = NULL, *contfile=NULL;
@@ -365,7 +365,7 @@ int MAIN(int argc, char **argv)
                        else
                                badarg = 1;
                        }
-               else if (args_verify(&args, &badarg, bio_err, &vpm))
+               else if (args_verify(&args, NULL, &badarg, bio_err, &vpm))
                        continue;
                else
                        badarg = 1;
@@ -384,9 +384,9 @@ int MAIN(int argc, char **argv)
                }
        else if (operation == SMIME_DECRYPT)
                {
-               if (!recipfile)
+               if (!recipfile && !keyfile)
                        {
-                       BIO_printf(bio_err, "No recipient certificate and key specified\n");
+                       BIO_printf(bio_err, "No recipient certificate or key specified\n");
                        badarg = 1;
                        }
                }
@@ -769,43 +769,10 @@ static int save_certs(char *signerfile, STACK_OF(X509) *signers)
        }
        
 
-static void nodes_print(BIO *out, char *name, STACK_OF(X509_POLICY_NODE) *nodes)
-       {
-       X509_POLICY_NODE *node;
-       int i;
-       BIO_printf(out, "%s Policies:", name);
-       if (nodes)
-               {
-               BIO_puts(out, "\n");
-               for (i = 0; i < sk_X509_POLICY_NODE_num(nodes); i++)
-                       {
-                       node = sk_X509_POLICY_NODE_value(nodes, i);
-                       X509_POLICY_NODE_print(out, node, 2);
-                       }
-               }
-       else
-               BIO_puts(out, " <empty>\n");
-       }
-
-static void policies_print(BIO *out, X509_STORE_CTX *ctx)
-       {
-       X509_POLICY_TREE *tree;
-       int explicit;
-       tree = X509_STORE_CTX_get0_policy_tree(ctx);
-       explicit = X509_STORE_CTX_get_explicit_policy(ctx);
-
-       BIO_printf(out, "Require explicit Policy: %s\n",
-                               explicit ? "True" : "False");
-
-       nodes_print(out, "Authority", X509_policy_tree_get0_policies(tree));
-       nodes_print(out, "User", X509_policy_tree_get0_user_policies(tree));
-       }
-
 /* Minimal callback just to output policy info (if any) */
 
 static int smime_cb(int ok, X509_STORE_CTX *ctx)
        {
-       BIO *out;
        int error;
 
        error = X509_STORE_CTX_get_error(ctx);
@@ -814,11 +781,7 @@ static int smime_cb(int ok, X509_STORE_CTX *ctx)
                && ((error != X509_V_OK) || (ok != 2)))
                return ok;
 
-       out = BIO_new_fp(stderr, BIO_NOCLOSE);
-
-       policies_print(out, ctx);
-
-       BIO_free(out);
+       policies_print(NULL, ctx);
 
        return ok;