29 lines
763 B
Java
29 lines
763 B
Java
package net.minecraft.util;
|
|
|
|
import com.mojang.logging.LogUtils;
|
|
import java.security.PrivateKey;
|
|
import java.security.Signature;
|
|
import org.slf4j.Logger;
|
|
|
|
public interface Signer {
|
|
Logger LOGGER = LogUtils.getLogger();
|
|
|
|
byte[] sign(SignatureUpdater signatureUpdater);
|
|
|
|
default byte[] sign(byte[] signature) {
|
|
return this.sign(output -> output.update(signature));
|
|
}
|
|
|
|
static Signer from(PrivateKey privateKey, String algorithm) {
|
|
return signatureUpdater -> {
|
|
try {
|
|
Signature signature = Signature.getInstance(algorithm);
|
|
signature.initSign(privateKey);
|
|
signatureUpdater.update(signature::update);
|
|
return signature.sign();
|
|
} catch (Exception var4) {
|
|
throw new IllegalStateException("Failed to sign message", var4);
|
|
}
|
|
};
|
|
}
|
|
}
|