如何编写编码Java中每个确定和不确定BER的代码

我想用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");
}
}
iCMS 回答:如何编写编码Java中每个确定和不确定BER的代码

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1886089.html

大家都在问