summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Josefsson <simon@josefsson.org>2004-08-22 13:54:09 +0000
committerSimon Josefsson <simon@josefsson.org>2004-08-22 13:54:09 +0000
commit0891fa9d33db78c8bf635a37730fcda4fcd45e96 (patch)
tree6adcadca6b2a19166e6d7ac710eaf2eb24240117
parent26b78cc56e96bacc2f3ca246a0ba862da0eced5f (diff)
downloadgnutls-0891fa9d33db78c8bf635a37730fcda4fcd45e96.tar.gz
(print_certificate_info): Don't crash on large X.509 extensions
(thanks to PKITS test suite). Also output ASCII representation of printable extension data (some extension contain humanly readable strings).
-rw-r--r--src/certtool.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/certtool.c b/src/certtool.c
index 8d312af799..d95f425df5 100644
--- a/src/certtool.c
+++ b/src/certtool.c
@@ -28,6 +28,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <ctype.h>
#include <gnutls/x509.h>
#include <time.h>
#include "certtool-gaa.h"
@@ -1229,13 +1230,19 @@ static void print_certificate_info(gnutls_x509_crt crt, FILE * out,
else
fprintf(out, "\n");
- print = printable;
+ fprintf(out, "\t\tDER Data: ");
for (j = 0; j < size; j++) {
- sprintf(print, "%.2x", (unsigned char) buffer[j]);
- print += 2;
+ fprintf(out, "%.2x", (unsigned char) buffer[j]);
}
- fprintf(out, "\t\tDER Data: %s\n", printable);
-
+ fprintf(out, "\n");
+ fprintf(out, "\t\tASCII: ");
+ for (j = 0; j < size; j++) {
+ if (isprint (buffer[j]))
+ fprintf(out, "%c", (unsigned char) buffer[j]);
+ else
+ fprintf(out, ".");
+ }
+ fprintf(out, "\n");
}
ret = 0;