diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/EncryptionUtil.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/EncryptionUtil.java index 143dda91..956a60f7 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/EncryptionUtil.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/EncryptionUtil.java @@ -56,8 +56,6 @@ import javax.crypto.spec.SecretKeySpec; /** * Encryption and decryption minecraft util for connection between servers * and paid Minecraft account clients. - * - * @see net.minecraft.server.MinecraftEncryption */ class EncryptionUtil { @@ -170,7 +168,7 @@ class EncryptionUtil { private static String toSignable(ClientPublicKey clientPublicKey) { long expiry = clientPublicKey.getExpiry().toEpochMilli(); - String encoded = KEY_ENCODER.encodeToString(clientPublicKey.getKey()); + String encoded = KEY_ENCODER.encodeToString(clientPublicKey.getKey().getEncoded()); return expiry + "-----BEGIN RSA PUBLIC KEY-----\n" + encoded + "\n-----END RSA PUBLIC KEY-----\n"; } @@ -195,8 +193,7 @@ class EncryptionUtil { return cipher.doFinal(data); } - private static byte[] getServerIdHash( - String sessionId, PublicKey publicKey, SecretKey sharedSecret) + private static byte[] getServerIdHash(String sessionId, PublicKey publicKey, SecretKey sharedSecret) throws NoSuchAlgorithmException { // byte[] a(String var0, PublicKey var1, SecretKey var2) MessageDigest digest = MessageDigest.getInstance("SHA-1"); diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ProtocolLibListener.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ProtocolLibListener.java index 3c66e7ba..27c03352 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ProtocolLibListener.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/ProtocolLibListener.java @@ -179,7 +179,7 @@ public class ProtocolLibListener extends PacketAdapter { Instant expires = profileKey.getExpireTime(); PublicKey key = profileKey.getKey(); byte[] signature = profileKey.getSignature(); - ClientPublicKey clientKey = new ClientPublicKey(expires, key.getEncoded(), signature); + ClientPublicKey clientKey = new ClientPublicKey(expires, key, signature); try { return EncryptionUtil.verifyClientKey(clientKey, Instant.now()); } catch (SignatureException | InvalidKeyException | NoSuchAlgorithmException ex) { diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/packet/ClientPublicKey.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/packet/ClientPublicKey.java index 495adb10..f14b16f1 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/packet/ClientPublicKey.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/packet/ClientPublicKey.java @@ -25,15 +25,16 @@ */ package com.github.games647.fastlogin.bukkit.listener.protocollib.packet; +import java.security.PublicKey; import java.time.Instant; public class ClientPublicKey { private final Instant expiry; - private final byte[] key; + private final PublicKey key; private final byte[] signature; - public ClientPublicKey(Instant expiry, byte[] key, byte[] signature) { + public ClientPublicKey(Instant expiry, PublicKey key, byte[] signature) { this.expiry = expiry; this.key = key; this.signature = signature; @@ -43,7 +44,7 @@ public class ClientPublicKey { return expiry; } - public byte[] getKey() { + public PublicKey getKey() { return key; } diff --git a/bukkit/src/test/java/com/github/games647/fastlogin/bukkit/listener/protocollib/EncryptionUtilTest.java b/bukkit/src/test/java/com/github/games647/fastlogin/bukkit/listener/protocollib/EncryptionUtilTest.java index 11a52f75..904405ae 100644 --- a/bukkit/src/test/java/com/github/games647/fastlogin/bukkit/listener/protocollib/EncryptionUtilTest.java +++ b/bukkit/src/test/java/com/github/games647/fastlogin/bukkit/listener/protocollib/EncryptionUtilTest.java @@ -117,7 +117,7 @@ public class EncryptionUtilTest { RSAPublicKey publicKey = parsePublicKey(key); byte[] signature = Base64.getDecoder().decode(object.getAsJsonPrimitive("signature").getAsString()); - return new ClientPublicKey(expires, publicKey.getEncoded(), signature); + return new ClientPublicKey(expires, publicKey, signature); } private RSAPublicKey parsePublicKey(String lines) @@ -126,7 +126,6 @@ public class EncryptionUtilTest { Reader reader = new StringReader(lines); PemReader pemReader = new PemReader(reader) ) { - PemObject pemObject = pemReader.readPemObject(); byte[] content = pemObject.getContent(); var pubKeySpec = new X509EncodedKeySpec(content);