亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ocsp.h

?? SDL文件。SDL_ERROwenjian.....
?? H
?? 第 1 頁 / 共 2 頁
字號:
/* ocsp.h */
/* Written by Tom Titchener <Tom_Titchener@groove.net> for the OpenSSL
 * project. */

/* History:
   This file was transfered to Richard Levitte from CertCo by Kathy
   Weinhold in mid-spring 2000 to be included in OpenSSL or released
   as a patch kit. */

/* ====================================================================
 * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer. 
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. All advertising materials mentioning features or use of this
 *    software must display the following acknowledgment:
 *    "This product includes software developed by the OpenSSL Project
 *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
 *
 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
 *    endorse or promote products derived from this software without
 *    prior written permission. For written permission, please contact
 *    openssl-core@openssl.org.
 *
 * 5. Products derived from this software may not be called "OpenSSL"
 *    nor may "OpenSSL" appear in their names without prior written
 *    permission of the OpenSSL Project.
 *
 * 6. Redistributions of any form whatsoever must retain the following
 *    acknowledgment:
 *    "This product includes software developed by the OpenSSL Project
 *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
 *
 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 * ====================================================================
 *
 * This product includes cryptographic software written by Eric Young
 * (eay@cryptsoft.com).  This product includes software written by Tim
 * Hudson (tjh@cryptsoft.com).
 *
 */

#ifndef HEADER_OCSP_H
#define HEADER_OCSP_H

#include <openssl/x509.h>
#include <openssl/x509v3.h>
#include <openssl/safestack.h>

