From 961fbddd637fe3fc38d24b1bd16c2327fa7d79bb Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sun, 18 Jul 2021 15:38:56 +0800 Subject: [PATCH] feat: add pgp finterprint --- .../me/hatter/tools/tinyencrypt/TinyEncryptMain.java | 11 ++++++++++- .../tools/tinyencrypt/config/TinyEncryptConstant.java | 2 +- .../tools/tinyencrypt/encrypt/TinyEncryptMeta.java | 9 +++++++++ .../tinyencrypt/encrypt/TinyEncryptMetaUtil.java | 2 ++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/hatter/tools/tinyencrypt/TinyEncryptMain.java b/src/main/java/me/hatter/tools/tinyencrypt/TinyEncryptMain.java index 59a7ad4..835963f 100644 --- a/src/main/java/me/hatter/tools/tinyencrypt/TinyEncryptMain.java +++ b/src/main/java/me/hatter/tools/tinyencrypt/TinyEncryptMain.java @@ -1,6 +1,7 @@ package me.hatter.tools.tinyencrypt; import com.alibaba.fastjson.JSON; +import me.hatter.tools.commons.bytes.ByteUtil; import me.hatter.tools.commons.bytes.Bytes; import me.hatter.tools.commons.exception.JumpOutException; import me.hatter.tools.commons.io.RFile; @@ -95,7 +96,10 @@ public class TinyEncryptMain { sb.append("\n"); sb.append("File version: ").append(meta.getVersion()).append("\n"); if (meta.getFileLength() != null) { - sb.append("File size: ").append(meta.getFileLength()).append("\n"); + sb.append("File size: ").append(meta.getFileLength()) + .append(" (") + .append(ByteUtil.formatBytes(meta.getFileLength())) + .append(")\n"); } if (meta.getFileLastModified() != null) { sb.append("Last modified: ") @@ -110,6 +114,11 @@ public class TinyEncryptMain { } else { sb.append("PGP envelop: NO\n"); } + if (StringUtil.isNotBlank(meta.getPgpFingerprint())) { + sb.append("PGP fingerprint: ") + .append(meta.getPgpFingerprint()) + .append("\n"); + } sb.append("Agent: ").append(meta.getUserAgent()); if (StringUtil.isNotBlank(meta.getComment())) { sb.append("Comment: ").append(meta.getComment()).append("\n"); diff --git a/src/main/java/me/hatter/tools/tinyencrypt/config/TinyEncryptConstant.java b/src/main/java/me/hatter/tools/tinyencrypt/config/TinyEncryptConstant.java index 15f4428..57b8fdf 100644 --- a/src/main/java/me/hatter/tools/tinyencrypt/config/TinyEncryptConstant.java +++ b/src/main/java/me/hatter/tools/tinyencrypt/config/TinyEncryptConstant.java @@ -1,7 +1,7 @@ package me.hatter.tools.tinyencrypt.config; public class TinyEncryptConstant { - public static final String VERSION = "0.3.7"; + public static final String VERSION = "0.3.8"; public static final String ENC_FILE_EXT = ".tinyenc"; } diff --git a/src/main/java/me/hatter/tools/tinyencrypt/encrypt/TinyEncryptMeta.java b/src/main/java/me/hatter/tools/tinyencrypt/encrypt/TinyEncryptMeta.java index 9c36022..76e2ece 100644 --- a/src/main/java/me/hatter/tools/tinyencrypt/encrypt/TinyEncryptMeta.java +++ b/src/main/java/me/hatter/tools/tinyencrypt/encrypt/TinyEncryptMeta.java @@ -8,6 +8,7 @@ public class TinyEncryptMeta { private String userAgent; private String comment; private String pgpEnvelop; + private String pgpFingerprint; private String envelop; @JSONField(serialize = false) private byte[] dataKey; @@ -56,6 +57,14 @@ public class TinyEncryptMeta { this.pgpEnvelop = pgpEnvelop; } + public String getPgpFingerprint() { + return pgpFingerprint; + } + + public void setPgpFingerprint(String pgpFingerprint) { + this.pgpFingerprint = pgpFingerprint; + } + public String getEnvelop() { return envelop; } diff --git a/src/main/java/me/hatter/tools/tinyencrypt/encrypt/TinyEncryptMetaUtil.java b/src/main/java/me/hatter/tools/tinyencrypt/encrypt/TinyEncryptMetaUtil.java index 8599857..1bfe404 100644 --- a/src/main/java/me/hatter/tools/tinyencrypt/encrypt/TinyEncryptMetaUtil.java +++ b/src/main/java/me/hatter/tools/tinyencrypt/encrypt/TinyEncryptMetaUtil.java @@ -8,6 +8,7 @@ import me.hatter.tools.commons.log.LogTool; import me.hatter.tools.commons.log.LogTools; import me.hatter.tools.commons.network.HttpRequest; import me.hatter.tools.commons.os.OSUtil; +import me.hatter.tools.commons.security.digest.Digests; import me.hatter.tools.commons.security.key.KeyUtil; import me.hatter.tools.commons.security.random.RandomTool; import me.hatter.tools.commons.security.rsa.RSAUtil; @@ -101,6 +102,7 @@ public class TinyEncryptMetaUtil { if (pgpEncryptPublicKey instanceof RSAPublicKey) { byte[] pgpEnvelop = RSAUtil.encrypt((RSAPublicKey) pgpEncryptPublicKey, dataKey); tinyEncryptMeta.setPgpEnvelop(Base64.getEncoder().encodeToString(pgpEnvelop)); + tinyEncryptMeta.setPgpFingerprint(Digests.sha256().digest(pgpEncryptPublicKey.getEncoded()).asHex()); } else { log.warn("PGP encrypt public key is not RSAPublicKey: " + pgpEncryptPublicKey.getClass()); }