| Index: openssl/apps/engine.c
|
| ===================================================================
|
| --- openssl/apps/engine.c (revision 105093)
|
| +++ openssl/apps/engine.c (working copy)
|
| @@ -92,7 +92,7 @@
|
| NULL
|
| };
|
|
|
| -static void identity(void *ptr)
|
| +static void identity(char *ptr)
|
| {
|
| return;
|
| }
|
| @@ -148,11 +148,6 @@
|
|
|
| if(flags & ENGINE_CMD_FLAG_NUMERIC)
|
| {
|
| - if(started)
|
| - {
|
| - BIO_printf(bio_out, "|");
|
| - err = 1;
|
| - }
|
| BIO_printf(bio_out, "NUMERIC");
|
| started = 1;
|
| }
|
| @@ -205,7 +200,7 @@
|
| char *desc = NULL;
|
| int flags;
|
| int xpos = 0;
|
| - STACK *cmds = NULL;
|
| + STACK_OF(OPENSSL_STRING) *cmds = NULL;
|
| if(!ENGINE_ctrl(e, ENGINE_CTRL_HAS_CTRL_FUNCTION, 0, NULL, NULL) ||
|
| ((num = ENGINE_ctrl(e, ENGINE_CTRL_GET_FIRST_CMD_TYPE,
|
| 0, NULL, NULL)) <= 0))
|
| @@ -216,7 +211,7 @@
|
| return 1;
|
| }
|
|
|
| - cmds = sk_new_null();
|
| + cmds = sk_OPENSSL_STRING_new_null();
|
|
|
| if(!cmds)
|
| goto err;
|
| @@ -289,15 +284,17 @@
|
| BIO_printf(bio_out, "\n");
|
| ret = 1;
|
| err:
|
| - if(cmds) sk_pop_free(cmds, identity);
|
| + if(cmds) sk_OPENSSL_STRING_pop_free(cmds, identity);
|
| if(name) OPENSSL_free(name);
|
| if(desc) OPENSSL_free(desc);
|
| return ret;
|
| }
|
|
|
| -static void util_do_cmds(ENGINE *e, STACK *cmds, BIO *bio_out, const char *indent)
|
| +static void util_do_cmds(ENGINE *e, STACK_OF(OPENSSL_STRING) *cmds,
|
| + BIO *bio_out, const char *indent)
|
| {
|
| - int loop, res, num = sk_num(cmds);
|
| + int loop, res, num = sk_OPENSSL_STRING_num(cmds);
|
| +
|
| if(num < 0)
|
| {
|
| BIO_printf(bio_out, "[Error]: internal stack error\n");
|
| @@ -307,7 +304,7 @@
|
| {
|
| char buf[256];
|
| const char *cmd, *arg;
|
| - cmd = sk_value(cmds, loop);
|
| + cmd = sk_OPENSSL_STRING_value(cmds, loop);
|
| res = 1; /* assume success */
|
| /* Check if this command has no ":arg" */
|
| if((arg = strstr(cmd, ":")) == NULL)
|
| @@ -347,9 +344,9 @@
|
| const char **pp;
|
| int verbose=0, list_cap=0, test_avail=0, test_avail_noise = 0;
|
| ENGINE *e;
|
| - STACK *engines = sk_new_null();
|
| - STACK *pre_cmds = sk_new_null();
|
| - STACK *post_cmds = sk_new_null();
|
| + STACK_OF(OPENSSL_STRING) *engines = sk_OPENSSL_STRING_new_null();
|
| + STACK_OF(OPENSSL_STRING) *pre_cmds = sk_OPENSSL_STRING_new_null();
|
| + STACK_OF(OPENSSL_STRING) *post_cmds = sk_OPENSSL_STRING_new_null();
|
| int badops=1;
|
| BIO *bio_out=NULL;
|
| const char *indent = " ";
|
| @@ -396,20 +393,20 @@
|
| argc--; argv++;
|
| if (argc == 0)
|
| goto skip_arg_loop;
|
| - sk_push(pre_cmds,*argv);
|
| + sk_OPENSSL_STRING_push(pre_cmds,*argv);
|
| }
|
| else if (strcmp(*argv,"-post") == 0)
|
| {
|
| argc--; argv++;
|
| if (argc == 0)
|
| goto skip_arg_loop;
|
| - sk_push(post_cmds,*argv);
|
| + sk_OPENSSL_STRING_push(post_cmds,*argv);
|
| }
|
| else if ((strncmp(*argv,"-h",2) == 0) ||
|
| (strcmp(*argv,"-?") == 0))
|
| goto skip_arg_loop;
|
| else
|
| - sk_push(engines,*argv);
|
| + sk_OPENSSL_STRING_push(engines,*argv);
|
| argc--;
|
| argv++;
|
| }
|
| @@ -424,17 +421,17 @@
|
| goto end;
|
| }
|
|
|
| - if (sk_num(engines) == 0)
|
| + if (sk_OPENSSL_STRING_num(engines) == 0)
|
| {
|
| for(e = ENGINE_get_first(); e != NULL; e = ENGINE_get_next(e))
|
| {
|
| - sk_push(engines,(char *)ENGINE_get_id(e));
|
| + sk_OPENSSL_STRING_push(engines,(char *)ENGINE_get_id(e));
|
| }
|
| }
|
|
|
| - for (i=0; i<sk_num(engines); i++)
|
| + for (i=0; i<sk_OPENSSL_STRING_num(engines); i++)
|
| {
|
| - const char *id = sk_value(engines,i);
|
| + const char *id = sk_OPENSSL_STRING_value(engines,i);
|
| if ((e = ENGINE_by_id(id)) != NULL)
|
| {
|
| const char *name = ENGINE_get_name(e);
|
| @@ -454,6 +451,7 @@
|
| const int *nids;
|
| ENGINE_CIPHERS_PTR fn_c;
|
| ENGINE_DIGESTS_PTR fn_d;
|
| + ENGINE_PKEY_METHS_PTR fn_pk;
|
|
|
| if (ENGINE_get_RSA(e) != NULL
|
| && !append_buf(&cap_buf, "RSA",
|
| @@ -492,6 +490,15 @@
|
| goto end;
|
|
|
| skip_digests:
|
| + fn_pk = ENGINE_get_pkey_meths(e);
|
| + if(!fn_pk) goto skip_pmeths;
|
| + n = fn_pk(e, NULL, &nids, 0);
|
| + for(k=0 ; k < n ; ++k)
|
| + if(!append_buf(&cap_buf,
|
| + OBJ_nid2sn(nids[k]),
|
| + &cap_size, 256))
|
| + goto end;
|
| +skip_pmeths:
|
| if (cap_buf && (*cap_buf != '\0'))
|
| BIO_printf(bio_out, " [%s]\n", cap_buf);
|
|
|
| @@ -526,9 +533,9 @@
|
| end:
|
|
|
| ERR_print_errors(bio_err);
|
| - sk_pop_free(engines, identity);
|
| - sk_pop_free(pre_cmds, identity);
|
| - sk_pop_free(post_cmds, identity);
|
| + sk_OPENSSL_STRING_pop_free(engines, identity);
|
| + sk_OPENSSL_STRING_pop_free(pre_cmds, identity);
|
| + sk_OPENSSL_STRING_pop_free(post_cmds, identity);
|
| if (bio_out != NULL) BIO_free_all(bio_out);
|
| apps_shutdown();
|
| OPENSSL_EXIT(ret);
|
|
|