我想用Asn1结构对ber文件进行编码,我发现了一个仅接受定长格式的代码。
这是我发现的代码,但没有帮助,因为与ber相比,DER形成了一定的长度
因此,如何将ber编码写入包含两种(定,不确定)两种记录的ber文件中
import java.io.ByteArrayInputStream; 导入java.io.IOException;
import org.bouncycastle.asn1.Asn1Encodable;
import org.bouncycastle.asn1.Asn1InputStream;
import org.bouncycastle.asn1.Asn1Primitive;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLSequence;
import org.bouncycastle.asn1.util.Asn1Dump;
public class Tags
{
private Asn1InputStream bIn;
public void tagReader(byte[] f) throws IOException
{
bIn = new Asn1InputStream(new ByteArrayInputStream(f));
DERTaggedObject callEventRecord = (DERTaggedObject) bIn.readObject();
DLSequence sgsnPDPRecord = (DLSequence ) callEventRecord.getObject();
System.out.println("\n\n *********** Output From Tags *********** \n\n");
System.out.println("TAG OUTPUT");
for (int i = 0; i < sgsnPDPRecord.size(); i++)
{
Asn1Encodable seq = sgsnPDPRecord.getObjectAt(i);
System.out.println("SEQUENCE \n"+Asn1Dump.dumpAsString(seq,true));
}
System.out.println("tag \n"+callEventRecord.getTagNo());
Asn1Primitive hexatag = callEventRecord.getObject();
System.out.println("content \n"+Asn1Dump.dumpAsString(hexatag,true));
System.out.println("\n\n ******************** \n\n");
}
}