method

peer_cert_chain

v1_9_1_378 - Show latest stable - Class: OpenSSL::SSL::SSLSocket
peer_cert_chain()
public

No documentation available.

static VALUE
ossl_ssl_get_peer_cert_chain(VALUE self)
{
    SSL *ssl;
    STACK_OF(X509) *chain;
    X509 *cert;
    VALUE ary;
    int i, num;

    Data_Get_Struct(self, SSL, ssl);
    if(!ssl){
        rb_warning("SSL session is not started yet.");
        return Qnil;
    }
    chain = SSL_get_peer_cert_chain(ssl);
    if(!chain) return Qnil;
    num = sk_num(chain);
    ary = rb_ary_new2(num);
    for (i = 0; i < num; i++){
        cert = (X509*)sk_value(chain, i);
        rb_ary_push(ary, ossl_x509_new(cert));
    }

    return ary;
}