Project

General

Profile

Actions

Bug #8664

closed

open ssl not_before failure on small set of certificates

Added by jnickel (Jody Nickel) over 10 years ago. Updated over 10 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]
[ruby-core:56108]

Description

This failure only occurs on a very small percentage of certificates, during processing of ~2 million certificates, this failure only occurred 3 times. It happens on ruby-1.9.3-p448, ruby-1.8.7-p374 and ruby-2.0.0-p247 with the same error reported:

open-ssl-bug.rb:71:in not_before': bad UTCTIME format (TypeError) from open-ssl-bug.rb:71:in perform_cert'
from open-ssl-bug.rb:76:in `'

I've enclosed a small sample program showing a successful and failed display of the not_before time, with the good and bad certificates embedded within the code.


Files

open-ssl-bug.rb (3.69 KB) open-ssl-bug.rb jnickel (Jody Nickel), 07/23/2013 01:59 AM
openssl.bug_8664.patch (1.61 KB) openssl.bug_8664.patch drbrain (Eric Hodel), 07/23/2013 08:29 AM

Updated by drbrain (Eric Hodel) over 10 years ago

  • Category set to ext/openssl
  • Status changed from Open to Assigned
  • Assignee set to MartinBosslet (Martin Bosslet)

Updated by drbrain (Eric Hodel) over 10 years ago

It seems that there are multiple ways to represent a UTCTime in ASN1, but ruby's openssl extension only implements one of them.

This patch adds the format your certificate is encoded in.

Martin, can you check it? Are there other formats that are missing?

Updated by MartinBosslet (Martin Bosslet) over 10 years ago

  • Assignee changed from MartinBosslet (Martin Bosslet) to drbrain (Eric Hodel)

Unfortunately, when encoded as BER, all bets are off, as the format (with or without time zone, string representations of the time zone, ...) is not clearly specified anymore. But in this particular case I believe it makes a lot of sense to add explicit support. Please, Eric, go ahead and commit your patch! And thanks, BTW :)

Actions #4

Updated by drbrain (Eric Hodel) over 10 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r42126.
Jody, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


  • ext/openssl/ossl_asn1.c (asn1time_to_time): Implement YYMMDDhhmmZ
    format for ASN.1 UTCTime. [ruby-trunk - Bug #8664]
  • test/openssl/test_asn1.rb: Test for the above.

Updated by drbrain (Eric Hodel) over 10 years ago

  • Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN to 1.9.3: REQUIRED, 2.0.0: REQUIRED

Updated by nagachika (Tomoyuki Chikanaga) over 10 years ago

  • Backport changed from 1.9.3: REQUIRED, 2.0.0: REQUIRED to 1.9.3: REQUIRED, 2.0.0: DONE

Backported to ruby_2_0_0 at r42215.

Updated by usa (Usaku NAKAMURA) over 10 years ago

  • Backport changed from 1.9.3: REQUIRED, 2.0.0: DONE to 1.9.3: DONE, 2.0.0: DONE

Backported to ruby_1_9_3 at r42328.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0