summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Stradling <rob@comodo.com>2014-02-25 10:14:51 +0000
committerRob Stradling <rob@comodo.com>2014-02-25 10:14:51 +0000
commit19f65ddbab30543415584ae7916e12a3c5249dba (patch)
tree761899d8e5732d544087415bfe92264d9e9632a1
parent63aff3001ef6ba2ac376cd3f237fb0d0b3e77f30 (diff)
Parse non-v1 SCTs less awkwardly.
-rw-r--r--crypto/x509v3/v3_scts.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/crypto/x509v3/v3_scts.c b/crypto/x509v3/v3_scts.c
index 32548007d8..9c560ad483 100644
--- a/crypto/x509v3/v3_scts.c
+++ b/crypto/x509v3/v3_scts.c
@@ -141,9 +141,12 @@ static int i2r_scts(X509V3_EXT_METHOD *method, ASN1_OCTET_STRING *oct,
BIO_printf(out, "%*sSigned Certificate Timestamp:", indent,
"");
+ BIO_printf(out, "\n%*sVersion : ", indent + 4, "");
if (*data == 0) /* SCT v1 */
{
+ BIO_printf(out, "v1(0)");
+
/* Fixed-length header:
* struct {
* (1 byte) Version sct_version;
@@ -155,9 +158,6 @@ static int i2r_scts(X509V3_EXT_METHOD *method, ASN1_OCTET_STRING *oct,
return 0;
sctlen -= 43;
- BIO_printf(out, "\n%*sVersion : v1(0)", indent + 4,
- "");
-
BIO_printf(out, "\n%*sLog ID : ", indent + 4, "");
BIO_hex_string(out, indent + 16, 16, data + 1, 32);
@@ -195,9 +195,16 @@ static int i2r_scts(X509V3_EXT_METHOD *method, ASN1_OCTET_STRING *oct,
return 0;
BIO_printf(out, "\n%*s ", indent + 4, "");
BIO_hex_string(out, indent + 16, 16, data, fieldlen);
- if (listlen > 0) BIO_printf(out, "\n");
data += fieldlen;
}
+ else /* Unknown version */
+ {
+ BIO_printf(out, "unknown\n%*s", indent + 16, "");
+ BIO_hex_string(out, indent + 16, 16, data, sctlen);
+ data += sctlen;
+ }
+
+ if (listlen > 0) BIO_printf(out, "\n");
}
return 1;