Allow --no-signer to work
This commit is contained in:
@@ -327,7 +327,7 @@ cms_create_sd(struct cms_create_sd_options *opt, int argc, char **argv)
|
|||||||
heim_octet_string o;
|
heim_octet_string o;
|
||||||
hx509_query *q;
|
hx509_query *q;
|
||||||
hx509_lock lock;
|
hx509_lock lock;
|
||||||
hx509_certs store, pool, anchors, signer;
|
hx509_certs store, pool, anchors, signer = NULL;
|
||||||
size_t sz;
|
size_t sz;
|
||||||
void *p;
|
void *p;
|
||||||
int ret, flags = 0;
|
int ret, flags = 0;
|
||||||
@@ -365,20 +365,22 @@ cms_create_sd(struct cms_create_sd_options *opt, int argc, char **argv)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = hx509_query_alloc(context, &q);
|
if (opt->signer_flag) {
|
||||||
if (ret)
|
ret = hx509_query_alloc(context, &q);
|
||||||
errx(1, "hx509_query_alloc: %d", ret);
|
if (ret)
|
||||||
|
errx(1, "hx509_query_alloc: %d", ret);
|
||||||
|
|
||||||
hx509_query_match_option(q, HX509_QUERY_OPTION_PRIVATE_KEY);
|
hx509_query_match_option(q, HX509_QUERY_OPTION_PRIVATE_KEY);
|
||||||
hx509_query_match_option(q, HX509_QUERY_OPTION_KU_DIGITALSIGNATURE);
|
hx509_query_match_option(q, HX509_QUERY_OPTION_KU_DIGITALSIGNATURE);
|
||||||
|
|
||||||
if (opt->signer_string)
|
if (opt->signer_string)
|
||||||
hx509_query_match_friendly_name(q, opt->signer_string);
|
hx509_query_match_friendly_name(q, opt->signer_string);
|
||||||
|
|
||||||
ret = hx509_certs_filter(context, store, q, &signer);
|
ret = hx509_certs_filter(context, store, q, &signer);
|
||||||
hx509_query_free(context, q);
|
hx509_query_free(context, q);
|
||||||
if (ret)
|
if (ret)
|
||||||
hx509_err(context, 1, ret, "hx509_certs_find");
|
hx509_err(context, 1, ret, "hx509_certs_find");
|
||||||
|
}
|
||||||
|
|
||||||
ret = rk_undumpdata(argv[0], &p, &sz);
|
ret = rk_undumpdata(argv[0], &p, &sz);
|
||||||
if (ret)
|
if (ret)
|
||||||
@@ -429,9 +431,11 @@ cms_create_sd(struct cms_create_sd_options *opt, int argc, char **argv)
|
|||||||
hx509_pem_add_header(&header, "Content-disposition",
|
hx509_pem_add_header(&header, "Content-disposition",
|
||||||
opt->detached_signature_flag ?
|
opt->detached_signature_flag ?
|
||||||
"detached" : "inline");
|
"detached" : "inline");
|
||||||
ret = hx509_certs_iter(context, signer, print_signer, header);
|
if (signer) {
|
||||||
if (ret)
|
ret = hx509_certs_iter(context, signer, print_signer, header);
|
||||||
hx509_err(context, 1, ret, "print signer");
|
if (ret)
|
||||||
|
hx509_err(context, 1, ret, "print signer");
|
||||||
|
}
|
||||||
|
|
||||||
f = fopen(argv[1], "w");
|
f = fopen(argv[1], "w");
|
||||||
if (f == NULL)
|
if (f == NULL)
|
||||||
|
|||||||
Reference in New Issue
Block a user