diff options
author | Rob Stradling <rob@comodo.com> | 2014-02-25 10:14:51 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2014-02-25 13:04:21 +0000 |
commit | a948732e1c9ffdc92cb9f7b201966aba89dd4d20 (patch) | |
tree | c0ac6e0c5e6598b1cd97174aa0b4b511caab0c01 /crypto/x509v3/v3_scts.c | |
parent | c3006e0f5aaac2c1b14f4eeb71e3d932c845dd66 (diff) |
Parse non-v1 SCTs less awkwardly.
(cherry picked from commit 19f65ddbab30543415584ae7916e12a3c5249dba)
Diffstat (limited to 'crypto/x509v3/v3_scts.c')
-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; |