SignatureValidator.java
net.minecraft.util.SignatureValidator
信息
- 全限定名:net.minecraft.util.SignatureValidator
- 类型:public interface
- 包:net.minecraft.util
- 源码路径:src/main/java/net/minecraft/util/SignatureValidator.java
- 起始行号:L14
- 职责:
TODO
字段/常量
-
NO_VALIDATION- 类型:
SignatureValidator - 修饰符:
package-private - 源码定位:
L15 - 说明:
TODO
- 类型:
-
LOGGER- 类型:
Logger - 修饰符:
package-private - 源码定位:
L16 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
boolean validate(SignatureUpdater updater, byte[] signature) @ L18
- 方法名:validate
- 源码定位:L18
- 返回类型:boolean
- 修饰符:package-private
参数:
- updater: SignatureUpdater
- signature: byte[]
说明:
TODO
default boolean validate(byte[] payload, byte[] signature) @ L20
- 方法名:validate
- 源码定位:L20
- 返回类型:boolean
- 修饰符:default
参数:
- payload: byte[]
- signature: byte[]
说明:
TODO
private static boolean verifySignature(SignatureUpdater updater, byte[] signature, Signature verifier) @ L24
- 方法名:verifySignature
- 源码定位:L24
- 返回类型:boolean
- 修饰符:private static
参数:
- updater: SignatureUpdater
- signature: byte[]
- verifier: Signature
说明:
TODO
static SignatureValidator from(PublicKey publicKey, String algorithm) @ L29
- 方法名:from
- 源码定位:L29
- 返回类型:SignatureValidator
- 修饰符:static
参数:
- publicKey: PublicKey
- algorithm: String
说明:
TODO
static SignatureValidator from(ServicesKeySet keySet, ServicesKeyType type) @ L42
- 方法名:from
- 源码定位:L42
- 返回类型:SignatureValidator
- 修饰符:static
参数:
- keySet: ServicesKeySet
- type: ServicesKeyType
说明:
TODO
代码
public interface SignatureValidator {
SignatureValidator NO_VALIDATION = (payload, signature) -> true;
Logger LOGGER = LogUtils.getLogger();
boolean validate(SignatureUpdater updater, byte[] signature);
default boolean validate(byte[] payload, byte[] signature) {
return this.validate(output -> output.update(payload), signature);
}
private static boolean verifySignature(SignatureUpdater updater, byte[] signature, Signature verifier) throws SignatureException {
updater.update(verifier::update);
return verifier.verify(signature);
}
static SignatureValidator from(PublicKey publicKey, String algorithm) {
return (updater, signature) -> {
try {
Signature verifier = Signature.getInstance(algorithm);
verifier.initVerify(publicKey);
return verifySignature(updater, signature, verifier);
} catch (Exception var5) {
LOGGER.error("Failed to verify signature", (Throwable)var5);
return false;
}
};
}
static @Nullable SignatureValidator from(ServicesKeySet keySet, ServicesKeyType type) {
Collection<ServicesKeyInfo> keys = keySet.keys(type);
return keys.isEmpty() ? null : (updater, signature) -> keys.stream().anyMatch(key -> {
Signature verifier = key.signature();
try {
return verifySignature(updater, signature, verifier);
} catch (SignatureException var5) {
LOGGER.error("Failed to verify Services signature", (Throwable)var5);
return false;
}
});
}
}引用的其他类
- SignatureUpdater
- 引用位置:
参数
- 引用位置: