1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ocsp.h */ 2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Written by Tom Titchener <Tom_Titchener@groove.net> for the OpenSSL 3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * project. */ 4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* History: 6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project This file was transfered to Richard Levitte from CertCo by Kathy 7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project Weinhold in mid-spring 2000 to be included in OpenSSL or released 8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project as a patch kit. */ 9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ==================================================================== 11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Redistribution and use in source and binary forms, with or without 14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * modification, are permitted provided that the following conditions 15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * are met: 16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1. Redistributions of source code must retain the above copyright 18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer. 19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer in 22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the documentation and/or other materials provided with the 23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * distribution. 24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 3. All advertising materials mentioning features or use of this 26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * software must display the following acknowledgment: 27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software developed by the OpenSSL Project 28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * endorse or promote products derived from this software without 32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * prior written permission. For written permission, please contact 33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * openssl-core@openssl.org. 34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 5. Products derived from this software may not be called "OpenSSL" 36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * nor may "OpenSSL" appear in their names without prior written 37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * permission of the OpenSSL Project. 38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 6. Redistributions of any form whatsoever must retain the following 40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * acknowledgment: 41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software developed by the OpenSSL Project 42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OF THE POSSIBILITY OF SUCH DAMAGE. 56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ==================================================================== 57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This product includes cryptographic software written by Eric Young 59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * (eay@cryptsoft.com). This product includes software written by Tim 60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Hudson (tjh@cryptsoft.com). 61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef HEADER_OCSP_H 65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HEADER_OCSP_H 66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 67221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#include <openssl/ossl_typ.h> 68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/x509.h> 69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/x509v3.h> 70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/safestack.h> 71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef __cplusplus 73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern "C" { 74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Various flags and values */ 77656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 78656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_DEFAULT_NONCE_LENGTH 16 79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 80656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_NOCERTS 0x1 81656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_NOINTERN 0x2 82656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_NOSIGS 0x4 83656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_NOCHAIN 0x8 84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_NOVERIFY 0x10 85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_NOEXPLICIT 0x20 86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_NOCASIGN 0x40 87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_NODELEGATED 0x80 88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_NOCHECKS 0x100 89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_TRUSTOTHER 0x200 90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_RESPID_KEY 0x400 91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_NOTIME 0x800 92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 9361aa94b4c4af8cbf7cb5763939b495cddcaf3c8dAndrew Hsieh#ifdef OPENSSL_SYS_WIN32 9461aa94b4c4af8cbf7cb5763939b495cddcaf3c8dAndrew Hsieh /* Under Win32 these are defined in wincrypt.h */ 9561aa94b4c4af8cbf7cb5763939b495cddcaf3c8dAndrew Hsieh#undef OCSP_REQUEST 9661aa94b4c4af8cbf7cb5763939b495cddcaf3c8dAndrew Hsieh#undef X509_NAME 9761aa94b4c4af8cbf7cb5763939b495cddcaf3c8dAndrew Hsieh#undef OCSP_RESPONSE 9861aa94b4c4af8cbf7cb5763939b495cddcaf3c8dAndrew Hsieh#endif 9961aa94b4c4af8cbf7cb5763939b495cddcaf3c8dAndrew Hsieh 100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* CertID ::= SEQUENCE { 101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * hashAlgorithm AlgorithmIdentifier, 102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * issuerNameHash OCTET STRING, -- Hash of Issuer's DN 103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * issuerKeyHash OCTET STRING, -- Hash of Issuers public key (excluding the tag & length fields) 104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * serialNumber CertificateSerialNumber } 105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_cert_id_st 107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_ALGOR *hashAlgorithm; 109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_OCTET_STRING *issuerNameHash; 110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_OCTET_STRING *issuerKeyHash; 111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_INTEGER *serialNumber; 112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_CERTID; 113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_STACK_OF(OCSP_CERTID) 115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Request ::= SEQUENCE { 117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * reqCert CertID, 118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL } 119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_one_request_st 121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OCSP_CERTID *reqCert; 123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(X509_EXTENSION) *singleRequestExtensions; 124656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_ONEREQ; 125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 126656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_STACK_OF(OCSP_ONEREQ) 127656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_SET_OF(OCSP_ONEREQ) 128656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* TBSRequest ::= SEQUENCE { 131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * version [0] EXPLICIT Version DEFAULT v1, 132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * requestorName [1] EXPLICIT GeneralName OPTIONAL, 133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * requestList SEQUENCE OF Request, 134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * requestExtensions [2] EXPLICIT Extensions OPTIONAL } 135656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_req_info_st 137656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_INTEGER *version; 139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project GENERAL_NAME *requestorName; 140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(OCSP_ONEREQ) *requestList; 141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(X509_EXTENSION) *requestExtensions; 142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_REQINFO; 143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Signature ::= SEQUENCE { 145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * signatureAlgorithm AlgorithmIdentifier, 146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * signature BIT STRING, 147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } 148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_signature_st 150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_ALGOR *signatureAlgorithm; 152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_BIT_STRING *signature; 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(X509) *certs; 154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_SIGNATURE; 155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* OCSPRequest ::= SEQUENCE { 157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * tbsRequest TBSRequest, 158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * optionalSignature [0] EXPLICIT Signature OPTIONAL } 159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_request_st 161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OCSP_REQINFO *tbsRequest; 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OCSP_SIGNATURE *optionalSignature; /* OPTIONAL */ 164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_REQUEST; 165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* OCSPResponseStatus ::= ENUMERATED { 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * successful (0), --Response has valid confirmations 168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * malformedRequest (1), --Illegal confirmation request 169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * internalError (2), --Internal error in issuer 170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * tryLater (3), --Try again later 171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * --(4) is not used 172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * sigRequired (5), --Must sign the request 173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * unauthorized (6) --Request unauthorized 174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * } 175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_RESPONSE_STATUS_INTERNALERROR 2 179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_RESPONSE_STATUS_TRYLATER 3 180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ResponseBytes ::= SEQUENCE { 184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * responseType OBJECT IDENTIFIER, 185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * response OCTET STRING } 186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_resp_bytes_st 188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_OBJECT *responseType; 190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_OCTET_STRING *response; 191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_RESPBYTES; 192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* OCSPResponse ::= SEQUENCE { 194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * responseStatus OCSPResponseStatus, 195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * responseBytes [0] EXPLICIT ResponseBytes OPTIONAL } 196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectstruct ocsp_response_st 198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_ENUMERATED *responseStatus; 200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OCSP_RESPBYTES *responseBytes; 201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }; 202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ResponderID ::= CHOICE { 204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * byName [1] Name, 205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * byKey [2] KeyHash } 206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define V_OCSP_RESPID_NAME 0 208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define V_OCSP_RESPID_KEY 1 209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectstruct ocsp_responder_id_st 210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int type; 212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project union { 213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_NAME* byName; 214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_OCTET_STRING *byKey; 215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } value; 216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project }; 217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_STACK_OF(OCSP_RESPID) 219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_RESPID) 220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* KeyHash ::= OCTET STRING --SHA-1 hash of responder's public key 222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * --(excluding the tag and length fields) 223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* RevokedInfo ::= SEQUENCE { 226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * revocationTime GeneralizedTime, 227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * revocationReason [0] EXPLICIT CRLReason OPTIONAL } 228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_revoked_info_st 230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME *revocationTime; 232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_ENUMERATED *revocationReason; 233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_REVOKEDINFO; 234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* CertStatus ::= CHOICE { 236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * good [0] IMPLICIT NULL, 237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * revoked [1] IMPLICIT RevokedInfo, 238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * unknown [2] IMPLICIT UnknownInfo } 239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define V_OCSP_CERTSTATUS_GOOD 0 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define V_OCSP_CERTSTATUS_REVOKED 1 242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define V_OCSP_CERTSTATUS_UNKNOWN 2 243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_cert_status_st 244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int type; 246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project union { 247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_NULL *good; 248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OCSP_REVOKEDINFO *revoked; 249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_NULL *unknown; 250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } value; 251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_CERTSTATUS; 252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* SingleResponse ::= SEQUENCE { 254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * certID CertID, 255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * certStatus CertStatus, 256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * thisUpdate GeneralizedTime, 257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL, 258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * singleExtensions [1] EXPLICIT Extensions OPTIONAL } 259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_single_response_st 261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OCSP_CERTID *certId; 263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OCSP_CERTSTATUS *certStatus; 264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME *thisUpdate; 265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME *nextUpdate; 266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(X509_EXTENSION) *singleExtensions; 267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_SINGLERESP; 268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_STACK_OF(OCSP_SINGLERESP) 270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_SET_OF(OCSP_SINGLERESP) 271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ResponseData ::= SEQUENCE { 273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * version [0] EXPLICIT Version DEFAULT v1, 274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * responderID ResponderID, 275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * producedAt GeneralizedTime, 276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * responses SEQUENCE OF SingleResponse, 277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * responseExtensions [1] EXPLICIT Extensions OPTIONAL } 278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_response_data_st 280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_INTEGER *version; 282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OCSP_RESPID *responderId; 283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME *producedAt; 284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(OCSP_SINGLERESP) *responses; 285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(X509_EXTENSION) *responseExtensions; 286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_RESPDATA; 287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* BasicOCSPResponse ::= SEQUENCE { 289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * tbsResponseData ResponseData, 290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * signatureAlgorithm AlgorithmIdentifier, 291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * signature BIT STRING, 292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } 293656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Note 1: 295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project The value for "signature" is specified in the OCSP rfc2560 as follows: 296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project "The value for the signature SHALL be computed on the hash of the DER 297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project encoding ResponseData." This means that you must hash the DER-encoded 298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tbsResponseData, and then run it through a crypto-signing function, which 299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project will (at least w/RSA) do a hash-'n'-private-encrypt operation. This seems 300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project a bit odd, but that's the spec. Also note that the data structures do not 301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project leave anywhere to independently specify the algorithm used for the initial 302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project hash. So, we look at the signature-specification algorithm, and try to do 303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project something intelligent. -- Kathy Weinhold, CertCo */ 304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project /* Note 2: 305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project It seems that the mentioned passage from RFC 2560 (section 4.2.1) is open 306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project for interpretation. I've done tests against another responder, and found 307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project that it doesn't do the double hashing that the RFC seems to say one 308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project should. Therefore, all relevant functions take a flag saying which 309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project variant should be used. -- Richard Levitte, OpenSSL team and CeloCom */ 310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_basic_response_st 311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OCSP_RESPDATA *tbsResponseData; 313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_ALGOR *signatureAlgorithm; 314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_BIT_STRING *signature; 315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(X509) *certs; 316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_BASICRESP; 317656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 318656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * CRLReason ::= ENUMERATED { 320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * unspecified (0), 321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * keyCompromise (1), 322656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * cACompromise (2), 323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * affiliationChanged (3), 324656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * superseded (4), 325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * cessationOfOperation (5), 326656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * certificateHold (6), 327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * removeFromCRL (8) } 328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_REVOKED_STATUS_NOSTATUS -1 330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_REVOKED_STATUS_UNSPECIFIED 0 331656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_REVOKED_STATUS_CACOMPROMISE 2 333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_REVOKED_STATUS_SUPERSEDED 4 335656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 336656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* CrlID ::= SEQUENCE { 340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * crlUrl [0] EXPLICIT IA5String OPTIONAL, 341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * crlNum [1] EXPLICIT INTEGER OPTIONAL, 342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * crlTime [2] EXPLICIT GeneralizedTime OPTIONAL } 343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 344656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_crl_id_st 345656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_IA5STRING *crlUrl; 347656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_INTEGER *crlNum; 348656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME *crlTime; 349656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_CRLID; 350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 351656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ServiceLocator ::= SEQUENCE { 352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * issuer Name, 353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * locator AuthorityInfoAccessSyntax OPTIONAL } 354656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ocsp_service_locator_st 356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 357656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_NAME* issuer; 358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(ACCESS_DESCRIPTION) *locator; 359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } OCSP_SERVICELOC; 360656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 361656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" 362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" 363656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 364656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) 365656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p) 367656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 368656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \ 369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,bp,(char **)x,cb,NULL) 370656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_read_bio_OCSP_RESPONSE(bp,x,cb)(OCSP_RESPONSE *)PEM_ASN1_read_bio(\ 372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,bp,(char **)x,cb,NULL) 373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 374656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_OCSP_REQUEST(bp,o) \ 375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\ 376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bp,(char *)o, NULL,NULL,0,NULL,NULL) 377656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PEM_write_bio_OCSP_RESPONSE(bp,o) \ 379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\ 380656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bp,(char *)o, NULL,NULL,0,NULL,NULL) 381656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 382656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) 383656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) 385656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_REQUEST_sign(o,pkey,md) \ 387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_item_sign(ASN1_ITEM_rptr(OCSP_REQINFO),\ 388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project o->optionalSignature->signatureAlgorithm,NULL,\ 389656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project o->optionalSignature->signature,o->tbsRequest,pkey,md) 390656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 391656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_BASICRESP_sign(o,pkey,md,d) \ 392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_item_sign(ASN1_ITEM_rptr(OCSP_RESPDATA),o->signatureAlgorithm,NULL,\ 393656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project o->signature,o->tbsResponseData,pkey,md) 394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 395656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_REQUEST_verify(a,r) ASN1_item_verify(ASN1_ITEM_rptr(OCSP_REQINFO),\ 396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project a->optionalSignature->signatureAlgorithm,\ 397656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project a->optionalSignature->signature,a->tbsRequest,r) 398656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 399656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_BASICRESP_verify(a,r,d) ASN1_item_verify(ASN1_ITEM_rptr(OCSP_RESPDATA),\ 400656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project a->signatureAlgorithm,a->signature,a->tbsResponseData,r) 401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 402656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define ASN1_BIT_STRING_digest(data,type,md,len) \ 403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) 404656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 405656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_CERTSTATUS_dup(cs)\ 406656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\ 407656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project (char *(*)())d2i_OCSP_CERTSTATUS,(char *)(cs)) 408656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 409221304ee937bc0910948a8be1320cb8cc4eb6d36Brian CarlstromOCSP_CERTID *OCSP_CERTID_dup(OCSP_CERTID *id); 410221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 411656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, char *path, OCSP_REQUEST *req); 412656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, char *path, OCSP_REQUEST *req, 413656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int maxline); 414656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx); 415656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx); 416221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); 417221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, 418221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom const char *name, const char *value); 419656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, X509 *subject, X509 *issuer); 421656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 422656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, 423656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_NAME *issuerName, 424656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_BIT_STRING* issuerKey, 425656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_INTEGER *serialNumber); 426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 427656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); 428656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len); 430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len); 431656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs); 432656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req); 433656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 434656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm); 435656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); 436656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 437656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_request_sign(OCSP_REQUEST *req, 438656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509 *signer, 439656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project EVP_PKEY *key, 440656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const EVP_MD *dgst, 441656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(X509) *certs, 442656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned long flags); 443656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 444656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_response_status(OCSP_RESPONSE *resp); 445656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp); 446656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 447656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_resp_count(OCSP_BASICRESP *bs); 448656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); 449656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last); 450656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, 451656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME **revtime, 452656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME **thisupd, 453656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME **nextupd); 454656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status, 455656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int *reason, 456656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME **revtime, 457656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME **thisupd, 458656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME **nextupd); 459656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, 460656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME *nextupd, 461656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project long sec, long maxsec); 462656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 463656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, X509_STORE *store, unsigned long flags); 464656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 465656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_parse_url(char *url, char **phost, char **pport, char **ppath, int *pssl); 466656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 467656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_id_issuer_cmp(OCSP_CERTID *a, OCSP_CERTID *b); 468656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b); 469656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 470656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_request_onereq_count(OCSP_REQUEST *req); 471656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i); 472656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one); 473656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, 474656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_OCTET_STRING **pikeyHash, 475656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_INTEGER **pserial, OCSP_CERTID *cid); 476656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_request_is_signed(OCSP_REQUEST *req); 477656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs); 478656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp, 479656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project OCSP_CERTID *cid, 480656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int status, int reason, 481656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_TIME *revtime, 482656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_TIME *thisupd, ASN1_TIME *nextupd); 483656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert); 484656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_basic_sign(OCSP_BASICRESP *brsp, 485656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509 *signer, EVP_PKEY *key, const EVP_MD *dgst, 486656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project STACK_OF(X509) *certs, unsigned long flags); 487656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 488656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_EXTENSION *OCSP_crlID_new(char *url, long *n, char *tim); 489656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 490656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_EXTENSION *OCSP_accept_responses_new(char **oids); 491656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 492656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_EXTENSION *OCSP_archive_cutoff_new(char* tim); 493656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 494656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_EXTENSION *OCSP_url_svcloc_new(X509_NAME* issuer, char **urls); 495656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 496656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x); 497656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos); 498656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, ASN1_OBJECT *obj, int lastpos); 499656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos); 500656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc); 501656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc); 502656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, int *idx); 503656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit, 504656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned long flags); 505656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc); 506656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 507656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x); 508656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos); 509656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, ASN1_OBJECT *obj, int lastpos); 510656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos); 511656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc); 512656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc); 513656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx); 514656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit, 515656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned long flags); 516656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc); 517656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 518656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x); 519656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos); 520656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, ASN1_OBJECT *obj, int lastpos); 521656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, int lastpos); 522656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc); 523656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc); 524656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit, int *idx); 525656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value, int crit, 526656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned long flags); 527656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc); 528656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 529656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x); 530656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos); 531656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, ASN1_OBJECT *obj, int lastpos); 532656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, int lastpos); 533656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc); 534656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc); 535656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, int *idx); 536656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value, int crit, 537656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned long flags); 538656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc); 539656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 540656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) 541656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) 542656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) 543656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) 544656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) 545656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_RESPID) 546656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) 547656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) 548656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) 549656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_CERTID) 550656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) 551656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) 552656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) 553656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_CRLID) 554656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectDECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) 555656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 556221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromconst char *OCSP_response_status_str(long s); 557221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromconst char *OCSP_cert_status_str(long s); 558221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromconst char *OCSP_crl_reason_str(long s); 559656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 560656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST* a, unsigned long flags); 561656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE* o, unsigned long flags); 562656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 563656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, 564656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project X509_STORE *st, unsigned long flags); 565656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 566656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* BEGIN ERROR CODES */ 567656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* The following lines are auto generated by the script mkerr.pl. Any changes 568656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * made after this point may be overwritten when the script is next run. 569656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 570656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid ERR_load_OCSP_strings(void); 571656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 572656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Error codes for the OCSP functions. */ 573656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 574656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Function codes. */ 575656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_ASN1_STRING_ENCODE 100 576656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_D2I_OCSP_NONCE 102 577656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_BASIC_ADD1_STATUS 103 578656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_BASIC_SIGN 104 579656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_BASIC_VERIFY 105 580656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_CERT_ID_NEW 101 581656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_CHECK_DELEGATED 106 582656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_CHECK_IDS 107 583656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_CHECK_ISSUER 108 584656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_CHECK_VALIDITY 115 585656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_MATCH_ISSUERID 109 586656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_PARSE_URL 114 587656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_REQUEST_SIGN 110 588656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_REQUEST_VERIFY 116 589656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111 590656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_OCSP_SENDREQ_BIO 112 591221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define OCSP_F_OCSP_SENDREQ_NBIO 117 592221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define OCSP_F_PARSE_HTTP_LINE1 118 593656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_F_REQUEST_VERIFY 113 594656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 595656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Reason codes. */ 596656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_BAD_DATA 100 597656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 598656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_DIGEST_ERR 102 599656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 600656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 601656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_ERROR_PARSING_URL 121 602656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 603656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 604656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_NOT_BASIC_RESPONSE 104 605656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 606656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_NO_CONTENT 106 607656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_NO_PUBLIC_KEY 107 608656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_NO_RESPONSE_DATA 108 609656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_NO_REVOKED_TIME 109 610656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 611656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_REQUEST_NOT_SIGNED 128 612656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 613656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_ROOT_CA_NOT_TRUSTED 112 614656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_SERVER_READ_ERROR 113 615656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_SERVER_RESPONSE_ERROR 114 616656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 617656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_SERVER_WRITE_ERROR 116 618656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_SIGNATURE_FAILURE 117 619656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 620656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_STATUS_EXPIRED 125 621656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_STATUS_NOT_YET_VALID 126 622656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_STATUS_TOO_OLD 127 623656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 624656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_UNKNOWN_NID 120 625656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 626656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 627656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef __cplusplus 628656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} 629656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 630656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 631