summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2017-07-27 07:10:22 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2017-08-04 09:38:27 +0200
commit41ef006dddad5c09a8a645ae8713631f02b799e5 (patch)
tree9e803cb8f61bef001474ed4e9fa8bfaf91f454df
parent76c60b70d3904db31e6c4ae980c7f704a10500a5 (diff)
downloadgnutls-41ef006dddad5c09a8a645ae8713631f02b799e5.tar.gz
certtool: print signature algorithm in cert verification output
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-rw-r--r--src/certtool.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/certtool.c b/src/certtool.c
index 4e4f3277f3..3cddc3dd6f 100644
--- a/src/certtool.c
+++ b/src/certtool.c
@@ -1988,6 +1988,23 @@ void generate_request(common_info_st * cinfo)
static void print_verification_res(FILE * outfile, unsigned int output);
+static const char *get_signature_algo(gnutls_x509_crt_t crt)
+{
+ int ret;
+ static char oid[128];
+
+ ret = gnutls_x509_crt_get_signature_algorithm(crt);
+ if (ret < 0 || ret == GNUTLS_SIGN_UNKNOWN) {
+ size_t oid_size = sizeof(oid);
+ ret = gnutls_x509_crt_get_signature_oid(crt, oid, &oid_size);
+ if (ret < 0)
+ return NULL;
+ return oid;
+ }
+
+ return gnutls_sign_get_name(ret);
+}
+
static int detailed_verification(gnutls_x509_crt_t cert,
gnutls_x509_crt_t issuer,
gnutls_x509_crl_t crl,
@@ -2036,6 +2053,8 @@ static int detailed_verification(gnutls_x509_crt_t cert,
fprintf(outfile, "\tChecked against: %s\n", issuer_name.data);
}
+ fprintf(outfile, "\tSignature algorithm: %s\n", get_signature_algo(cert));
+
if (crl != NULL) {
gnutls_datum_t data;
gnutls_free(issuer_name.data);