1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[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
This commit is contained in:
Kazuki Yamaguchi 2020-08-08 23:00:10 +09:00
parent 08c99a4208
commit be3ba2ee4d
Notes: git 2021-03-16 20:38:46 +09:00

View file

@ -574,26 +574,13 @@ static VALUE
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);
}
/*