Use Lombok to create a record-like struct

This commit is contained in:
games647
2022-07-21 11:19:43 +02:00
parent dd2fca2ea1
commit 9fdbdeaf9a
3 changed files with 10 additions and 56 deletions

View File

@ -241,7 +241,7 @@ public class ProtocolLibListener extends PacketAdapter {
Instant expires = profileKey.getExpireTime();
PublicKey key = profileKey.getKey();
byte[] signature = profileKey.getSignature();
ClientPublicKey clientKey = new ClientPublicKey(expires, key, signature);
ClientPublicKey clientKey = ClientPublicKey.of(expires, key, signature);
try {
if (EncryptionUtil.verifyClientKey(clientKey, Instant.now())) {
return Optional.of(clientKey);

View File

@ -27,62 +27,16 @@ package com.github.games647.fastlogin.bukkit.listener.protocollib.packet;
import java.security.PublicKey;
import java.time.Instant;
import java.util.Arrays;
import java.util.Objects;
import java.util.StringJoiner;
public final class ClientPublicKey {
private final Instant expiry;
private final PublicKey key;
private final byte[] signature;
import lombok.Value;
import lombok.experimental.Accessors;
public ClientPublicKey(Instant expiry, PublicKey key, byte[] signature) {
this.expiry = expiry;
this.key = key;
this.signature = signature;
}
public Instant expiry() {
return expiry;
}
public PublicKey key() {
return key;
}
public byte[] signature() {
return signature;
}
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (obj == null || obj.getClass() != this.getClass()) {
return false;
}
ClientPublicKey that = (ClientPublicKey) obj;
return Objects.equals(this.expiry, that.expiry)
&& Objects.equals(this.key, that.key)
&& Arrays.equals(this.signature, that.signature);
}
@Override
public int hashCode() {
return Objects.hash(expiry, key, signature);
}
@Override
public String toString() {
return new StringJoiner(", ", ClientPublicKey.class.getSimpleName() + "[", "]")
.add("expiry=" + expiry)
.add("key=" + key)
.add("signature=" + Arrays.toString(signature))
.toString();
}
@Accessors(fluent = true)
@Value(staticConstructor = "of")
public class ClientPublicKey {
Instant expiry;
PublicKey key;
byte[] signature;
public boolean isExpired(Instant verifyTimestamp) {
return !verifyTimestamp.isBefore(expiry);

View File

@ -77,7 +77,7 @@ public class ResourceLoader {
RSAPublicKey publicKey = parsePublicKey(key);
byte[] signature = Base64.getDecoder().decode(object.getAsJsonPrimitive("signature").getAsString());
return new ClientPublicKey(expires, publicKey, signature);
return ClientPublicKey.of(expires, publicKey, signature);
}
private static RSAPublicKey parsePublicKey(String keySpec)