68 # define HEADER_OCSP_H
70 # include <openssl/ossl_typ.h>
71 # include <openssl/x509.h>
72 # include <openssl/x509v3.h>
73 # include <openssl/safestack.h>
81 # define OCSP_DEFAULT_NONCE_LENGTH 16
83 # define OCSP_NOCERTS 0x1
84 # define OCSP_NOINTERN 0x2
85 # define OCSP_NOSIGS 0x4
86 # define OCSP_NOCHAIN 0x8
87 # define OCSP_NOVERIFY 0x10
88 # define OCSP_NOEXPLICIT 0x20
89 # define OCSP_NOCASIGN 0x40
90 # define OCSP_NODELEGATED 0x80
91 # define OCSP_NOCHECKS 0x100
92 # define OCSP_TRUSTOTHER 0x200
93 # define OCSP_RESPID_KEY 0x400
94 # define OCSP_NOTIME 0x800
144 STACK_OF(
X509) *certs;
166 # define OCSP_RESPONSE_STATUS_SUCCESSFUL 0
167 # define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1
168 # define OCSP_RESPONSE_STATUS_INTERNALERROR 2
169 # define OCSP_RESPONSE_STATUS_TRYLATER 3
170 # define OCSP_RESPONSE_STATUS_SIGREQUIRED 5
171 # define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6
195 # define V_OCSP_RESPID_NAME 0
196 # define V_OCSP_RESPID_KEY 1
226 # define V_OCSP_CERTSTATUS_GOOD 0
227 # define V_OCSP_CERTSTATUS_REVOKED 1
228 # define V_OCSP_CERTSTATUS_UNKNOWN 2
301 STACK_OF(
X509) *certs;
315 # define OCSP_REVOKED_STATUS_NOSTATUS -1
316 # define OCSP_REVOKED_STATUS_UNSPECIFIED 0
317 # define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1
318 # define OCSP_REVOKED_STATUS_CACOMPROMISE 2
319 # define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3
320 # define OCSP_REVOKED_STATUS_SUPERSEDED 4
321 # define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5
322 # define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6
323 # define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8
347 # define PEM_STRING_OCSP_REQUEST "OCSP REQUEST"
348 # define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE"
350 # define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p)
352 # define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p)
354 # define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \
355 (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,bp,(char **)x,cb,NULL)
357 # define PEM_read_bio_OCSP_RESPONSE(bp,x,cb)(OCSP_RESPONSE *)PEM_ASN1_read_bio(\
358 (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,bp,(char **)x,cb,NULL)
360 # define PEM_write_bio_OCSP_REQUEST(bp,o) \
361 PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\
362 bp,(char *)o, NULL,NULL,0,NULL,NULL)
364 # define PEM_write_bio_OCSP_RESPONSE(bp,o) \
365 PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\
366 bp,(char *)o, NULL,NULL,0,NULL,NULL)
368 # define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o)
370 # define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o)
372 # define OCSP_REQUEST_sign(o,pkey,md) \
373 ASN1_item_sign(ASN1_ITEM_rptr(OCSP_REQINFO),\
374 o->optionalSignature->signatureAlgorithm,NULL,\
375 o->optionalSignature->signature,o->tbsRequest,pkey,md)
377 # define OCSP_BASICRESP_sign(o,pkey,md,d) \
378 ASN1_item_sign(ASN1_ITEM_rptr(OCSP_RESPDATA),o->signatureAlgorithm,NULL,\
379 o->signature,o->tbsResponseData,pkey,md)
381 # define OCSP_REQUEST_verify(a,r) ASN1_item_verify(ASN1_ITEM_rptr(OCSP_REQINFO),\
382 a->optionalSignature->signatureAlgorithm,\
383 a->optionalSignature->signature,a->tbsRequest,r)
385 # define OCSP_BASICRESP_verify(a,r,d) ASN1_item_verify(ASN1_ITEM_rptr(OCSP_RESPDATA),\
386 a->signatureAlgorithm,a->signature,a->tbsResponseData,r)
388 # define ASN1_BIT_STRING_digest(data,type,md,len) \
389 ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len)
391 # define OCSP_CERTSTATUS_dup(cs)\
392 (OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\
393 (char *(*)())d2i_OCSP_CERTSTATUS,(char *)(cs))
398 OCSP_REQ_CTX *OCSP_sendreq_new(
BIO *io,
const char *path,
OCSP_REQUEST *req,
400 int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx);
401 int OCSP_sendreq_nbio(
OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx);
402 OCSP_REQ_CTX *OCSP_REQ_CTX_new(
BIO *io,
int maxline);
403 void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx);
404 void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx,
unsigned long len);
405 int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx,
const ASN1_ITEM *it,
407 int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, ASN1_VALUE **pval,
409 BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx);
410 int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx,
const ASN1_ITEM *it,
412 int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx,
const char *op,
const char *path);
413 int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx,
OCSP_REQUEST *req);
414 int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx,
415 const char *name,
const char *value);
426 int OCSP_request_add1_nonce(
OCSP_REQUEST *req,
unsigned char *val,
int len);
427 int OCSP_basic_add1_nonce(
OCSP_BASICRESP *resp,
unsigned char *val,
int len);
438 STACK_OF(
X509) *certs,
unsigned long flags);
461 int OCSP_parse_url(
const char *url,
char **phost,
char **pport,
char **ppath,
477 int status,
int reason,
484 STACK_OF(
X509) *certs,
unsigned long flags);
495 int OCSP_REQUEST_get_ext_by_NID(
OCSP_REQUEST *x,
int nid,
int lastpos);
498 int OCSP_REQUEST_get_ext_by_critical(
OCSP_REQUEST *x,
int crit,
int lastpos);
501 void *OCSP_REQUEST_get1_ext_d2i(
OCSP_REQUEST *x,
int nid,
int *crit,
503 int OCSP_REQUEST_add1_ext_i2d(
OCSP_REQUEST *x,
int nid,
void *value,
int crit,
504 unsigned long flags);
508 int OCSP_ONEREQ_get_ext_by_NID(
OCSP_ONEREQ *x,
int nid,
int lastpos);
510 int OCSP_ONEREQ_get_ext_by_critical(
OCSP_ONEREQ *x,
int crit,
int lastpos);
513 void *OCSP_ONEREQ_get1_ext_d2i(
OCSP_ONEREQ *x,
int nid,
int *crit,
int *idx);
514 int OCSP_ONEREQ_add1_ext_i2d(
OCSP_ONEREQ *x,
int nid,
void *value,
int crit,
515 unsigned long flags);
519 int OCSP_BASICRESP_get_ext_by_NID(
OCSP_BASICRESP *x,
int nid,
int lastpos);
522 int OCSP_BASICRESP_get_ext_by_critical(
OCSP_BASICRESP *x,
int crit,
526 void *OCSP_BASICRESP_get1_ext_d2i(
OCSP_BASICRESP *x,
int nid,
int *crit,
528 int OCSP_BASICRESP_add1_ext_i2d(
OCSP_BASICRESP *x,
int nid,
void *value,
529 int crit,
unsigned long flags);
533 int OCSP_SINGLERESP_get_ext_by_NID(
OCSP_SINGLERESP *x,
int nid,
int lastpos);
540 void *OCSP_SINGLERESP_get1_ext_d2i(
OCSP_SINGLERESP *x,
int nid,
int *crit,
542 int OCSP_SINGLERESP_add1_ext_i2d(
OCSP_SINGLERESP *x,
int nid,
void *value,
543 int crit,
unsigned long flags);
562 const
char *OCSP_response_status_str(
long s);
563 const
char *OCSP_cert_status_str(
long s);
564 const
char *OCSP_crl_reason_str(
long s);
577 void ERR_load_OCSP_strings(
void);
582 # define OCSP_F_ASN1_STRING_ENCODE 100
583 # define OCSP_F_D2I_OCSP_NONCE 102
584 # define OCSP_F_OCSP_BASIC_ADD1_STATUS 103
585 # define OCSP_F_OCSP_BASIC_SIGN 104
586 # define OCSP_F_OCSP_BASIC_VERIFY 105
587 # define OCSP_F_OCSP_CERT_ID_NEW 101
588 # define OCSP_F_OCSP_CHECK_DELEGATED 106
589 # define OCSP_F_OCSP_CHECK_IDS 107
590 # define OCSP_F_OCSP_CHECK_ISSUER 108
591 # define OCSP_F_OCSP_CHECK_VALIDITY 115
592 # define OCSP_F_OCSP_MATCH_ISSUERID 109
593 # define OCSP_F_OCSP_PARSE_URL 114
594 # define OCSP_F_OCSP_REQUEST_SIGN 110
595 # define OCSP_F_OCSP_REQUEST_VERIFY 116
596 # define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111
597 # define OCSP_F_OCSP_SENDREQ_BIO 112
598 # define OCSP_F_OCSP_SENDREQ_NBIO 117
599 # define OCSP_F_PARSE_HTTP_LINE1 118
600 # define OCSP_F_REQUEST_VERIFY 113
603 # define OCSP_R_BAD_DATA 100
604 # define OCSP_R_CERTIFICATE_VERIFY_ERROR 101
605 # define OCSP_R_DIGEST_ERR 102
606 # define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122
607 # define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123
608 # define OCSP_R_ERROR_PARSING_URL 121
609 # define OCSP_R_MISSING_OCSPSIGNING_USAGE 103
610 # define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124
611 # define OCSP_R_NOT_BASIC_RESPONSE 104
612 # define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105
613 # define OCSP_R_NO_CONTENT 106
614 # define OCSP_R_NO_PUBLIC_KEY 107
615 # define OCSP_R_NO_RESPONSE_DATA 108
616 # define OCSP_R_NO_REVOKED_TIME 109
617 # define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110
618 # define OCSP_R_REQUEST_NOT_SIGNED 128
619 # define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111
620 # define OCSP_R_ROOT_CA_NOT_TRUSTED 112
621 # define OCSP_R_SERVER_READ_ERROR 113
622 # define OCSP_R_SERVER_RESPONSE_ERROR 114
623 # define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115
624 # define OCSP_R_SERVER_WRITE_ERROR 116
625 # define OCSP_R_SIGNATURE_FAILURE 117
626 # define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118
627 # define OCSP_R_STATUS_EXPIRED 125
628 # define OCSP_R_STATUS_NOT_YET_VALID 126
629 # define OCSP_R_STATUS_TOO_OLD 127
630 # define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119
631 # define OCSP_R_UNKNOWN_NID 120
632 # define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129
Definition: x509_vfy.h:186