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);
 | |
| 			}
 | |
| 		};
 | |
| 	}
 | |
| }
 |