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

📄 pkcs7.h

📁 很有名的一款用于组织DDoS的恶意机器人程序。仅供研究学习
💻 H
📖 第 1 页 / 共 2 页
字号:
/* crypto/pkcs7/pkcs7.h *//* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * * This package is an SSL implementation written * by Eric Young (eay@cryptsoft.com). * The implementation was written so as to conform with Netscapes SSL. *  * This library is free for commercial and non-commercial use as long as * the following conditions are aheared to.  The following conditions * apply to all code found in this distribution, be it the RC4, RSA, * lhash, DES, etc., code; not just the SSL code.  The SSL documentation * included with this distribution is covered by the same copyright terms * except that the holder is Tim Hudson (tjh@cryptsoft.com). *  * Copyright remains Eric Young's, and as such any Copyright notices in * the code are not to be removed. * If this package is used in a product, Eric Young should be given attribution * as the author of the parts of the library used. * This can be in the form of a textual message at program startup or * in documentation (online or textual) provided with the package. *  * 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 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 acknowledgement: *    "This product includes cryptographic software written by *     Eric Young (eay@cryptsoft.com)" *    The word 'cryptographic' can be left out if the rouines from the library *    being used are not cryptographic related :-). * 4. If you include any Windows specific code (or a derivative thereof) from  *    the apps directory (application code) you must include an acknowledgement: *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" *  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND * ANY EXPRESS 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 AUTHOR OR 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. *  * The licence and distribution terms for any publically available version or * derivative of this code cannot be changed.  i.e. this code cannot simply be * copied and put under another distribution licence * [including the GNU Public Licence.] */#ifndef HEADER_PKCS7_H#define HEADER_PKCS7_H#include <openssl/bio.h>#include <openssl/x509.h>#include <openssl/symhacks.h>#ifdef  __cplusplusextern "C" {#endif#ifdef WIN32/* Under Win32 thes are defined in wincrypt.h */#undef PKCS7_ISSUER_AND_SERIAL#undef PKCS7_SIGNER_INFO#endif/*Encryption_ID		DES-CBCDigest_ID		MD5Digest_Encryption_ID	rsaEncryptionKey_Encryption_ID	rsaEncryption*/typedef struct pkcs7_issuer_and_serial_st	{	X509_NAME *issuer;	ASN1_INTEGER *serial;	} PKCS7_ISSUER_AND_SERIAL;typedef struct pkcs7_signer_info_st	{	ASN1_INTEGER 			*version;	/* version 1 */	PKCS7_ISSUER_AND_SERIAL		*issuer_and_serial;	X509_ALGOR			*digest_alg;	STACK_OF(X509_ATTRIBUTE)	*auth_attr;	/* [ 0 ] */	X509_ALGOR			*digest_enc_alg;	ASN1_OCTET_STRING		*enc_digest;	STACK_OF(X509_ATTRIBUTE)	*unauth_attr;	/* [ 1 ] */	/* The private key to sign with */	EVP_PKEY			*pkey;	} PKCS7_SIGNER_INFO;DECLARE_STACK_OF(PKCS7_SIGNER_INFO)DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO)typedef struct pkcs7_recip_info_st	{	ASN1_INTEGER			*version;	/* version 0 */	PKCS7_ISSUER_AND_SERIAL		*issuer_and_serial;	X509_ALGOR			*key_enc_algor;	ASN1_OCTET_STRING		*enc_key;	X509				*cert; /* get the pub-key from this */	} PKCS7_RECIP_INFO;DECLARE_STACK_OF(PKCS7_RECIP_INFO)DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO)typedef struct pkcs7_signed_st	{	ASN1_INTEGER			*version;	/* version 1 */	STACK_OF(X509_ALGOR)		*md_algs;	/* md used */	STACK_OF(X509)			*cert;		/* [ 0 ] */	STACK_OF(X509_CRL)		*crl;		/* [ 1 ] */	STACK_OF(PKCS7_SIGNER_INFO)	*signer_info;	struct pkcs7_st			*contents;	} PKCS7_SIGNED;/* The above structure is very very similar to PKCS7_SIGN_ENVELOPE. * How about merging the two */typedef struct pkcs7_enc_content_st	{	ASN1_OBJECT			*content_type;	X509_ALGOR			*algorithm;	ASN1_OCTET_STRING		*enc_data;	/* [ 0 ] */	const EVP_CIPHER		*cipher;	} PKCS7_ENC_CONTENT;typedef struct pkcs7_enveloped_st	{	ASN1_INTEGER			*version;	/* version 0 */	STACK_OF(PKCS7_RECIP_INFO)	*recipientinfo;	PKCS7_ENC_CONTENT		*enc_data;	} PKCS7_ENVELOPE;typedef struct pkcs7_signedandenveloped_st	{	ASN1_INTEGER			*version;	/* version 1 */	STACK_OF(X509_ALGOR)		*md_algs;	/* md used */	STACK_OF(X509)			*cert;		/* [ 0 ] */	STACK_OF(X509_CRL)		*crl;		/* [ 1 ] */	STACK_OF(PKCS7_SIGNER_INFO)	*signer_info;	PKCS7_ENC_CONTENT		*enc_data;	STACK_OF(PKCS7_RECIP_INFO)	*recipientinfo;	} PKCS7_SIGN_ENVELOPE;typedef struct pkcs7_digest_st	{	ASN1_INTEGER			*version;	/* version 0 */	X509_ALGOR			*md;		/* md used */	struct pkcs7_st 		*contents;	ASN1_OCTET_STRING		*digest;	} PKCS7_DIGEST;typedef struct pkcs7_encrypted_st	{	ASN1_INTEGER			*version;	/* version 0 */	PKCS7_ENC_CONTENT		*enc_data;	} PKCS7_ENCRYPT;typedef struct pkcs7_st	{	/* The following is non NULL if it contains ASN1 encoding of	 * this structure */	unsigned char *asn1;	long length;#define PKCS7_S_HEADER	0#define PKCS7_S_BODY	1#define PKCS7_S_TAIL	2	int state; /* used during processing */	int detached;	ASN1_OBJECT *type;	/* content as defined by the type */	/* all encryption/message digests are applied to the 'contents',	 * leaving out the 'type' field. */	union	{		char *ptr;		/* NID_pkcs7_data */		ASN1_OCTET_STRING *data;		/* NID_pkcs7_signed */		PKCS7_SIGNED *sign;		/* NID_pkcs7_enveloped */		PKCS7_ENVELOPE *enveloped;		/* NID_pkcs7_signedAndEnveloped */		PKCS7_SIGN_ENVELOPE *signed_and_enveloped;		/* NID_pkcs7_digest */		PKCS7_DIGEST *digest;		/* NID_pkcs7_encrypted */		PKCS7_ENCRYPT *encrypted;		/* Anything else */		ASN1_TYPE *other;		} d;	} PKCS7;DECLARE_STACK_OF(PKCS7)DECLARE_ASN1_SET_OF(PKCS7)DECLARE_PKCS12_STACK_OF(PKCS7)#define PKCS7_OP_SET_DETACHED_SIGNATURE	1#define PKCS7_OP_GET_DETACHED_SIGNATURE	2#define PKCS7_get_signed_attributes(si)	((si)->auth_attr)#define PKCS7_get_attributes(si)	((si)->unauth_attr)#define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed)#define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped)#define PKCS7_type_is_signedAndEnveloped(a) \		(OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped)#define PKCS7_type_is_data(a)   (OBJ_obj2nid((a)->type) == NID_pkcs7_data)#define PKCS7_set_detached(p,v) \		PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL)#define PKCS7_get_detached(p) \		PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL)#ifdef SSLEAY_MACROS#ifndef PKCS7_ISSUER_AND_SERIAL_digest#define PKCS7_ISSUER_AND_SERIAL_digest(data,type,md,len) \        ASN1_digest((int (*)())i2d_PKCS7_ISSUER_AND_SERIAL,type,\	                (char *)data,md,len)#endif#endif/* S/MIME related flags */#define PKCS7_TEXT		0x1#define PKCS7_NOCERTS		0x2#define PKCS7_NOSIGS		0x4#define PKCS7_NOCHAIN		0x8#define PKCS7_NOINTERN		0x10

⌨️ 快捷键说明

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