[前][次][番号順一覧][スレッド一覧]

ruby-changes:65543

From: Nobuyoshi <ko1@a...>
Date: Tue, 16 Mar 2021 20:39:23 +0900 (JST)
Subject: [ruby-changes:65543] 1ad2224773 (master): [ruby/openssl] Fixed the results of OpenSSL::Timestamp::Response#failure_info

https://git.ruby-lang.org/ruby.git/commit/?id=1ad2224773

From 1ad222477344597038d7ec08885a41f547c2a3b4 Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Sun, 14 Feb 2021 18:16:06 +0900
Subject: [ruby/openssl] Fixed the results of
 OpenSSL::Timestamp::Response#failure_info

Made stored values `Symbol`s instead of `ID`s.

Fixes https://bugs.ruby-lang.org/issues/17625

Co-Authored-By: xtkoba (Tee KOBAYASHI) <xtkoba+ruby@g...>

https://github.com/ruby/openssl/commit/f2d004679a
---
 ext/openssl/ossl_ts.c   | 22 +++++++++++-----------
 test/openssl/test_ts.rb |  5 +++++
 2 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/ext/openssl/ossl_ts.c b/ext/openssl/ossl_ts.c
index 752c61c..9450e43 100644
--- a/ext/openssl/ossl_ts.c
+++ b/ext/openssl/ossl_ts.c
@@ -68,9 +68,9 @@ static VALUE cTimestampRequest; https://github.com/ruby/ruby/blob/trunk/ext/openssl/ossl_ts.c#L68
 static VALUE cTimestampResponse;
 static VALUE cTimestampTokenInfo;
 static VALUE cTimestampFactory;
-static ID sBAD_ALG, sBAD_REQUEST, sBAD_DATA_FORMAT, sTIME_NOT_AVAILABLE;
-static ID sUNACCEPTED_POLICY, sUNACCEPTED_EXTENSION, sADD_INFO_NOT_AVAILABLE;
-static ID sSYSTEM_FAILURE;
+static VALUE sBAD_ALG, sBAD_REQUEST, sBAD_DATA_FORMAT, sTIME_NOT_AVAILABLE;
+static VALUE sUNACCEPTED_POLICY, sUNACCEPTED_EXTENSION, sADD_INFO_NOT_AVAILABLE;
+static VALUE sSYSTEM_FAILURE;
 
 static void
 ossl_ts_req_free(void *ptr)
@@ -1247,24 +1247,24 @@ Init_ossl_ts(void) https://github.com/ruby/ruby/blob/trunk/ext/openssl/ossl_ts.c#L1247
      * timestamp server rejects the message imprint algorithm used in the
      * +Request+
      */
-    sBAD_ALG = rb_intern_const("BAD_ALG");
+    sBAD_ALG = ID2SYM(rb_intern_const("BAD_ALG"));
 
     /*
      * Possible return value for +Response#failure_info+. Indicates that the
      * timestamp server was not able to process the +Request+ properly.
      */
-    sBAD_REQUEST = rb_intern_const("BAD_REQUEST");
+    sBAD_REQUEST = ID2SYM(rb_intern_const("BAD_REQUEST"));
     /*
      * Possible return value for +Response#failure_info+. Indicates that the
      * timestamp server was not able to parse certain data in the +Request+.
      */
-    sBAD_DATA_FORMAT = rb_intern_const("BAD_DATA_FORMAT");
+    sBAD_DATA_FORMAT = ID2SYM(rb_intern_const("BAD_DATA_FORMAT"));
 
-    sTIME_NOT_AVAILABLE = rb_intern_const("TIME_NOT_AVAILABLE");
-    sUNACCEPTED_POLICY = rb_intern_const("UNACCEPTED_POLICY");
-    sUNACCEPTED_EXTENSION = rb_intern_const("UNACCEPTED_EXTENSION");
-    sADD_INFO_NOT_AVAILABLE = rb_intern_const("ADD_INFO_NOT_AVAILABLE");
-    sSYSTEM_FAILURE = rb_intern_const("SYSTEM_FAILURE");
+    sTIME_NOT_AVAILABLE = ID2SYM(rb_intern_const("TIME_NOT_AVAILABLE"));
+    sUNACCEPTED_POLICY = ID2SYM(rb_intern_const("UNACCEPTED_POLICY"));
+    sUNACCEPTED_EXTENSION = ID2SYM(rb_intern_const("UNACCEPTED_EXTENSION"));
+    sADD_INFO_NOT_AVAILABLE = ID2SYM(rb_intern_const("ADD_INFO_NOT_AVAILABLE"));
+    sSYSTEM_FAILURE = ID2SYM(rb_intern_const("SYSTEM_FAILURE"));
 
     /* Document-class: OpenSSL::Timestamp
      * Provides classes and methods to request, create and validate
diff --git a/test/openssl/test_ts.rb b/test/openssl/test_ts.rb
index d39f3d3..5c2d43e 100644
--- a/test/openssl/test_ts.rb
+++ b/test/openssl/test_ts.rb
@@ -222,6 +222,11 @@ _end_of_pem_ https://github.com/ruby/ruby/blob/trunk/test/openssl/test_ts.rb#L222
     assert_equal(token.to_der, resp.token.to_der)
   end
 
+  def test_response_failure_info
+    resp = OpenSSL::Timestamp::Response.new("0\"0 \x02\x01\x020\x17\f\x15Invalid TimeStampReq.\x03\x02\x06\x80")
+    assert_equal(:BAD_ALG, resp.failure_info)
+  end
+
   def test_response_mandatory_fields
     fac = OpenSSL::Timestamp::Factory.new
     req = OpenSSL::Timestamp::Request.new
-- 
cgit v1.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]