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