Red Hat Application Migration Toolkit
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")));
}
}