Red Hat Application Migration Toolkit
package iaik.pkcs.pkcs7;
import iaik.asn1.ASN1Object;
import iaik.asn1.DerCoder;
import iaik.asn1.DerInputStream;
import iaik.asn1.INTEGER;
import iaik.asn1.ObjectID;
import iaik.asn1.SEQUENCE;
import iaik.asn1.structures.AlgorithmID;
import iaik.pkcs.PKCSException;
import iaik.pkcs.PKCSParsingException;
import iaik.pkcs.pkcs7.Content;
import iaik.pkcs.pkcs7.EncryptedContentInfo;
import iaik.pkcs.pkcs7.EncryptedDataStream;
import iaik.utils.InternalErrorException;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.AlgorithmParameters;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.InvalidParameterSpecException;
public class EncryptedData extends EncryptedDataStream implements Content {
// $FF: synthetic field
static Class b;
private EncryptedContentInfo a;
static Class a(String var0) {
try {
return Class.forName(var0);
} catch (ClassNotFoundException var2) {
throw new NoClassDefFoundError(var2.getMessage());
}
}
public String toString(boolean var1) {
StringBuffer var2 = new StringBuffer();
var2.append("Version: " + super.version + "\n");
var2.append("EncryptedContentInfo:\n");
var2.append(this.a.toString());
return var2.toString();
}
protected ASN1Object toASN1Object(int var1) throws PKCSException {
if(var1 <= 0) {
var1 = super.block_size;
}
if(var1 > 0) {
this.a.setBlockSize(var1);
}
SEQUENCE var2 = new SEQUENCE(var1 > 0);
var2.addComponent(new INTEGER(super.version));
var2.addComponent(this.a.toASN1Object());
return var2;
}
public void setupCipher(char[] var1) throws InvalidKeyException, InvalidParameterSpecException, InvalidAlgorithmParameterException, NoSuchAlgorithmException {
AlgorithmID var2 = this.a.getContentEncryptionAlgorithm();
AlgorithmParameters var3 = var2.getAlgorithmParameters("PBE");
AlgorithmParameterSpec var4 = var3.getParameterSpec(b != null?b:(b = a("javax.crypto.spec.PBEParameterSpec")));
Key var5 = this.a(var1, this.a.getContentEncryptionAlgorithm());
this.a.setupCipher(var5, var4);
}
public void setupCipher(AlgorithmID var1, char[] var2, int var3) throws InvalidKeyException, NoSuchAlgorithmException {
try {
AlgorithmParameterSpec var4 = this.a(var1, var3);
Key var5 = this.a(var2, var1);
this.a.setupCipher(var1, var5, var4);
} catch (InvalidAlgorithmParameterException var6) {
throw new InternalErrorException(var6);
} catch (InvalidParameterSpecException var7) {
throw new InternalErrorException(var7);
}
}
public InputStream getInputStream() {
return this.a.getInputStream();
}
public Object getEncryptedContentInfo() {
return this.a;
}
public byte[] getEncoded() throws PKCSException {
try {
ByteArrayOutputStream var1 = new ByteArrayOutputStream();
DerCoder.encodeTo(this.toASN1Object(), var1);
return var1.toByteArray();
} catch (IOException var2) {
throw new PKCSException(var2.getMessage());
}
}
public byte[] getContent() {
return this.a.getContent();
}
public void decode(InputStream var1) throws PKCSParsingException, IOException {
if(!(var1 instanceof DerInputStream)) {
var1 = new DerInputStream((InputStream)var1);
}
DerInputStream var2 = ((DerInputStream)var1).readSequence();
super.version = var2.readInteger().intValue();
this.a = new EncryptedContentInfo();
this.a.decode(var2);
}
public void decode(ASN1Object var1) throws PKCSParsingException {
try {
this.decode((InputStream)(new ByteArrayInputStream(DerCoder.encode(var1))));
} catch (IOException var3) {
throw new PKCSParsingException(var3.getMessage());
}
}
public EncryptedData(byte[] var1) {
this.a = new EncryptedContentInfo(ObjectID.pkcs7_data, var1);
}
public EncryptedData(InputStream var1) throws PKCSParsingException, IOException {
this.decode(var1);
}
public EncryptedData(EncryptedContentInfo var1) {
this();
this.a = var1;
}
public EncryptedData(ASN1Object var1) throws PKCSParsingException {
this.decode(var1);
}
protected EncryptedData() {
}
}