return;
}
-static int append_buf(char **buf, char *s, int *size, int step)
+static int append_buf(char **buf, const char *s, int *size, int step)
{
int l = strlen(s);
{
int cap_size = 256;
char *cap_buf = NULL;
+ int k,n;
+ const int *nids;
+ ENGINE_CIPHERS_PTR fn;
if (ENGINE_get_RSA(e) != NULL
&& !append_buf(&cap_buf, "RSA",
&cap_size, 256))
goto end;
+ fn = ENGINE_get_ciphers(e);
+ if(!fn) goto skip_ciphers;
+ n = fn(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_ciphers:
if (cap_buf && (*cap_buf != '\0'))
BIO_printf(bio_out, " [%s]", cap_buf);
sk_pop_free(pre_cmds, identity);
sk_pop_free(post_cmds, identity);
if (bio_out != NULL) BIO_free_all(bio_out);
+ apps_shutdown();
EXIT(ret);
}