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

ruby-changes:65548

From: Kazuki <ko1@a...>
Date: Tue, 16 Mar 2021 20:39:15 +0900 (JST)
Subject: [ruby-changes:65548] be3ba2ee4d (master): [ruby/openssl] x509stoRe: refactor X509::StoreContext#chain

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

From be3ba2ee4d4104a36a6dc2a15f16522454db33ae Mon Sep 17 00:00:00 2001
From: Kazuki Yamaguchi <k@r...>
Date: Sat, 8 Aug 2020 23:00:10 +0900
Subject: [ruby/openssl] x509store: refactor X509::StoreContext#chain

Use ossl_x509_sk2ary() to create an array of OpenSSL::X509::Certificate
from STACK_OF(X509).

https://github.com/ruby/openssl/commit/fa1da69f92
---
 ext/openssl/ossl_x509store.c | 23 +++++------------------
 1 file changed, 5 insertions(+), 18 deletions(-)

diff --git a/ext/openssl/ossl_x509store.c b/ext/openssl/ossl_x509store.c
index d29e6f5..5968148 100644
--- a/ext/openssl/ossl_x509store.c
+++ b/ext/openssl/ossl_x509store.c
@@ -574,26 +574,13 @@ static VALUE https://github.com/ruby/ruby/blob/trunk/ext/openssl/ossl_x509store.c#L574
 ossl_x509stctx_get_chain(VALUE self)
 {
     X509_STORE_CTX *ctx;
-    STACK_OF(X509) *chain;
-    X509 *x509;
-    int i, num;
-    VALUE ary;
+    const STACK_OF(X509) *chain;
 
     GetX509StCtx(self, ctx);
-    if((chain = X509_STORE_CTX_get0_chain(ctx)) == NULL){
-        return Qnil;
-    }
-    if((num = sk_X509_num(chain)) < 0){
-	OSSL_Debug("certs in chain < 0???");
-	return rb_ary_new();
-    }
-    ary = rb_ary_new2(num);
-    for(i = 0; i < num; i++) {
-	x509 = sk_X509_value(chain, i);
-	rb_ary_push(ary, ossl_x509_new(x509));
-    }
-
-    return ary;
+    chain = X509_STORE_CTX_get0_chain(ctx);
+    if (!chain)
+        return Qnil; /* Could be an empty array instead? */
+    return ossl_x509_sk2ary(chain);
 }
 
 /*
-- 
cgit v1.1


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

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