package com.doumee.jtt808.web.t808; import io.github.yezhihao.protostar.annotation.Field; import io.github.yezhihao.protostar.annotation.Message; import io.swagger.v3.oas.annotations.media.Schema; import org.yzh.commons.model.APICodes; import org.yzh.commons.model.APIException; import org.yzh.protocol.basics.JTMessage; import org.yzh.protocol.commons.JT808; import java.util.Base64; /** * @author yezhihao * https://gitee.com/yezhihao/jt808-server */ @Message({JT808.平台RSA公钥, JT808.终端RSA公钥}) public class T0A00_8A00 extends JTMessage { @Field(length = 4, desc = "RSA公钥{e,n}中的e") private int e; @Field(length = 128, desc = "RSA公钥{e,n}中的n") private byte[] n; public T0A00_8A00() { } public T0A00_8A00(int e, byte[] n) { this.e = e; this.n = n; } public int getE() { return e; } public void setE(int e) { this.e = e; } public byte[] getN() { return n; } public void setN(byte[] n) { this.n = n; } @Schema(description = "n(BASE64编码)") private String nBase64; public String getnBase64() { return nBase64; } public void setnBase64(String nBase64) { this.nBase64 = nBase64; } public T0A00_8A00 build() { byte[] src = Base64.getDecoder().decode(n); if (src.length == 129) { byte[] dest = new byte[128]; System.arraycopy(src, 1, dest, 0, 128); src = dest; } if (src.length != 128) throw new APIException(APICodes.InvalidParameter, "e length is not 128"); this.n = src; return this; } }