ddf8196 / MaterialBinTool

MCBE RenderDragon着色器解包/打包/编译工具
MIT License
102 stars 12 forks source link

替换bouncycastle为JDK自带的实现 #10

Open cuixiang0130 opened 2 months ago

cuixiang0130 commented 2 months ago

在使用JDK 17编译时,bouncycastle 中用到的AccessController.doPrivileged 出现warning,在JDK 17 中Security Manager已被标记为废弃。

Mojang使用的迷之AES-GCM加密去掉了auth tag,直接使用JDK的GCM解密会出错,但因为GCM内部实际使用了CTR模式,在原iv后加上0,0,0,2作为CTR模式的iv即可正常加密和解密。Nukkit就是这么实现的,见https://github.com/CloudburstMC/Protocol/blob/3.0/bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/util/EncryptionUtils.java