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

📄 envelopeddata.java

📁 说明: 1、里面有什么: 1.1、org.bouncycastle.*下的所有软件是bouncycastle组织开发的软件包 1.2、org.infosecurity.*下的软件包括
💻 JAVA
字号:
package org.bouncycastle.asn1.cms;import java.util.Enumeration;import org.bouncycastle.asn1.ASN1Sequence;import org.bouncycastle.asn1.ASN1Set;import org.bouncycastle.asn1.ASN1TaggedObject;import org.bouncycastle.asn1.BERSequence;import org.bouncycastle.asn1.DERTaggedObject;import org.bouncycastle.asn1.DERInteger;import org.bouncycastle.asn1.DERObject;import org.bouncycastle.asn1.DEREncodable;import org.bouncycastle.asn1.ASN1EncodableVector;public class EnvelopedData    implements DEREncodable{	private DERInteger              version;	private OriginatorInfo          originatorInfo;	private ASN1Set                 recipientInfos;	private EncryptedContentInfo    encryptedContentInfo;	private ASN1Set                 unprotectedAttrs;	public EnvelopedData(        OriginatorInfo          originatorInfo,        ASN1Set                 recipientInfos,        EncryptedContentInfo    encryptedContentInfo,        ASN1Set                 unprotectedAttrs)    {        if (originatorInfo != null || unprotectedAttrs != null)        {			version = new DERInteger(2);		}		else        {			version = new DERInteger(0);            Enumeration e = recipientInfos.getObjects();            while (e.hasMoreElements())            {                RecipientInfo   ri = RecipientInfo.getInstance(e.nextElement());                if (!ri.getVersion().equals(version))                {                    version = new DERInteger(2);                    break;                }            }		}		this.originatorInfo = originatorInfo;		this.recipientInfos = recipientInfos;		this.encryptedContentInfo = encryptedContentInfo;		this.unprotectedAttrs = unprotectedAttrs;	}	                     	public EnvelopedData(        ASN1Sequence seq)    {		int     index = 0;				version = (DERInteger)seq.getObjectAt(index++);				Object  tmp = seq.getObjectAt(index++);		if (tmp instanceof ASN1TaggedObject)        {			originatorInfo = OriginatorInfo.getInstance((ASN1TaggedObject)tmp, false);			tmp = seq.getObjectAt(index++);		}		recipientInfos = ASN1Set.getInstance(tmp);				encryptedContentInfo = EncryptedContentInfo.getInstance(seq.getObjectAt(index++));				if(seq.size() > index)        {			unprotectedAttrs = ASN1Set.getInstance((ASN1TaggedObject)seq.getObjectAt(index), false);		}	}	    /**     * return an EnvelopedData object from a tagged object.     *     * @param obj the tagged object holding the object we want.     * @param explicit true if the object is meant to be explicitly     *              tagged false otherwise.     * @exception IllegalArgumentException if the object held by the     *          tagged object cannot be converted.     */	public static EnvelopedData getInstance(        ASN1TaggedObject obj,        boolean explicit)    {		return getInstance(ASN1Sequence.getInstance(obj, explicit));	}	    /**     * return an EnvelopedData object from the given object.     *     * @param obj the object we want converted.     * @exception IllegalArgumentException if the object cannot be converted.     */	public static EnvelopedData getInstance(        Object obj)    {		if (obj == null || obj instanceof EnvelopedData)        {			return (EnvelopedData)obj;		}				if (obj instanceof ASN1Sequence)        {			return new EnvelopedData((ASN1Sequence)obj);		}				throw new IllegalArgumentException("Invalid EnvelopedData: " + obj.getClass().getName());	}	public DERInteger getVersion()    {		return version;	}		public OriginatorInfo getOriginatorInfo()    {		return originatorInfo;	}	public ASN1Set getRecipientInfos()    {		return recipientInfos;	}	public EncryptedContentInfo getEncryptedContentInfo()    {		return encryptedContentInfo;	}	public ASN1Set getUnprotectedAttrs()    {		return unprotectedAttrs;	}    /**      * <pre>     * EnvelopedData ::= SEQUENCE {     * 	version CMSVersion,     * 	originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,     * 	recipientInfos RecipientInfos,     * 	encryptedContentInfo EncryptedContentInfo,     * 	unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL      * }     * </pre>     */	public DERObject getDERObject()    {        ASN1EncodableVector  v = new ASN1EncodableVector();				v.add(version);		if (originatorInfo != null)        {			v.add(new DERTaggedObject(false, 0, originatorInfo));		}		v.add(recipientInfos);		v.add(encryptedContentInfo);		if (unprotectedAttrs != null)        {			v.add(new DERTaggedObject(false, 1, unprotectedAttrs));		}				return new BERSequence(v);	}}

⌨️ 快捷键说明

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