| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| /* |
| * pkix_pl_ocspresponse.h |
| * |
| * OcspResponse Object Definitions |
| * |
| */ |
| |
| #ifndef _PKIX_PL_OCSPRESPONSE_H |
| #define _PKIX_PL_OCSPRESPONSE_H |
| |
| #include "pkix_pl_common.h" |
| #include "pkix_pl_ocspcertid.h" |
| #include "hasht.h" |
| #include "cryptohi.h" |
| #include "ocspti.h" |
| #include "ocspi.h" |
| #include "plbase64.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #define MAX_OCSP_RESPONSE_LEN (64*1024) |
| |
| struct PKIX_PL_OcspResponseStruct{ |
| PLArenaPool *arena; |
| const PKIX_PL_OcspRequest *request; |
| const SEC_HttpClientFcn *httpClient; |
| SEC_HTTP_SERVER_SESSION serverSession; |
| SEC_HTTP_REQUEST_SESSION sessionRequest; |
| PKIX_PL_VerifyCallback verifyFcn; |
| SECItem *encodedResponse; |
| CERTCertDBHandle *handle; |
| PRTime producedAt; |
| PKIX_PL_Date *producedAtDate; |
| PKIX_PL_Cert *pkixSignerCert; |
| CERTOCSPResponse *nssOCSPResponse; |
| CERTCertificate *signerCert; |
| }; |
| |
| /* see source file for function documentation */ |
| |
| PKIX_Error *pkix_pl_OcspResponse_RegisterSelf(void *plContext); |
| |
| PKIX_Error * |
| pkix_pl_OcspResponse_Create( |
| PKIX_PL_OcspRequest *request, |
| const char *httpMechanism, |
| void *responder, |
| PKIX_PL_VerifyCallback verifyFcn, |
| void **pNBIOContext, |
| PKIX_PL_OcspResponse **pResponse, |
| void *plContext); |
| |
| PKIX_Error * |
| pkix_pl_OcspResponse_Decode( |
| PKIX_PL_OcspResponse *response, |
| PKIX_Boolean *passed, |
| SECErrorCodes *pReturnCode, |
| void *plContext); |
| |
| PKIX_Error * |
| pkix_pl_OcspResponse_GetStatus( |
| PKIX_PL_OcspResponse *response, |
| PKIX_Boolean *passed, |
| SECErrorCodes *pReturnCode, |
| void *plContext); |
| |
| PKIX_Error * |
| pkix_pl_OcspResponse_VerifySignature( |
| PKIX_PL_OcspResponse *response, |
| PKIX_PL_Cert *cert, |
| PKIX_ProcessingParams *procParams, |
| PKIX_Boolean *pPassed, |
| void **pNBIOContext, |
| void *plContext); |
| |
| PKIX_Error * |
| pkix_pl_OcspResponse_GetStatusForCert( |
| PKIX_PL_OcspCertID *cid, |
| PKIX_PL_OcspResponse *response, |
| PKIX_Boolean allowCachingOfFailures, |
| PKIX_PL_Date *validity, |
| PKIX_Boolean *pPassed, |
| SECErrorCodes *pReturnCode, |
| void *plContext); |
| |
| PKIX_Error * |
| PKIX_PL_OcspResponse_UseBuildChain( |
| PKIX_PL_Cert *signerCert, |
| PKIX_PL_Date *producedAt, |
| PKIX_ProcessingParams *procParams, |
| void **pNBIOContext, |
| void **pState, |
| PKIX_BuildResult **pBuildResult, |
| PKIX_VerifyNode **pVerifyTree, |
| void *plContext); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* _PKIX_PL_OCSPRESPONSE_H */ |