#ifdef  __cplusplus
extern "C" {
#endif

/* Various flags and values */

#define OCSP_DEFAULT_NONCE_LENGTH	16

#define OCSP_NOCERTS			0x1
#define OCSP_NOINTERN			0x2
#define OCSP_NOSIGS			0x4
#define OCSP_NOCHAIN			0x8
#define OCSP_NOVERIFY			0x10
#define OCSP_NOEXPLICIT			0x20
#define OCSP_NOCASIGN			0x40
#define OCSP_NODELEGATED		0x80
#define OCSP_NOCHECKS			0x100
#define OCSP_TRUSTOTHER			0x200
#define OCSP_RESPID_KEY			0x400
#define OCSP_NOTIME			0x800

/*   CertID ::= SEQUENCE {
 *       hashAlgorithm            AlgorithmIdentifier,
 *       issuerNameHash     OCTET STRING, -- Hash of Issuer's DN
 *       issuerKeyHash      OCTET STRING, -- Hash of Issuers public key (excluding the tag & length fields)
 *       serialNumber       CertificateSerialNumber }
 */
typedef struct ocsp_cert_id_st
	{
	X509_ALGOR *hashAlgorithm;
	ASN1_OCTET_STRING *issuerNameHash;
	ASN1_OCTET_STRING *issuerKeyHash;
	ASN1_INTEGER *serialNumber;
	} OCSP_CERTID;

DECLARE_STACK_OF(OCSP_CERTID)

/*   Request ::=     SEQUENCE {
 *       reqCert                    CertID,
 *       singleRequestExtensions    [0] EXPLICIT Extensions OPTIONAL }
 */
typedef struct ocsp_one_request_st
	{
	OCSP_CERTID *reqCert;
	STACK_OF(X509_EXTENSION) *singleRequestExtensions;
	} OCSP_ONEREQ;

DECLARE_STACK_OF(OCSP_ONEREQ)
DECLARE_ASN1_SET_OF(OCSP_ONEREQ)


/*   TBSRequest      ::=     SEQUENCE {
 *       version             [0] EXPLICIT Version DEFAULT v1,
 *       requestorName       [1] EXPLICIT GeneralName OPTIONAL,
 *       requestList             SEQUENCE OF Request,
 *       requestExtensions   [2] EXPLICIT Extensions OPTIONAL }
 */
typedef struct ocsp_req_info_st
	{
	ASN1_INTEGER *version;
	GENERAL_NAME *requestorName;
	STACK_OF(OCSP_ONEREQ) *requestList;
	STACK_OF(X509_EXTENSION) *requestExtensions;
	} OCSP_REQINFO;

/*   Signature       ::=     SEQUENCE {
 *       signatureAlgorithm   AlgorithmIdentifier,
 *       signature            BIT STRING,
 *       certs                [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
 */
typedef struct ocsp_signature_st
	{
	X509_ALGOR *signatureAlgorithm;
	ASN1_BIT_STRING *signature;
	STACK_OF(X509) *certs;
	} OCSP_SIGNATURE;

/*   OCSPRequest     ::=     SEQUENCE {
 *       tbsRequest                  TBSRequest,
 *       optionalSignature   [0]     EXPLICIT Signature OPTIONAL }
 */
typedef struct ocsp_request_st
	{
	OCSP_REQINFO *tbsRequest;
	OCSP_SIGNATURE *optionalSignature; /* OPTIONAL */
	} OCSP_REQUEST;

/*   OCSPResponseStatus ::= ENUMERATED {
 *       successful            (0),      --Response has valid confirmations
 *       malformedRequest      (1),      --Illegal confirmation request
 *       internalError         (2),      --Internal error in issuer
 *       tryLater              (3),      --Try again later
 *                                       --(4) is not used
 *       sigRequired           (5),      --Must sign the request
 *       unauthorized          (6)       --Request unauthorized
 *   }
 */
#define OCSP_RESPONSE_STATUS_SUCCESSFUL          0
#define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST     1
#define OCSP_RESPONSE_STATUS_INTERNALERROR        2
#define OCSP_RESPONSE_STATUS_TRYLATER             3
#define OCSP_RESPONSE_STATUS_SIGREQUIRED          5
#define OCSP_RESPONSE_STATUS_UNAUTHORIZED         6

/*   ResponseBytes ::=       SEQUENCE {
 *       responseType   OBJECT IDENTIFIER,
 *       response       OCTET STRING }
 */
typedef struct ocsp_resp_bytes_st
	{
	ASN1_OBJECT *responseType;
	ASN1_OCTET_STRING *response;
	} OCSP_RESPBYTES;

/*   OCSPResponse ::= SEQUENCE {
 *      responseStatus         OCSPResponseStatus,
 *      responseBytes          [0] EXPLICIT ResponseBytes OPTIONAL }
 */
typedef struct ocsp_response_st
	{
	ASN1_ENUMERATED *responseStatus;
	OCSP_RESPBYTES  *responseBytes;
	} OCSP_RESPONSE;

/*   ResponderID ::= CHOICE {
 *      byName   [1] Name,
 *      byKey    [2] KeyHash }
 */
#define V_OCSP_RESPID_NAME 0
#define V_OCSP_RESPID_KEY  1
typedef struct ocsp_responder_id_st
	{
	int type;
	union   {
		X509_NAME* byName;
        	ASN1_OCTET_STRING *byKey;
		} value;
	} OCSP_RESPID;
/*   KeyHash ::= OCTET STRING --SHA-1 hash of responder's public key
 *                            --(excluding the tag and length fields)
 */

/*   RevokedInfo ::= SEQUENCE {
 *       revocationTime              GeneralizedTime,
 *       revocationReason    [0]     EXPLICIT CRLReason OPTIONAL }
 */
typedef struct ocsp_revoked_info_st
	{
	ASN1_GENERALIZEDTIME *revocationTime;
	ASN1_ENUMERATED *revocationReason;
	} OCSP_REVOKEDINFO;

/*   CertStatus ::= CHOICE {
 *       good                [0]     IMPLICIT NULL,
 *       revoked             [1]     IMPLICIT RevokedInfo,
 *       unknown             [2]     IMPLICIT UnknownInfo }
 */
#define V_OCSP_CERTSTATUS_GOOD    0
#define V_OCSP_CERTSTATUS_REVOKED 1
#define V_OCSP_CERTSTATUS_UNKNOWN 2
typedef struct ocsp_cert_status_st
	{
	int type;
	union	{
		ASN1_NULL *good;
		OCSP_REVOKEDINFO *revoked;
		ASN1_NULL *unknown;
		} value;
	} OCSP_CERTSTATUS;

/*   SingleResponse ::= SEQUENCE {
 *      certID                       CertID,
 *      certStatus                   CertStatus,
 *      thisUpdate                   GeneralizedTime,
 *      nextUpdate           [0]     EXPLICIT GeneralizedTime OPTIONAL,
 *      singleExtensions     [1]     EXPLICIT Extensions OPTIONAL }
 */
typedef struct ocsp_single_response_st
	{
	OCSP_CERTID *certId;
	OCSP_CERTSTATUS *certStatus;
	ASN1_GENERALIZEDTIME *thisUpdate;
	ASN1_GENERALIZEDTIME *nextUpdate;
	STACK_OF(X509_EXTENSION) *singleExtensions;
	} OCSP_SINGLERESP;

DECLARE_STACK_OF(OCSP_SINGLERESP)
DECLARE_ASN1_SET_OF(OCSP_SINGLERESP)

/*   ResponseData ::= SEQUENCE {
 *      version              [0] EXPLICIT Version DEFAULT v1,
 *      responderID              ResponderID,
 *      producedAt               GeneralizedTime,
 *      responses                SEQUENCE OF SingleResponse,
 *      responseExtensions   [1] EXPLICIT Extensions OPTIONAL }
 */
typedef struct ocsp_response_data_st
	{
	ASN1_INTEGER *version;
	OCSP_RESPID  *responderId;
	ASN1_GENERALIZEDTIME *producedAt;
	STACK_OF(OCSP_SINGLERESP) *responses;
	STACK_OF(X509_EXTENSION) *responseExtensions;
	} OCSP_RESPDATA;

/*   BasicOCSPResponse       ::= SEQUENCE {
 *      tbsResponseData      ResponseData,
 *      signatureAlgorithm   AlgorithmIdentifier,
 *      signature            BIT STRING,
 *      certs                [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
 */
  /* Note 1:
     The value for "signature" is specified in the OCSP rfc2560 as follows:
     "The value for the signature SHALL be computed on the hash of the DER
     encoding ResponseData."  This means that you must hash the DER-encoded
     tbsResponseData, and then run it through a crypto-signing function, which
     will (at least w/RSA) do a hash-'n'-private-encrypt operation.  This seems
     a bit odd, but that's the spec.  Also note that the data structures do not
     leave anywhere to independently specify the algorithm used for the initial
     hash. So, we look at the signature-specification algorithm, and try to do
     something intelligent.	-- Kathy Weinhold, CertCo */
  /* Note 2:
     It seems that the mentioned passage from RFC 2560 (section 4.2.1) is open
     for interpretation.  I've done tests against another responder, and found
     that it doesn't do the double hashing that the RFC seems to say one
     should.  Therefore, all relevant functions take a flag saying which
     variant should be used.	-- Richard Levitte, OpenSSL team and CeloCom */
typedef struct ocsp_basic_response_st
	{
	OCSP_RESPDATA *tbsResponseData;
	X509_ALGOR *signatureAlgorithm;
	ASN1_BIT_STRING *signature;
	STACK_OF(X509) *certs;
	} OCSP_BASICRESP;

/*
 *   CRLReason ::= ENUMERATED {
 *        unspecified             (0),

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九九**精品视频免费播放| 色综合网色综合| 国产欧美久久久精品影院| 成人sese在线| 亚洲午夜久久久久久久久久久| 欧美日韩国产片| 精品一二三四在线| 中文字幕av一区二区三区免费看 | 国产亚洲视频系列| 成人免费看的视频| 亚洲久本草在线中文字幕| 欧美精品18+| 国产麻豆精品在线| 一区精品在线播放| 欧美日韩欧美一区二区| 久久综合综合久久综合| 欧美韩日一区二区三区四区| 色综合中文字幕国产 | 日韩精品免费视频人成| 久久天堂av综合合色蜜桃网| 成人动漫精品一区二区| 亚洲午夜在线观看视频在线| 日韩你懂的在线播放| 成人三级在线视频| 亚洲国产精品欧美一二99| 日韩欧美久久一区| jlzzjlzz亚洲日本少妇| 日韩中文字幕亚洲一区二区va在线 | 国产成人精品免费一区二区| 亚洲一区视频在线| www久久精品| 国产精品成人午夜| 欧美群妇大交群中文字幕| 国产在线播精品第三| 亚洲美女精品一区| 欧美va亚洲va在线观看蝴蝶网| jlzzjlzz国产精品久久| 免费日本视频一区| 亚洲视频精选在线| 日韩精品一区在线观看| 色综合久久久久久久久| 精品一区二区三区免费毛片爱 | 日本视频一区二区| 国产精品卡一卡二| 欧美一级精品在线| 色哟哟亚洲精品| 精品一区精品二区高清| 亚洲一区免费在线观看| 国产欧美一区二区精品性色超碰 | 亚洲乱码国产乱码精品精小说 | 亚洲 欧美综合在线网络| 国产日韩欧美a| 7777精品伊人久久久大香线蕉超级流畅 | 中文字幕欧美日本乱码一线二线| 欧美三级一区二区| 风间由美性色一区二区三区| 视频一区中文字幕国产| 亚洲欧美日韩国产综合| 精品三级在线看| 欧美视频三区在线播放| 成人黄色小视频在线观看| 日韩影院免费视频| 亚洲免费大片在线观看| 久久毛片高清国产| 日韩三级在线观看| 欧美影院一区二区| 国产精品麻豆一区二区| 91精品国产黑色紧身裤美女| 色吧成人激情小说| 成人自拍视频在线观看| 久久er99热精品一区二区| 亚洲成人一二三| 亚洲免费高清视频在线| 国产精品乱人伦一区二区| 精品国产免费视频| 7777精品伊人久久久大香线蕉超级流畅 | 91亚洲精华国产精华精华液| 国产精品香蕉一区二区三区| 免费成人在线网站| 午夜伊人狠狠久久| 亚洲韩国一区二区三区| 亚洲激情图片小说视频| 亚洲欧洲精品一区二区三区不卡| 久久久久免费观看| 欧美变态tickling挠脚心| 91精品一区二区三区久久久久久 | 一本大道综合伊人精品热热| 成人一区二区三区中文字幕| 国产一区二区中文字幕| 麻豆精品久久久| 秋霞午夜av一区二区三区| 亚洲国产综合人成综合网站| 一区二区三区**美女毛片| 国产精品第一页第二页第三页| 久久久久久电影| 久久亚洲欧美国产精品乐播| 精品国产乱码久久久久久夜甘婷婷 | 91精品一区二区三区在线观看| 欧美亚洲禁片免费| 欧美系列在线观看| 欧美三级电影网站| 欧美无人高清视频在线观看| 欧美在线视频不卡| 欧美亚洲精品一区| 欧美日韩中文精品| 欧美日韩精品系列| 欧美日韩国产经典色站一区二区三区| 在线观看三级视频欧美| 欧美色图片你懂的| 欧美色图12p| 亚洲色图.com| 亚洲激情av在线| 亚洲高清免费在线| 婷婷夜色潮精品综合在线| 午夜精品久久久久| 青娱乐精品视频| 精品无人区卡一卡二卡三乱码免费卡 | 99免费精品在线| 91性感美女视频| 欧美色窝79yyyycom| 欧美绝品在线观看成人午夜影视| 欧美福利视频导航| 日韩女优视频免费观看| 国产亚洲一区二区三区四区| 国产精品国产精品国产专区不片| 综合网在线视频| 亚洲一区在线观看免费| 奇米777欧美一区二区| 国内精品自线一区二区三区视频| 国产乱一区二区| 99免费精品在线观看| 欧美午夜电影在线播放| 日韩欧美一区在线| 久久久久九九视频| 国产精品二三区| 亚洲电影中文字幕在线观看| 奇米888四色在线精品| 国产精品一区二区三区99| 99精品视频免费在线观看| 欧美在线你懂的| 日韩久久免费av| 欧美激情中文不卡| 亚洲国产毛片aaaaa无费看| 麻豆精品一区二区av白丝在线| 国产99久久久久久免费看农村| 91小视频免费观看| 欧美精品乱码久久久久久按摩| 久久先锋影音av| 亚洲美女偷拍久久| 日韩成人伦理电影在线观看| 国产精品538一区二区在线| 色狠狠一区二区| 精品国产人成亚洲区| 亚洲手机成人高清视频| 日本欧美在线看| 成人网页在线观看| 欧美日韩成人综合在线一区二区 | 亚洲免费观看高清完整版在线| 日韩中文欧美在线| 成人涩涩免费视频| 在线不卡的av| 中文字幕一区免费在线观看| 日韩影院精彩在线| av中文字幕不卡| 欧美一区永久视频免费观看| 国产精品美女久久久久久久久久久| 亚洲大尺度视频在线观看| 国产91综合网| 欧美日韩成人高清| 日本一二三四高清不卡| 亚洲成年人网站在线观看| 风间由美一区二区av101 | 一区二区视频在线| 国产在线精品一区在线观看麻豆| 97国产一区二区| 日韩欧美成人一区二区| 亚洲欧美日韩综合aⅴ视频| 激情另类小说区图片区视频区| 91久久精品一区二区三| 久久免费看少妇高潮| 性欧美疯狂xxxxbbbb| av电影在线观看不卡| 2020日本不卡一区二区视频| 亚洲成人综合视频| av电影天堂一区二区在线| 亚洲精品一区二区三区99| 亚洲18影院在线观看| 99在线视频精品| 久久日韩精品一区二区五区| 亚洲.国产.中文慕字在线| 91在线一区二区三区| 久久精品男人天堂av| 日韩av中文字幕一区二区 | 欧美日韩国产精品成人| 国产精品久久久久国产精品日日| 免费成人av在线| 欧美三级一区二区| 亚洲品质自拍视频| 国产福利精品一区二区| 精品蜜桃在线看|