From 25cebdabaf9fb4b048405f5f94394d4335590361 Mon Sep 17 00:00:00 2001 From: "Leon M. George" Date: Tue, 6 Dec 2016 19:44:12 +0100 Subject: asn1: handle GENERALIZEDTIME without seconds --- ext/openssl/ossl_asn1.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'ext/openssl/ossl_asn1.c') diff --git a/ext/openssl/ossl_asn1.c b/ext/openssl/ossl_asn1.c index af8ae2a6..7ef010d2 100644 --- a/ext/openssl/ossl_asn1.c +++ b/ext/openssl/ossl_asn1.c @@ -47,8 +47,13 @@ asn1time_to_time(const ASN1_TIME *time) } break; case V_ASN1_GENERALIZEDTIME: - if (sscanf((const char *)time->data, "%4d%2d%2d%2d%2d%2dZ", &tm.tm_year, &tm.tm_mon, - &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec) != 6) { + count = sscanf((const char *)time->data, "%4d%2d%2d%2d%2d%2dZ", + &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min, + &tm.tm_sec); + if (count == 5) { + tm.tm_sec = 0; + } + else if (count != 6) { ossl_raise(rb_eTypeError, "bad GENERALIZEDTIME format" ); } break; -- cgit v1.2.3