Class: OpenSSL::OCSP::Response
Relationships & Source Files | |
Inherits: | Object |
Defined in: | ext/openssl/ossl_ocsp.c |
Overview
An Response
contains the status of a certificate check which is created from an Request.
Class Method Summary
-
.create(status, basic_response = nil) ⇒ Response
Creates an
Response
from status and basic_response. -
.new ⇒ Response
constructor
Creates a new
Response
.
Instance Method Summary
-
#basic
Returns a BasicResponse for this response.
- #initialize_copy(other)
-
#status ⇒ Integer
Returns the status of the response.
-
#status_string ⇒ String
Returns a status string for the response.
-
#to_der ⇒ String
Returns this response as a DER-encoded string.
Constructor Details
.new ⇒ Response
.new(response_der) ⇒ Response
Response
.new(response_der) ⇒ Response
Creates a new Response
. The response may be created empty or from a response_der string.
# File 'ext/openssl/ossl_ocsp.c', line 544
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; }
Class Method Details
.create(status, basic_response = nil) ⇒ Response
Creates an Response
from status and basic_response.
# File 'ext/openssl/ossl_ocsp.c', line 484
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; }
Instance Method Details
#basic
Returns a BasicResponse for this response
# File 'ext/openssl/ossl_ocsp.c', line 612
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; }
#initialize_copy(other)
[ GitHub ]# File 'ext/openssl/ossl_ocsp.c', line 516
static VALUE ossl_ocspres_initialize_copy(VALUE self, VALUE other) { OCSP_RESPONSE *res, *res_old, *res_new; rb_check_frozen(self); GetOCSPRes(self, res_old); GetOCSPRes(other, res); res_new = ASN1_item_dup(ASN1_ITEM_rptr(OCSP_RESPONSE), res); if (!res_new) ossl_raise(eOCSPError, "ASN1_item_dup"); SetOCSPRes(self, res_new); OCSP_RESPONSE_free(res_old); return self; }
#status ⇒ Integer
Returns the status of the response.
# File 'ext/openssl/ossl_ocsp.c', line 574
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
Returns a status string for the response.
# File 'ext/openssl/ossl_ocsp.c', line 593
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 ⇒ String
Returns this response as a DER-encoded string.
# File 'ext/openssl/ossl_ocsp.c', line 635
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; }