ContentInfo.java
上传用户:lior1029
上传日期:2013-05-07
资源大小:209k
文件大小:2k
源码类别:

CA认证

开发平台:

Java

  1. package org.bouncycastle.asn1.pkcs;
  2. import java.util.Enumeration;
  3. import org.bouncycastle.asn1.*;
  4. public class ContentInfo
  5.     implements DEREncodable, PKCSObjectIdentifiers
  6. {
  7.     private DERObjectIdentifier contentType;
  8.     private DEREncodable        content;
  9.     public static ContentInfo getInstance(
  10.         Object  obj)
  11.     {
  12.         if (obj instanceof ContentInfo)
  13.         {
  14.             return (ContentInfo)obj;
  15.         }
  16.         else if (obj instanceof ASN1Sequence)
  17.         {
  18.             return new ContentInfo((ASN1Sequence)obj);
  19.         }
  20.         throw new IllegalArgumentException("unknown object in factory");
  21.     }
  22.     public ContentInfo(
  23.         ASN1Sequence  seq)
  24.     {
  25.         Enumeration   e = seq.getObjects();
  26.         contentType = (DERObjectIdentifier)e.nextElement();
  27.         if (e.hasMoreElements())
  28.         {
  29.             content = ((DERTaggedObject)e.nextElement()).getObject();
  30.         }
  31.     }
  32.     public ContentInfo(
  33.         DERObjectIdentifier contentType,
  34.         DEREncodable        content)
  35.     {
  36.         this.contentType = contentType;
  37.         this.content = content;
  38.     }
  39.     public DERObjectIdentifier getContentType()
  40.     {
  41.         return contentType;
  42.     }
  43.     public DEREncodable getContent()
  44.     {
  45.         return content;
  46.     }
  47.     /**
  48.      * <pre>
  49.      * ContentInfo ::= SEQUENCE {
  50.      *          contentType ContentType,
  51.      *          content
  52.      *          [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
  53.      * </pre>
  54.      */
  55.     public DERObject getDERObject()
  56.     {
  57.         ASN1EncodableVector  v = new ASN1EncodableVector();
  58.         v.add(contentType);
  59.         if (content != null)
  60.         {
  61.             v.add(new BERTaggedObject(0, content));
  62.         }
  63.         return new BERSequence(v);
  64.     }
  65. }