Information

0
Story Points

Technologies

Decompiled Java File
package iaik.pkcs.pkcs7;

import iaik.asn1.ASN1Object;
import iaik.asn1.CON_SPEC;
import iaik.asn1.DerCoder;
import iaik.asn1.DerInputStream;
import iaik.asn1.ObjectID;
import iaik.asn1.SEQUENCE;
import iaik.pkcs.PKCSException;
import iaik.pkcs.PKCSParsingException;
import iaik.pkcs.pkcs7.Content;
import iaik.pkcs.pkcs7.c;
import iaik.utils.TracedInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class ContentInfo {
   // $FF: synthetic field
   static Class k;
   // $FF: synthetic field
   static Class h;
   // $FF: synthetic field
   static Class f;
   // $FF: synthetic field
   static Class g;
   // $FF: synthetic field
   static Class e;
   // $FF: synthetic field
   static Class i;
   // $FF: synthetic field
   static Class j;
   byte[] b;
   Content d;
   ObjectID c;
   private static c a = new c();

   static Class a(String var0) {
      try {
         return Class.forName(var0);
      } catch (ClassNotFoundException var2) {
         throw new NoClassDefFoundError(var2.getMessage());
      }
   }

   public void writeTo(OutputStream var1) throws PKCSException, IOException {
      DerCoder.encodeTo(this.toASN1Object(), var1);
   }

   public String toString(boolean var1) {
      StringBuffer var2 = new StringBuffer();
      var2.append("ContentType: " + this.c.getName() + " {\n");
      if(this.d == null) {
         var2.append("No content!\n");
      } else {
         var2.append(this.d.toString(var1) + "\n}");
      }

      return var2.toString();
   }

   public String toString() {
      return this.toString(false);
   }

   public byte[] toByteArray() throws PKCSException {
      try {
         ByteArrayOutputStream var1 = new ByteArrayOutputStream();
         DerCoder.encodeTo(this.toASN1Object(), var1);
         return var1.toByteArray();
      } catch (IOException var2) {
         throw new PKCSException(var2.getMessage());
      }
   }

   public ASN1Object toASN1Object() throws PKCSException {
      if(this.c == null) {
         throw new PKCSException("Cannot create ASN.1 object. At least the content type must be set!");
      } else {
         boolean var1 = true;
         if(this.d == null) {
            var1 = false;
         } else {
            var1 = this.d.getBlockSize() > 0;
         }

         SEQUENCE var2 = new SEQUENCE(var1);
         var2.addComponent(this.c);
         if(this.d != null) {
            CON_SPEC var3 = new CON_SPEC(0, this.d.toASN1Object());
            var3.setIndefiniteLength(var1);
            var2.addComponent(var3);
         }

         return var2;
      }
   }

   public void setContent(Content var1) {
      this.c = var1.getContentType();
      this.d = var1;
   }

   public static void register(ObjectID var0, Class var1) {
      a.register(k != null?k:(k = a("iaik.pkcs.pkcs7.Content")), var0, var1);
   }

   public boolean hasContent() {
      return this.d != null;
   }

   public ObjectID getContentType() {
      return this.c;
   }

   public InputStream getContentInputStream() {
      return this.b == null?null:new ByteArrayInputStream(this.b);
   }

   public Content getContent() {
      return this.d;
   }

   public void destroyCriticalData() {
   }

   protected void decode(DerInputStream var1) throws PKCSParsingException, IOException {
      DerInputStream var2 = var1.readSequence();
      this.c = var2.readObjectID();
      if(var2.nextTag() == -1) {
         this.d = null;
      } else {
         DerInputStream var3 = var2.readContextSpecific();

         try {
            this.d = create(this.c);
         } catch (PKCSException var5) {
            throw new PKCSParsingException(var5.getMessage());
         }

         TracedInputStream var4 = new TracedInputStream(var3);
         this.d.decode(var4);
         this.b = var4.getTracedData();
         var3.nextTag();
      }
   }

   public static Content create(ObjectID var0, ASN1Object var1) throws PKCSParsingException {
      try {
         Content var2 = create(var0);
         var2.decode(var1);
         return var2;
      } catch (PKCSException var3) {
         throw new PKCSParsingException(var3.getMessage());
      }
   }

   public static Content create(ObjectID var0) throws PKCSException {
      try {
         return (Content)a.create(k != null?k:(k = a("iaik.pkcs.pkcs7.Content")), var0, false);
      } catch (InstantiationException var1) {
         throw new PKCSException("No PKCS#7 type registered for the given object ID!");
      }
   }

   public ContentInfo(InputStream var1) throws PKCSParsingException, IOException {
      if(var1 instanceof DerInputStream) {
         this.decode((DerInputStream)var1);
      } else {
         this.decode(new DerInputStream(var1));
      }
   }

   public ContentInfo(Content var1) {
      this.c = var1.getContentType();
      this.d = var1;
   }

   public ContentInfo(ObjectID var1) {
      this.c = var1;
      this.d = null;
   }

   public ContentInfo(ASN1Object var1) throws PKCSParsingException {
      ByteArrayInputStream var2 = new ByteArrayInputStream(DerCoder.encode(var1));

      try {
         this.decode(new DerInputStream(var2));
      } catch (IOException var4) {
         throw new PKCSParsingException("Error parsing ContentInfo: " + var4.getMessage());
      }
   }

   private ContentInfo() {
   }

   static {
      register(ObjectID.pkcs7_data, j != null?j:(j = a("iaik.pkcs.pkcs7.Data")));
      register(ObjectID.pkcs7_digestedData, i != null?i:(i = a("iaik.pkcs.pkcs7.DigestedData")));
      register(ObjectID.pkcs7_signedData, e != null?e:(e = a("iaik.pkcs.pkcs7.SignedData")));
      register(ObjectID.pkcs7_envelopedData, g != null?g:(g = a("iaik.pkcs.pkcs7.EnvelopedData")));
      register(ObjectID.pkcs7_signedAndEnvelopedData, f != null?f:(f = a("iaik.pkcs.pkcs7.SignedAndEnvelopedData")));
      register(ObjectID.pkcs7_encryptedData, h != null?h:(h = a("iaik.pkcs.pkcs7.EncryptedData")));
   }
}
Page generated: Oct 19, 2017 2:34:47 PM