diff options
author | Rob Stradling <rob@comodo.com> | 2014-02-25 10:14:51 +0000 |
---|---|---|
committer | Rob Stradling <rob@comodo.com> | 2014-02-25 10:14:51 +0000 |
commit | 19f65ddbab30543415584ae7916e12a3c5249dba (patch) | |
tree | 761899d8e5732d544087415bfe92264d9e9632a1 /crypto/x509v3 | |
parent | 63aff3001ef6ba2ac376cd3f237fb0d0b3e77f30 (diff) | |
download | openssl-19f65ddbab30543415584ae7916e12a3c5249dba.tar.gz |
Parse non-v1 SCTs less awkwardly.
Diffstat (limited to 'crypto/x509v3')
-rw-r--r-- | crypto/x509v3/v3_scts.c | 15 |
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; |