Ruby 2.4
OpenSSL

OpenSSL::OCSP::Response

class OpenSSL::OCSP::Response

父类:对象

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

公共类方法

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

statusand 创建OpenSSL :: OCSP :: Response basic_response

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字符串中创建。

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

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; }

状态→整数显示源

返回响应的状态。

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显示源

返回响应的状态字符串。

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编码的字符串形式返回此响应。

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; }