aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/SharedKeyPacket.h
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
commitb691c43c44ff180d10e7d4a9afc83b98551ff586 (patch)
tree3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.World/SharedKeyPacket.h
parentdef8cb415354ac390b7e89052a50605285f1aca9 (diff)
Initial commit
Diffstat (limited to 'Minecraft.World/SharedKeyPacket.h')
-rw-r--r--Minecraft.World/SharedKeyPacket.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/Minecraft.World/SharedKeyPacket.h b/Minecraft.World/SharedKeyPacket.h
new file mode 100644
index 00000000..4f50ad5c
--- /dev/null
+++ b/Minecraft.World/SharedKeyPacket.h
@@ -0,0 +1,63 @@
+#pragma once
+
+#include "Packet.h"
+
+class SharedKeyPacket : public Packet
+{
+#if 0
+ private byte[] keybytes = new byte[]{};
+ private byte[] nonce = new byte[]{};
+
+ private SecretKey secretKey;
+
+ public SharedKeyPacket() {
+ // Needed
+ }
+
+ public SharedKeyPacket(final SecretKey secretKey, final PublicKey publicKey, final byte[] nonce) {
+ this.secretKey = secretKey;
+ this.keybytes = Crypt.encryptUsingKey(publicKey, secretKey.getEncoded());
+ this.nonce = Crypt.encryptUsingKey(publicKey, nonce);
+ }
+
+ @Override
+ public void read(DataInputStream dis) throws IOException {
+ keybytes = readBytes(dis);
+ nonce = readBytes(dis);
+ }
+
+ @Override
+ public void write(DataOutputStream dos) throws IOException {
+ writeBytes(dos, keybytes);
+ writeBytes(dos, nonce);
+ }
+
+ @Override
+ public void handle(PacketListener listener) {
+ listener.handleSharedKey(this);
+ }
+
+ @Override
+ public int getEstimatedSize() {
+ return 2 + keybytes.length + 2 + nonce.length;
+ }
+
+ public SecretKey getSecretKey(PrivateKey privateKey) {
+ if (privateKey == null) {
+ return secretKey;
+ }
+ return secretKey = Crypt.decryptByteToSecretKey(privateKey, keybytes);
+ }
+
+ public SecretKey getSecretKey() {
+ return getSecretKey(null);
+ }
+
+ public byte[] getNonce(PrivateKey privateKey) {
+ if (privateKey == null) {
+ return nonce;
+ }
+ return Crypt.decryptUsingKey(privateKey, nonce);
+ }
+#endif
+}; \ No newline at end of file