blob: ba5292cc9811e0996640689c6b4d8a1db02e786f [file] [log] [blame]
package org.bouncycastle.asn1.pkcs;
import java.math.BigInteger;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.BERSequence;
import org.bouncycastle.asn1.DERInteger;
import org.bouncycastle.asn1.DERObject;
/**
* the infamous Pfx from PKCS12
*/
public class Pfx
extends ASN1Encodable
implements PKCSObjectIdentifiers
{
private ContentInfo contentInfo;
private MacData macData = null;
public Pfx(
ASN1Sequence seq)
{
BigInteger version = ((DERInteger)seq.getObjectAt(0)).getValue();
if (version.intValue() != 3)
{
throw new IllegalArgumentException("wrong version for PFX PDU");
}
contentInfo = ContentInfo.getInstance(seq.getObjectAt(1));
if (seq.size() == 3)
{
macData = MacData.getInstance(seq.getObjectAt(2));
}
}
public Pfx(
ContentInfo contentInfo,
MacData macData)
{
this.contentInfo = contentInfo;
this.macData = macData;
}
public ContentInfo getAuthSafe()
{
return contentInfo;
}
public MacData getMacData()
{
return macData;
}
public DERObject toASN1Object()
{
ASN1EncodableVector v = new ASN1EncodableVector();
v.add(new DERInteger(3));
v.add(contentInfo);
if (macData != null)
{
v.add(macData);
}
return new BERSequence(v);
}
}