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