首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenSSL::OCSP::Response

父类:对象

OpenSSL :: OCSP :: Response包含从OpenSSL :: OCSP :: Request创建的证书检查的状态。

公共类方法

OpenSSL :: OCSP :: Response.create(status,basic_response = nil)→响应显示源文件

statusand 创建OpenSSL :: OCSP :: Response basic_response

代码语言:javascript
复制
static VALUE
ossl_ocspres_s_create(VALUE klass, VALUE status, VALUE basic_resp)
{
    OCSP_BASICRESP *bs;
    OCSP_RESPONSE *res;
    VALUE obj;
    int st = NUM2INT(status);

    if(NIL_P(basic_resp)) bs = NULL;
    else GetOCSPBasicRes(basic_resp, bs); /* NO NEED TO DUP */
    obj = NewOCSPRes(klass);
    if(!(res = OCSP_response_create(st, bs)))
        ossl_raise(eOCSPError, NULL);
    SetOCSPRes(obj, res);

    return obj;
}

OpenSSL :: OCSP :: Response.new→响应显示源文件

OpenSSL :: OCSP :: Response.new(response_der)→响应

创建一个新的OpenSSL :: OCSP :: Response。响应可以创建为空或从response_der字符串中创建。

代码语言:javascript
复制
static VALUE
ossl_ocspres_initialize(int argc, VALUE *argv, VALUE self)
{
    VALUE arg;
    OCSP_RESPONSE *res, *res_new;
    const unsigned char *p;

    rb_scan_args(argc, argv, "01", &arg);
    if(!NIL_P(arg)){
        GetOCSPRes(self, res);
        arg = ossl_to_der_if_possible(arg);
        StringValue(arg);
        p = (unsigned char *)RSTRING_PTR(arg);
        res_new = d2i_OCSP_RESPONSE(NULL, &p, RSTRING_LEN(arg));
        if (!res_new)
            ossl_raise(eOCSPError, "d2i_OCSP_RESPONSE");
        SetOCSPRes(self, res_new);
        OCSP_RESPONSE_free(res);
    }

    return self;
}

公共实例方法

基本显示源码

返回此响应的BasicResponse

代码语言:javascript
复制
static VALUE
ossl_ocspres_get_basic(VALUE self)
{
    OCSP_RESPONSE *res;
    OCSP_BASICRESP *bs;
    VALUE ret;

    GetOCSPRes(self, res);
    ret = NewOCSPBasicRes(cOCSPBasicRes);
    if(!(bs = OCSP_response_get1_basic(res)))
        return Qnil;
    SetOCSPBasicRes(ret, bs);

    return ret;
}

状态→整数显示源

返回响应的状态。

代码语言:javascript
复制
static VALUE
ossl_ocspres_status(VALUE self)
{
    OCSP_RESPONSE *res;
    int st;

    GetOCSPRes(self, res);
    st = OCSP_response_status(res);

    return INT2NUM(st);
}

status_string→String显示源

返回响应的状态字符串。

代码语言:javascript
复制
static VALUE
ossl_ocspres_status_string(VALUE self)
{
    OCSP_RESPONSE *res;
    int st;

    GetOCSPRes(self, res);
    st = OCSP_response_status(res);

    return rb_str_new2(OCSP_response_status_str(st));
}

to_der→字符串显示源

以DER编码的字符串形式返回此响应。

代码语言:javascript
复制
static VALUE
ossl_ocspres_to_der(VALUE self)
{
    OCSP_RESPONSE *res;
    VALUE str;
    long len;
    unsigned char *p;

    GetOCSPRes(self, res);
    if((len = i2d_OCSP_RESPONSE(res, NULL)) <= 0)
        ossl_raise(eOCSPError, NULL);
    str = rb_str_new(0, len);
    p = (unsigned char *)RSTRING_PTR(str);
    if(i2d_OCSP_RESPONSE(res, &p) <= 0)
        ossl_raise(eOCSPError, NULL);
    ossl_str_adjust(str, p);

    return str;
}

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com