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 SM2Cipher extends ASN1Object {//公钥的X值private ASN1Integer x;//公钥的Y值private ASN1Integer y;//加密明文的摘要值private ASN1OctetString hash;//加密后的密文private ASN1OctetString cipherText;//密文长度private ASN1Integer L;public static SM2Cipher getInstance(Object obj) {if(obj inst