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

📄 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;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 GENERAL_NAME_st {#define GEN_OTHERNAME	(0|V_ASN1_CONTEXT_SPECIFIC)#define GEN_EMAIL	(1|V_ASN1_CONTEXT_SPECIFIC)#define GEN_DNS		(2|V_ASN1_CONTEXT_SPECIFIC)#define GEN_X400	(3|V_ASN1_CONTEXT_SPECIFIC)#define GEN_DIRNAME	(4|V_ASN1_CONTEXT_SPECIFIC)#define GEN_EDIPARTY	(5|V_ASN1_CONTEXT_SPECIFIC)#define GEN_URI		(6|V_ASN1_CONTEXT_SPECIFIC)#define GEN_IPADD	(7|V_ASN1_CONTEXT_SPECIFIC)#define GEN_RID		(8|V_ASN1_CONTEXT_SPECIFIC)int type;union {	char *ptr;	ASN1_IA5STRING *ia5;/* rfc822Name, dNSName, uniformResourceIdentifier */	ASN1_OCTET_STRING *ip; /* iPAddress */	X509_NAME *dirn;		/* dirn */	ASN1_OBJECT *rid; /* registeredID */	OTHERNAME *otherName; /* otherName */	ASN1_TYPE *other; /* ediPartyName, x400Address */} d;} GENERAL_NAME;typedef struct ACCESS_DESCRIPTION_st {	ASN1_OBJECT *method;	GENERAL_NAME *location;} ACCESS_DESCRIPTION;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 {/* NB: this is a CHOICE type and only one of these should be set */STACK_OF(GENERAL_NAME) *fullname;STACK_OF(X509_NAME_ENTRY) *relativename;} DIST_POINT_NAME;typedef struct DIST_POINT_st {DIST_POINT_NAME	*distpoint;ASN1_BIT_STRING *reasons;STACK_OF(GENERAL_NAME) *CRLissuer;} DIST_POINT;DECLARE_STACK_OF(DIST_POINT)DECLARE_ASN1_SET_OF(DIST_POINT)typedef struct AUTHORITY_KEYID_st {ASN1_OCTET_STRING *keyid;STACK_OF(GENERAL_NAME) *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;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, \			(X509V3_EXT_NEW)ASN1_BIT_STRING_new, \			(X509V3_EXT_FREE)ASN1_BIT_STRING_free, \			(X509V3_EXT_D2I)d2i_ASN1_BIT_STRING, \			(X509V3_EXT_I2D)i2d_ASN1_BIT_STRING, \			NULL, NULL, \			(X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \			(X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \			NULL, NULL, \			(char *)table}#define EXT_IA5STRING(nid) { nid, 0, \			(X509V3_EXT_NEW)ASN1_IA5STRING_new, \			(X509V3_EXT_FREE)ASN1_IA5STRING_free, \			(X509V3_EXT_D2I)d2i_ASN1_IA5STRING, \			(X509V3_EXT_I2D)i2d_ASN1_IA5STRING, \			(X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \			(X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \			NULL, NULL, NULL, NULL, \			NULL}#define EXT_END { -1, 0, NULL, NULL, NULL, NULL, NULL, NULL, \			 NULL, NULL, NULL, NULL, \			 NULL}/* 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 KU_DIGITAL_SIGNATURE	0x0080#define KU_NON_REPUDIATION	0x0040#define KU_KEY_ENCIPHERMENT	0x0020#define KU_DATA_ENCIPHERMENT	0x0010#define KU_KEY_AGREEMENT	0x0008#define KU_KEY_CERT_SIGN	0x0004#define KU_CRL_SIGN		0x0002#define KU_ENCIPHER_ONLY	0x0001#define KU_DECIPHER_ONLY	0x8000#define NS_SSL_CLIENT		0x80#define NS_SSL_SERVER		0x40#define NS_SMIME		0x20#define NS_OBJSIGN		0x10#define NS_SSL_CA		0x04#define NS_SMIME_CA		0x02#define NS_OBJSIGN_CA		0x01#define XKU_SSL_SERVER		0x1	#define XKU_SSL_CLIENT		0x2#define XKU_SMIME		0x4#define XKU_CODE_SIGN		0x8

⌨️ 快捷键说明

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