亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
高清国产午夜精品久久久久久| 成人精品免费视频| 欧美精品一区二区精品网| 日本系列欧美系列| 亚洲丝袜精品丝袜在线| 国产**成人网毛片九色 | 色婷婷综合五月| 久久狠狠亚洲综合| 日韩国产高清影视| 午夜久久电影网| 国产成a人无v码亚洲福利| 成人美女视频在线观看| 中文字幕免费观看一区| 日韩三级视频在线看| 日本精品一级二级| 久久超碰97人人做人人爱| 亚洲午夜视频在线观看| 精品盗摄一区二区三区| 7878成人国产在线观看| 91视频观看视频| 99久久精品免费观看| 国产成人精品1024| 久久成人免费网| 美女网站一区二区| 日本亚洲三级在线| 激情综合网激情| 国产精选一区二区三区| 国产精品一区二区三区四区| 国产精品一二三区| 国产盗摄一区二区| 成人免费视频免费观看| 91亚洲精品久久久蜜桃网站| 成人av在线资源| 91丨九色丨蝌蚪富婆spa| 成人一二三区视频| 99久久国产免费看| 欧美一级片免费看| 国产午夜精品美女毛片视频| 亚洲国产高清不卡| 午夜精品一区在线观看| 日本人妖一区二区| 国产乱码一区二区三区| 色悠悠久久综合| 日韩欧美卡一卡二| 欧美日本国产一区| 国产精品久久久久久久久久免费看 | 国产成人免费视频网站高清观看视频| 成人av网址在线| 久久久久久99久久久精品网站| 亚洲一区二区在线免费看| 亚洲私人影院在线观看| 91亚洲午夜精品久久久久久| 成人永久aaa| aaa亚洲精品| 一区二区三区中文免费| 色丁香久综合在线久综合在线观看| 国产精品色噜噜| 欧美性xxxxxxxx| 亚洲精品大片www| 成人免费视频一区二区| 精品国内片67194| 久久9热精品视频| 欧美久久久久免费| 亚洲一级片在线观看| 色综合久久天天综合网| 最新热久久免费视频| 国产福利精品导航| 久久丝袜美腿综合| 国产一区二区在线看| 日韩欧美综合在线| 久久精品国产秦先生| 日韩欧美中文字幕一区| 国产在线不卡一区| 国产精品无遮挡| 国产精品亚洲第一| 国产亚洲欧美在线| 福利一区二区在线观看| 一区二区三区美女| 欧美美女一区二区| 秋霞午夜av一区二区三区| 91精选在线观看| 国产精品一区二区在线播放 | 99在线热播精品免费| 亚洲色图第一区| 欧美日韩一区 二区 三区 久久精品| 日韩一区精品视频| 日韩久久久精品| 色综合色综合色综合| 日韩av中文字幕一区二区| 久久久久国产精品免费免费搜索| 99在线精品观看| 国产一区二区三区最好精华液| 亚洲一区二三区| 亚洲综合一区二区三区| 亚洲日本va午夜在线影院| 国产精品高潮久久久久无| 久久人人爽爽爽人久久久| 欧美一区二区福利视频| 欧美一区二区三区在线| 日韩丝袜美女视频| 国产精品羞羞答答xxdd| 免费成人美女在线观看| 亚洲一二三区不卡| 亚洲精品国产第一综合99久久| 久久精品视频在线看| 久久综合色婷婷| 精品少妇一区二区三区免费观看| 欧美日韩国产高清一区二区三区| 91久久精品一区二区| 成人黄色电影在线| 成人免费视频视频在线观看免费 | 日韩一区二区视频| 欧美日韩一二三| 在线观看欧美精品| 欧美日韩中字一区| 精品视频一区三区九区| 欧美日韩一区不卡| 欧美一区午夜视频在线观看| 日韩午夜三级在线| 精品国产凹凸成av人导航| 精品久久五月天| 亚洲特黄一级片| 一区二区三区毛片| 日本 国产 欧美色综合| 捆绑紧缚一区二区三区视频| 紧缚捆绑精品一区二区| 国产成人精品一区二 | 不卡av免费在线观看| 丁香激情综合国产| 欧美国产在线观看| 国产盗摄精品一区二区三区在线| 蜜臀精品一区二区三区在线观看| 午夜私人影院久久久久| 国产剧情一区在线| 国产午夜精品一区二区三区四区| 成人黄色综合网站| 自拍偷在线精品自拍偷无码专区 | 欧美色图天堂网| 亚洲成人你懂的| 久久色视频免费观看| aaa亚洲精品一二三区| 亚洲一区二区三区自拍| 精品久久久久久久久久久院品网 | 久久天堂av综合合色蜜桃网| 国产精品456| 婷婷国产v国产偷v亚洲高清| 欧美成人国产一区二区| 成人av在线一区二区三区| 午夜精品久久久久久久久久| 一区二区三区不卡在线观看| 精品盗摄一区二区三区| 91黄色免费看| 久久99深爱久久99精品| 亚洲资源在线观看| 国产精品女人毛片| 日韩丝袜情趣美女图片| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 亚洲国产精品久久人人爱| 国产午夜亚洲精品不卡| 日韩一区和二区| 欧美久久久久免费| 色综合天天综合色综合av| 国产福利一区二区三区视频| 看片网站欧美日韩| 午夜精品久久久久久久99樱桃| 中文字幕综合网| 国产精品色呦呦| 国产精品福利一区二区| 国产婷婷一区二区| 精品国产99国产精品| 久久婷婷综合激情| 欧美精品一区二区三区在线播放| 日韩欧美色电影| 欧美一级淫片007| 欧美大白屁股肥臀xxxxxx| 69堂精品视频| 欧美α欧美αv大片| 精品动漫一区二区三区在线观看| 欧美白人最猛性xxxxx69交| 久久青草欧美一区二区三区| 亚洲精品一区二区三区四区高清| 精品久久国产字幕高潮| 337p日本欧洲亚洲大胆色噜噜| 精品1区2区在线观看| 国产日韩三级在线| 亚洲欧洲另类国产综合| 亚洲国产成人av网| 国产一区二区三区在线观看免费 | 亚洲一区二区三区小说| 全部av―极品视觉盛宴亚洲| 成人动漫一区二区三区| 欧美亚洲自拍偷拍| 亚洲精品一区二区三区香蕉| 亚洲精品免费在线| 国产精品资源在线| 麻豆精品蜜桃视频网站| 99热在这里有精品免费| 日韩欧美在线网站| 一区二区欧美视频| 国产成人精品一区二区三区网站观看 |