summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Baryshkov <dbaryshkov@gmail.com>2020-05-14 02:22:05 +0300
committerDmitry Baryshkov <dbaryshkov@gmail.com>2020-05-14 11:05:04 +0300
commit37cb916de5c8806b43bfbc859f27fe03624f297e (patch)
tree4ac5b8e99dfc0d2741497d675d7bdc6c66bd36f8
parenta0e5770f50462de82afaf7743a88c33414cb32dc (diff)
downloadgnutls-37cb916de5c8806b43bfbc859f27fe03624f297e.tar.gz
certtool: use gnutls_pkcs7_print_signature_info
Use new function to remove code duplication. Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
-rw-r--r--src/certtool.c88
1 files changed, 7 insertions, 81 deletions
diff --git a/src/certtool.c b/src/certtool.c
index b65359c27c..a46f774114 100644
--- a/src/certtool.c
+++ b/src/certtool.c
@@ -2624,94 +2624,20 @@ void verify_crl(common_info_st * cinfo)
app_exit(rc);
}
-static void print_dn(const char *prefix, const gnutls_datum_t *raw)
-{
- gnutls_x509_dn_t dn = NULL;
- gnutls_datum_t str = {NULL, 0};
- int ret;
-
- ret = gnutls_x509_dn_init(&dn);
- if (ret < 0)
- return;
-
- ret = gnutls_x509_dn_import(dn, raw);
- if (ret < 0)
- goto cleanup;
-
- ret = gnutls_x509_dn_get_str2(dn, &str, 0);
- if (ret < 0)
- goto cleanup;
-
- fprintf(outfile, "%s: %s\n", prefix, str.data);
-
- cleanup:
- gnutls_x509_dn_deinit(dn);
- gnutls_free(str.data);
-}
-
-static void print_raw(const char *prefix, const gnutls_datum_t *raw)
+static void print_pkcs7_sig_info(gnutls_pkcs7_signature_info_st *info, common_info_st *cinfo)
{
int ret;
- gnutls_datum_t tmp;
+ gnutls_datum_t str;
- if (raw->data == NULL || raw->size == 0)
- return;
-
- ret = gnutls_hex_encode2(raw, &tmp);
+ ret = gnutls_pkcs7_print_signature_info(info, GNUTLS_CRT_PRINT_COMPACT, &str);
if (ret < 0) {
- fprintf(stderr, "gnutls_hex_encode2: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "printing error: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
- fprintf(outfile, "%s: %s\n", prefix, tmp.data);
- gnutls_free(tmp.data);
-}
-
-static void print_pkcs7_sig_info(gnutls_pkcs7_signature_info_st *info, common_info_st *cinfo)
-{
- unsigned i;
- char *oid;
- gnutls_datum_t data;
- char prefix[128];
- int ret;
- char timebuf[SIMPLE_CTIME_BUF_SIZE];
-
- print_dn("\tSigner's issuer DN", &info->issuer_dn);
- print_raw("\tSigner's serial", &info->signer_serial);
- print_raw("\tSigner's issuer key ID", &info->issuer_keyid);
- if (info->signing_time != -1)
- fprintf(outfile, "\tSigning time: %s\n", simple_ctime(&info->signing_time, timebuf));
-
- fprintf(outfile, "\tSignature Algorithm: %s\n", gnutls_sign_get_name(info->algo));
-
- if (info->signed_attrs) {
- for (i=0;;i++) {
- ret = gnutls_pkcs7_get_attr(info->signed_attrs, i, &oid, &data, 0);
- if (ret < 0)
- break;
- if (i==0)
- fprintf(outfile, "\tSigned Attributes:\n");
-
- snprintf(prefix, sizeof(prefix), "\t\t%s", oid);
- print_raw(prefix, &data);
- gnutls_free(data.data);
- }
- }
- if (info->unsigned_attrs) {
- for (i=0;;i++) {
- ret = gnutls_pkcs7_get_attr(info->unsigned_attrs, i, &oid, &data, 0);
- if (ret < 0)
- break;
- if (i==0)
- fprintf(outfile, "\tUnsigned Attributes:\n");
-
- snprintf(prefix, sizeof(prefix), "\t\t%s", oid);
- print_raw(prefix, &data);
- gnutls_free(data.data);
- }
- }
- fprintf(outfile, "\n");
+ fprintf(outfile, "%s", str.data);
+ gnutls_free(str.data);
}
void verify_pkcs7(common_info_st * cinfo, const char *purpose, unsigned display_data)