Add some accessors.
authorRich Salz <rsalz@akamai.com>
Sun, 17 Jan 2016 15:34:26 +0000 (10:34 -0500)
committerRich Salz <rsalz@openssl.org>
Sun, 17 Jan 2016 15:38:03 +0000 (10:38 -0500)
Author: Remi Gacogne <rgacogne-github@coredump.fr>
GH334: Add an OCSP_SINGLERESP_get0_id() accessor to the OCSP_CERTID of
a OCSP_SINGLERESP. It is possible to do it the other way around using
OCSP_resp_find(), but this is more efficient when you have a tree indexed
by OCSP_CERTID, like haproxy does. (This is also RT4251)

Author: Marek Klein <kleinmrk@gmail.com>
GH556: OCSP_resp_get_produced_at() accessor to the producedAt of a
OCSP_BASICRESP
GH555: TS_STATUS_INFO_get_status(), TS_STATUS_INFO_get_text() and
TS_STATUS_INFO_get_failure_info() accessors for a TS_STATUS_INFO

Signed-off-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
crypto/ocsp/ocsp_cl.c
crypto/ts/ts_rsp_utils.c
include/openssl/ocsp.h
include/openssl/ts.h
util/libeay.num

index e6e7fc149922bd3f45eca1e3a916970353880deb..2f3835d9c9ddba23e79d4a5e269b02175735fc07 100644 (file)
@@ -242,6 +242,13 @@ OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx)
     return sk_OCSP_SINGLERESP_value(bs->tbsResponseData.responses, idx);
 }
 
     return sk_OCSP_SINGLERESP_value(bs->tbsResponseData.responses, idx);
 }
 
+ASN1_GENERALIZEDTIME *OCSP_resp_get_produced_at(OCSP_BASICRESP* bs)
+{
+    if (!bs)
+        return NULL;
+    return bs->tbsResponseData.producedAt;
+}
+
 /* Look single response matching a given certificate ID */
 
 int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last)
 /* Look single response matching a given certificate ID */
 
 int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last)
@@ -386,3 +393,8 @@ int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd,
 
     return ret;
 }
 
     return ret;
 }
+
+OCSP_CERTID *OCSP_SINGLERESP_get0_id(OCSP_SINGLERESP *single)
+{
+    return single->certId;
+}
index 2db3b176785debdc68966984b164a113670344b4..c3cd1bd32723d9dc5b0493c30dbd505caa3d5161 100644 (file)
@@ -397,3 +397,18 @@ int TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i)
 {
     return ASN1_INTEGER_set(a->status, i);
 }
 {
     return ASN1_INTEGER_set(a->status, i);
 }
+
+ASN1_INTEGER *TS_STATUS_INFO_get_status(TS_STATUS_INFO *a)
+{
+    return a->status;
+}
+
+STACK_OF(ASN1_UTF8STRING) *TS_STATUS_INFO_get_text(TS_STATUS_INFO *a)
+{
+    return a->text;
+}
+
+ASN1_BIT_STRING *TS_STATUS_INFO_get_failure_info(TS_STATUS_INFO *a)
+{
+    return a->failure_info;
+}
index 3ccd79f148a73d08affb68375bea93e4659978cc..b0654b0e5cf2cd83acbcf7897b9bd1691dcc735c 100644 (file)
@@ -259,6 +259,7 @@ ASN1_OCTET_STRING *OCSP_resp_get0_signature(OCSP_BASICRESP *bs);
 
 int OCSP_resp_count(OCSP_BASICRESP *bs);
 OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx);
 
 int OCSP_resp_count(OCSP_BASICRESP *bs);
 OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx);
+ASN1_GENERALIZEDTIME *OCSP_resp_get_produced_at(OCSP_BASICRESP* bs);
 int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last);
 int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason,
                             ASN1_GENERALIZEDTIME **revtime,
 int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last);
 int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason,
                             ASN1_GENERALIZEDTIME **revtime,
@@ -359,6 +360,7 @@ void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit,
 int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value,
                                  int crit, unsigned long flags);
 int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc);
 int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value,
                                  int crit, unsigned long flags);
 int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc);
+OCSP_CERTID *OCSP_SINGLERESP_get0_id(OCSP_SINGLERESP *x);
 
 DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP)
 DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS)
 
 DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP)
 DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS)
index e232e62a5db0042a28c0f7782838c3598137d396..b59f50b98b1a023e687519ab09bedf259df260b8 100644 (file)
@@ -225,6 +225,11 @@ int TS_REQ_set_version(TS_REQ *a, long version);
 long TS_REQ_get_version(const TS_REQ *a);
 
 int TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i);
 long TS_REQ_get_version(const TS_REQ *a);
 
 int TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i);
+ASN1_INTEGER *TS_STATUS_INFO_get_status(TS_STATUS_INFO *a);
+
+STACK_OF(ASN1_UTF8STRING) *TS_STATUS_INFO_get_text(TS_STATUS_INFO *a);
+
+ASN1_BIT_STRING *TS_STATUS_INFO_get_failure_info(TS_STATUS_INFO *a);
 
 int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint);
 TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a);
 
 int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint);
 TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a);
index acfa34d1da3066be4c97f8af506eca507102a0ac..31a603de1d150c8d4fbbebc2af583e24ef27b440 100755 (executable)
@@ -4759,3 +4759,8 @@ EC_KEY_set_ex_data                      5153      1_1_0   EXIST::FUNCTION:EC
 EC_KEY_get_ex_data                      5154   1_1_0   EXIST::FUNCTION:EC
 EC_KEY_set_method                       5155   1_1_0   EXIST::FUNCTION:EC
 EC_KEY_get_method                       5156   1_1_0   EXIST::FUNCTION:EC
 EC_KEY_get_ex_data                      5154   1_1_0   EXIST::FUNCTION:EC
 EC_KEY_set_method                       5155   1_1_0   EXIST::FUNCTION:EC
 EC_KEY_get_method                       5156   1_1_0   EXIST::FUNCTION:EC
+OCSP_SINGLERESP_get0_id                 5157   1_1_0   EXIST::FUNCTION:
+TS_STATUS_INFO_get_status               5158   1_1_0   EXIST::FUNCTION:
+OCSP_resp_get_produced_at               5159   1_1_0   EXIST::FUNCTION:
+TS_STATUS_INFO_get_failure_info         5160   1_1_0   EXIST::FUNCTION:
+TS_STATUS_INFO_get_text                 5161   1_1_0   EXIST::FUNCTION: