⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x509v3.h

📁 很有名的一款用于组织DDoS的恶意机器人程序。仅供研究学习
💻 H
📖 第 1 页 / 共 2 页
字号:
/* x509v3.h *//* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL * project 1999. *//* ==================================================================== * Copyright (c) 1999 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 *    licensing@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_X509V3_H#define HEADER_X509V3_H#include <openssl/bio.h>#include <openssl/x509.h>#include <openssl/conf.h>#ifdef __cplusplusextern "C" {#endif/* Forward reference */struct v3_ext_method;struct v3_ext_ctx;/* Useful typedefs */typedef void * (*X509V3_EXT_NEW)(void);typedef void (*X509V3_EXT_FREE)(void *);typedef void * (*X509V3_EXT_D2I)(void *, unsigned char ** , long);typedef int (*X509V3_EXT_I2D)(void *, unsigned char **);typedef STACK_OF(CONF_VALUE) * (*X509V3_EXT_I2V)(struct v3_ext_method *method, void *ext, STACK_OF(CONF_VALUE) *extlist);typedef void * (*X509V3_EXT_V2I)(struct v3_ext_method *method, struct v3_ext_ctx *ctx, STACK_OF(CONF_VALUE) *values);typedef char * (*X509V3_EXT_I2S)(struct v3_ext_method *method, void *ext);typedef void * (*X509V3_EXT_S2I)(struct v3_ext_method *method, struct v3_ext_ctx *ctx, char *str);typedef int (*X509V3_EXT_I2R)(struct v3_ext_method *method, void *ext, BIO *out, int indent);typedef void * (*X509V3_EXT_R2I)(struct v3_ext_method *method, struct v3_ext_ctx *ctx, char *str);/* V3 extension structure */struct v3_ext_method {int ext_nid;int ext_flags;/* If this is set the following four fields are ignored */ASN1_ITEM_EXP *it;/* Old style ASN1 calls */X509V3_EXT_NEW ext_new;X509V3_EXT_FREE ext_free;X509V3_EXT_D2I d2i;X509V3_EXT_I2D i2d;/* The following pair is used for string extensions */X509V3_EXT_I2S i2s;X509V3_EXT_S2I s2i;/* The following pair is used for multi-valued extensions */X509V3_EXT_I2V i2v;X509V3_EXT_V2I v2i;/* The following are used for raw extensions */X509V3_EXT_I2R i2r;X509V3_EXT_R2I r2i;void *usr_data;	/* Any extension specific data */};typedef struct X509V3_CONF_METHOD_st {char * (*get_string)(void *db, char *section, char *value);STACK_OF(CONF_VALUE) * (*get_section)(void *db, char *section);void (*free_string)(void *db, char * string);void (*free_section)(void *db, STACK_OF(CONF_VALUE) *section);} X509V3_CONF_METHOD;/* Context specific info */struct v3_ext_ctx {#define CTX_TEST 0x1int flags;X509 *issuer_cert;X509 *subject_cert;X509_REQ *subject_req;X509_CRL *crl;X509V3_CONF_METHOD *db_meth;void *db;/* Maybe more here */};typedef struct v3_ext_method X509V3_EXT_METHOD;typedef struct v3_ext_ctx X509V3_CTX;DECLARE_STACK_OF(X509V3_EXT_METHOD)/* ext_flags values */#define X509V3_EXT_DYNAMIC	0x1#define X509V3_EXT_CTX_DEP	0x2#define X509V3_EXT_MULTILINE	0x4typedef BIT_STRING_BITNAME ENUMERATED_NAMES;typedef struct BASIC_CONSTRAINTS_st {int ca;ASN1_INTEGER *pathlen;} BASIC_CONSTRAINTS;typedef struct PKEY_USAGE_PERIOD_st {ASN1_GENERALIZEDTIME *notBefore;ASN1_GENERALIZEDTIME *notAfter;} PKEY_USAGE_PERIOD;typedef struct otherName_st {ASN1_OBJECT *type_id;ASN1_TYPE *value;} OTHERNAME;typedef struct EDIPartyName_st {	ASN1_STRING *nameAssigner;	ASN1_STRING *partyName;} EDIPARTYNAME;typedef struct GENERAL_NAME_st {#define GEN_OTHERNAME	0#define GEN_EMAIL	1#define GEN_DNS		2#define GEN_X400	3#define GEN_DIRNAME	4#define GEN_EDIPARTY	5#define GEN_URI		6#define GEN_IPADD	7#define GEN_RID		8int type;union {	char *ptr;	OTHERNAME *otherName; /* otherName */	ASN1_IA5STRING *rfc822Name;	ASN1_IA5STRING *dNSName;	ASN1_TYPE *x400Address;	X509_NAME *directoryName;	EDIPARTYNAME *ediPartyName;	ASN1_IA5STRING *uniformResourceIdentifier;	ASN1_OCTET_STRING *iPAddress;	ASN1_OBJECT *registeredID;	/* Old names */	ASN1_OCTET_STRING *ip; /* iPAddress */	X509_NAME *dirn;		/* dirn */	ASN1_IA5STRING *ia5;/* rfc822Name, dNSName, uniformResourceIdentifier */	ASN1_OBJECT *rid; /* registeredID */	ASN1_TYPE *other; /* x400Address */} d;} GENERAL_NAME;typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES;typedef struct ACCESS_DESCRIPTION_st {	ASN1_OBJECT *method;	GENERAL_NAME *location;} ACCESS_DESCRIPTION;typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS;typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE;DECLARE_STACK_OF(GENERAL_NAME)DECLARE_ASN1_SET_OF(GENERAL_NAME)DECLARE_STACK_OF(ACCESS_DESCRIPTION)DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION)typedef struct DIST_POINT_NAME_st {int type;union {	GENERAL_NAMES *fullname;	STACK_OF(X509_NAME_ENTRY) *relativename;} name;} DIST_POINT_NAME;typedef struct DIST_POINT_st {DIST_POINT_NAME	*distpoint;ASN1_BIT_STRING *reasons;GENERAL_NAMES *CRLissuer;} DIST_POINT;typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS;DECLARE_STACK_OF(DIST_POINT)DECLARE_ASN1_SET_OF(DIST_POINT)typedef struct AUTHORITY_KEYID_st {ASN1_OCTET_STRING *keyid;GENERAL_NAMES *issuer;ASN1_INTEGER *serial;} AUTHORITY_KEYID;/* Strong extranet structures */typedef struct SXNET_ID_st {	ASN1_INTEGER *zone;	ASN1_OCTET_STRING *user;} SXNETID;DECLARE_STACK_OF(SXNETID)DECLARE_ASN1_SET_OF(SXNETID)typedef struct SXNET_st {	ASN1_INTEGER *version;	STACK_OF(SXNETID) *ids;} SXNET;typedef struct NOTICEREF_st {	ASN1_STRING *organization;	STACK_OF(ASN1_INTEGER) *noticenos;} NOTICEREF;typedef struct USERNOTICE_st {	NOTICEREF *noticeref;	ASN1_STRING *exptext;} USERNOTICE;typedef struct POLICYQUALINFO_st {	ASN1_OBJECT *pqualid;	union {		ASN1_IA5STRING *cpsuri;		USERNOTICE *usernotice;		ASN1_TYPE *other;	} d;} POLICYQUALINFO;DECLARE_STACK_OF(POLICYQUALINFO)DECLARE_ASN1_SET_OF(POLICYQUALINFO)typedef struct POLICYINFO_st {	ASN1_OBJECT *policyid;	STACK_OF(POLICYQUALINFO) *qualifiers;} POLICYINFO;typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES;DECLARE_STACK_OF(POLICYINFO)DECLARE_ASN1_SET_OF(POLICYINFO)#define X509V3_conf_err(val) ERR_add_error_data(6, "section:", val->section, \",name:", val->name, ",value:", val->value);#define X509V3_set_ctx_test(ctx) \			X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST)#define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL;#define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \			0,0,0,0, \			0,0, \			(X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \			(X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \			NULL, NULL, \			table}#define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \			0,0,0,0, \			(X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \			(X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \			0,0,0,0, \			NULL}#define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}/* X509_PURPOSE stuff */#define EXFLAG_BCONS		0x1#define EXFLAG_KUSAGE		0x2#define EXFLAG_XKUSAGE		0x4#define EXFLAG_NSCERT		0x8#define EXFLAG_CA		0x10#define EXFLAG_SS		0x20#define EXFLAG_V1		0x40#define EXFLAG_INVALID		0x80#define EXFLAG_SET		0x100#define EXFLAG_CRITICAL		0x200#define KU_DIGITAL_SIGNATURE	0x0080

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -