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

CA认证

开发平台:

Java

  1. package org.bouncycastle.asn1.pkcs;
  2. import java.io.*;
  3. import java.math.BigInteger;
  4. import org.bouncycastle.asn1.*;
  5. import org.bouncycastle.asn1.util.*;
  6. import org.bouncycastle.util.encoders.*;
  7. /**
  8.  * the infamous Pfx from PKCS12
  9.  */
  10. public class Pfx
  11.     implements DEREncodable, PKCSObjectIdentifiers
  12. {
  13.     private ContentInfo             contentInfo;
  14.     private MacData                 macData = null;
  15.     public Pfx(
  16.         ASN1Sequence   seq)
  17.     {
  18.         BigInteger  version = ((DERInteger)seq.getObjectAt(0)).getValue();
  19.         if (version.intValue() != 3)
  20.         {
  21.             throw new IllegalArgumentException("wrong version for PFX PDU");
  22.         }
  23.         contentInfo = ContentInfo.getInstance(seq.getObjectAt(1));
  24.         if (seq.size() == 3)
  25.         {
  26.             macData = MacData.getInstance(seq.getObjectAt(2));
  27.         }
  28.     }
  29.     public Pfx(
  30.         ContentInfo     contentInfo,
  31.         MacData         macData)
  32.     {
  33.         this.contentInfo = contentInfo;
  34.         this.macData = macData;
  35.     }
  36.     public ContentInfo getAuthSafe()
  37.     {
  38.         return contentInfo;
  39.     }
  40.     public MacData getMacData()
  41.     {
  42.         return macData;
  43.     }
  44.     public DERObject getDERObject()
  45.     {
  46.         BERConstructedSequence   seq = new BERConstructedSequence();
  47.         seq.addObject(new DERInteger(3));
  48.         seq.addObject(contentInfo);
  49.         if (macData != null)
  50.         {
  51.             seq.addObject(macData);
  52.         }
  53.         return seq;
  54.     }
  55. }