123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- # This file is dual licensed under the terms of the Apache License, Version
- # 2.0, and the BSD License. See the LICENSE file in the root of this repository
- # for complete details.
- from __future__ import absolute_import, division, print_function
- INCLUDES = """
- #include <openssl/ocsp.h>
- """
- TYPES = """
- typedef ... OCSP_REQUEST;
- typedef ... OCSP_ONEREQ;
- typedef ... OCSP_RESPONSE;
- typedef ... OCSP_BASICRESP;
- typedef ... OCSP_SINGLERESP;
- typedef ... OCSP_CERTID;
- typedef ... OCSP_RESPDATA;
- static const long OCSP_NOCERTS;
- static const long OCSP_RESPID_KEY;
- """
- FUNCTIONS = """
- int OCSP_response_status(OCSP_RESPONSE *);
- OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *);
- int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *);
- const ASN1_OCTET_STRING *OCSP_resp_get0_signature(const OCSP_BASICRESP *);
- Cryptography_STACK_OF_X509 *OCSP_resp_get0_certs(const OCSP_BASICRESP *);
- const ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(
- const OCSP_BASICRESP *);
- const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *);
- int OCSP_resp_get0_id(const OCSP_BASICRESP *, const ASN1_OCTET_STRING **,
- const X509_NAME **);
- const X509_ALGOR *OCSP_resp_get0_tbs_sigalg(const OCSP_BASICRESP *);
- const OCSP_RESPDATA *OCSP_resp_get0_respdata(const OCSP_BASICRESP *);
- X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *, int);
- int OCSP_resp_count(OCSP_BASICRESP *);
- OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *, int);
- int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *);
- X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *, int);
- int OCSP_single_get0_status(OCSP_SINGLERESP *, int *, ASN1_GENERALIZEDTIME **,
- ASN1_GENERALIZEDTIME **, ASN1_GENERALIZEDTIME **);
- int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *);
- X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *, int);
- int OCSP_request_onereq_count(OCSP_REQUEST *);
- OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *, int);
- OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *);
- OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *, OCSP_CERTID *);
- OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *, const X509 *, const X509 *);
- void OCSP_CERTID_free(OCSP_CERTID *);
- OCSP_BASICRESP *OCSP_BASICRESP_new(void);
- void OCSP_BASICRESP_free(OCSP_BASICRESP *);
- OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *, OCSP_CERTID *, int,
- int, ASN1_TIME *, ASN1_TIME *,
- ASN1_TIME *);
- int OCSP_basic_add1_cert(OCSP_BASICRESP *, X509 *);
- int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *, X509_EXTENSION *, int);
- int OCSP_basic_sign(OCSP_BASICRESP *, X509 *, EVP_PKEY *, const EVP_MD *,
- Cryptography_STACK_OF_X509 *, unsigned long);
- OCSP_RESPONSE *OCSP_response_create(int, OCSP_BASICRESP *);
- void OCSP_RESPONSE_free(OCSP_RESPONSE *);
- OCSP_REQUEST *OCSP_REQUEST_new(void);
- void OCSP_REQUEST_free(OCSP_REQUEST *);
- int OCSP_REQUEST_add_ext(OCSP_REQUEST *, X509_EXTENSION *, int);
- int OCSP_id_get0_info(ASN1_OCTET_STRING **, ASN1_OBJECT **,
- ASN1_OCTET_STRING **, ASN1_INTEGER **, OCSP_CERTID *);
- OCSP_REQUEST *d2i_OCSP_REQUEST_bio(BIO *, OCSP_REQUEST **);
- OCSP_RESPONSE *d2i_OCSP_RESPONSE_bio(BIO *, OCSP_RESPONSE **);
- int i2d_OCSP_REQUEST_bio(BIO *, OCSP_REQUEST *);
- int i2d_OCSP_RESPONSE_bio(BIO *, OCSP_RESPONSE *);
- int i2d_OCSP_RESPDATA(OCSP_RESPDATA *, unsigned char **);
- """
- CUSTOMIZATIONS = """
- #if ( \
- !CRYPTOGRAPHY_IS_LIBRESSL && \
- CRYPTOGRAPHY_OPENSSL_LESS_THAN_110J \
- )
- /* These structs come from ocsp_lcl.h and are needed to de-opaque the struct
- for the getters in OpenSSL 1.1.0 through 1.1.0i */
- struct ocsp_responder_id_st {
- int type;
- union {
- X509_NAME *byName;
- ASN1_OCTET_STRING *byKey;
- } value;
- };
- struct ocsp_response_data_st {
- ASN1_INTEGER *version;
- OCSP_RESPID responderId;
- ASN1_GENERALIZEDTIME *producedAt;
- STACK_OF(OCSP_SINGLERESP) *responses;
- STACK_OF(X509_EXTENSION) *responseExtensions;
- };
- struct ocsp_basic_response_st {
- OCSP_RESPDATA tbsResponseData;
- X509_ALGOR signatureAlgorithm;
- ASN1_BIT_STRING *signature;
- STACK_OF(X509) *certs;
- };
- #endif
- #if CRYPTOGRAPHY_IS_LIBRESSL
- /* These functions are all taken from ocsp_cl.c in OpenSSL 1.1.0 */
- const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *single)
- {
- return single->certId;
- }
- const Cryptography_STACK_OF_X509 *OCSP_resp_get0_certs(
- const OCSP_BASICRESP *bs)
- {
- return bs->certs;
- }
- int OCSP_resp_get0_id(const OCSP_BASICRESP *bs,
- const ASN1_OCTET_STRING **pid,
- const X509_NAME **pname)
- {
- const OCSP_RESPID *rid = bs->tbsResponseData->responderId;
- if (rid->type == V_OCSP_RESPID_NAME) {
- *pname = rid->value.byName;
- *pid = NULL;
- } else if (rid->type == V_OCSP_RESPID_KEY) {
- *pid = rid->value.byKey;
- *pname = NULL;
- } else {
- return 0;
- }
- return 1;
- }
- const ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(
- const OCSP_BASICRESP* bs)
- {
- return bs->tbsResponseData->producedAt;
- }
- const ASN1_OCTET_STRING *OCSP_resp_get0_signature(const OCSP_BASICRESP *bs)
- {
- return bs->signature;
- }
- #endif
- #if CRYPTOGRAPHY_OPENSSL_LESS_THAN_110J
- const X509_ALGOR *OCSP_resp_get0_tbs_sigalg(const OCSP_BASICRESP *bs)
- {
- #if CRYPTOGRAPHY_IS_LIBRESSL
- return bs->signatureAlgorithm;
- #else
- return &bs->signatureAlgorithm;
- #endif
- }
- const OCSP_RESPDATA *OCSP_resp_get0_respdata(const OCSP_BASICRESP *bs)
- {
- #if CRYPTOGRAPHY_IS_LIBRESSL
- return bs->tbsResponseData;
- #else
- return &bs->tbsResponseData;
- #endif
- }
- #endif
- """
|