OpenSSL::OCSP::Response
class OpenSSL::OCSP::Response
父类:对象
OpenSSL :: OCSP :: Response包含从OpenSSL :: OCSP :: Request创建的证书检查的状态。
公共类方法
OpenSSL :: OCSP :: Response.create(status,basic_response = nil)→响应显示源文件
从status
and 创建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;
}