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;
|
}
|
}
|