diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2017-09-05 13:44:30 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2017-09-05 13:44:30 +0900 |
commit | b25179fbeebf9128c39e2875645be39daebf6113 (patch) | |
tree | 29d720bfce5631e3dcf5e71d360301f6a4392448 | |
parent | 4fc17977350ae7aff3649ee2b79be400e5ecca2b (diff) | |
download | ruby-openssl-b25179fbeebf9128c39e2875645be39daebf6113.tar.gz |
test/test_asn1: fix possible failure in test_utctime
OpenSSL function ASN1_TIME_adj() internally uses gmtime() to convert
time_t into struct tm. Not all platforms handle negative time_t value.
Reference: https://github.com/ruby/ruby/commit/609103dbb5fb182eec12f052226c43e39b907682#commitcomment-24056418
-rw-r--r-- | test/test_asn1.rb | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/test/test_asn1.rb b/test/test_asn1.rb index 3e7f8c13..11707037 100644 --- a/test/test_asn1.rb +++ b/test/test_asn1.rb @@ -379,11 +379,16 @@ class OpenSSL::TestASN1 < OpenSSL::TestCase def test_utctime encode_decode_test B(%w{ 17 0D }) + "160908234339Z".b, OpenSSL::ASN1::UTCTime.new(Time.utc(2016, 9, 8, 23, 43, 39)) - # possible range of UTCTime is 1969-2068 currently - encode_decode_test B(%w{ 17 0D }) + "690908234339Z".b, - OpenSSL::ASN1::UTCTime.new(Time.utc(1969, 9, 8, 23, 43, 39)) - decode_test B(%w{ 17 0B }) + "6909082343Z".b, - OpenSSL::ASN1::UTCTime.new(Time.utc(1969, 9, 8, 23, 43, 0)) + # Seconds is omitted + decode_test B(%w{ 17 0B }) + "1609082343Z".b, + OpenSSL::ASN1::UTCTime.new(Time.utc(2016, 9, 8, 23, 43, 0)) + begin + # possible range of UTCTime is 1969-2068 currently + encode_decode_test B(%w{ 17 0D }) + "690908234339Z".b, + OpenSSL::ASN1::UTCTime.new(Time.utc(1969, 9, 8, 23, 43, 39)) + rescue OpenSSL::ASN1::ASN1Error + pend "No negative time_t support?" + end # not implemented # decode_test B(%w{ 17 11 }) + "500908234339+0930".b, # OpenSSL::ASN1::UTCTime.new(Time.new(1950, 9, 8, 23, 43, 39, "+09:30")) |