ASN.1抽象语言标记(Abstract Syntax Notation One) ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式,它提供了一整套正规的格式用于描述对象的结构。
一、该结构的应用场景
例如在做待签名的数字信封时,数字信封使用ASN.1封装,这个时候就需要将签名值转换为ASN.1结果的对象。
以下为SM2签名值的ASN.1结构:
package com.zhangzz.crypto.core.asn1;import com.zhangzz.crypto.core.exception.CommonException;
import org.bouncycastle.asn1.*;import java.math.BigInteger;/*** sm2签名值* @author zhangzz**/
public class SM2Signature extends ASN1Object{private ASN1Integer r;private ASN1Integer s;public SM2Signature(byte[] r, byte[]s) {this.r = new ASN1Integer(new BigInteger(r));this.s = new ASN1Integer(new BigInteger(s));}public static SM2Signature getInstance(Object obj) {if (o