From a5ffeae757d9fbb81efa87b1bae49ca5175f4007 Mon Sep 17 00:00:00 2001 From: md_5 Date: Thu, 29 Jun 2017 08:52:13 +1000 Subject: [PATCH] Replace OpenSSL native cipher with static mbed TLS for maximum compat --- native/src/main/c/NativeCipherImpl.cpp | 38 +++++++++++++----- native/src/main/resources/native-cipher.so | Bin 8384 -> 29315 bytes .../net/md_5/bungee/NativeCipherTest.java | 8 ++-- .../main/java/net/md_5/bungee/BungeeCord.java | 8 ++-- 4 files changed, 37 insertions(+), 17 deletions(-) diff --git a/native/src/main/c/NativeCipherImpl.cpp b/native/src/main/c/NativeCipherImpl.cpp index cff3dea4..cfe5f089 100644 --- a/native/src/main/c/NativeCipherImpl.cpp +++ b/native/src/main/c/NativeCipherImpl.cpp @@ -1,25 +1,45 @@ -#include +#include +#include + +#include #include "net_md_5_bungee_jni_cipher_NativeCipherImpl.h" typedef unsigned char byte; +struct crypto_context { + int mode; + mbedtls_aes_context cipher; + byte *key; +}; + jlong JNICALL Java_net_md_15_bungee_jni_cipher_NativeCipherImpl_init(JNIEnv* env, jobject obj, jboolean forEncryption, jbyteArray key) { + jsize keyLen = env->GetArrayLength(key); jbyte *keyBytes = env->GetByteArrayElements(key, NULL); - // TODO: Perhaps we need to throw some exceptions in the unlikely event this fails? - EVP_CIPHER_CTX *cipherCtx = EVP_CIPHER_CTX_new(); - EVP_CipherInit(cipherCtx, EVP_aes_128_cfb8(), (byte*) keyBytes, (byte*) keyBytes, forEncryption); + crypto_context *crypto = (crypto_context*) malloc(sizeof (crypto_context)); + mbedtls_aes_init(&crypto->cipher); + + mbedtls_aes_setkey_enc(&crypto->cipher, (byte*) keyBytes, keyLen * 8); + + crypto->key = (byte*) malloc(keyLen); + memcpy(crypto->key, keyBytes, keyLen); + + crypto->mode = (forEncryption) ? MBEDTLS_AES_ENCRYPT : MBEDTLS_AES_DECRYPT; env->ReleaseByteArrayElements(key, keyBytes, JNI_ABORT); - return (jlong) cipherCtx; + return (jlong) crypto; } void Java_net_md_15_bungee_jni_cipher_NativeCipherImpl_free(JNIEnv* env, jobject obj, jlong ctx) { - // TODO: Perhaps we need to throw some exceptions in the unlikely event this fails? - EVP_CIPHER_CTX_free((EVP_CIPHER_CTX*) ctx); + crypto_context *crypto = (crypto_context*) ctx; + + mbedtls_aes_free(&crypto->cipher); + free(crypto->key); + free(crypto); } void Java_net_md_15_bungee_jni_cipher_NativeCipherImpl_cipher(JNIEnv* env, jobject obj, jlong ctx, jlong in, jlong out, jint length) { - // TODO: Perhaps we need to throw some exceptions in the unlikely event this fails? - EVP_CipherUpdate((EVP_CIPHER_CTX*) ctx, (byte*) out, &length, (byte*) in, length); + crypto_context *crypto = (crypto_context*) ctx; + + mbedtls_aes_crypt_cfb8(&crypto->cipher, crypto->mode, length, crypto->key, (byte*) in, (byte*) out); } diff --git a/native/src/main/resources/native-cipher.so b/native/src/main/resources/native-cipher.so index d50d7bbc08b308d99be65083de935d4558982e52..de786fe1faa4d175d88fca216bb4d72bbdcc6f03 100755 GIT binary patch literal 29315 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 literal 8384 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 factory = new NativeCode( "native-cipher", JavaCipher.class, NativeCipher.class ); @Test - public void testOpenSSL() throws Exception + public void testNative() throws Exception { if ( NativeCode.isSupported() ) { @@ -37,13 +37,13 @@ public class NativeCipherTest Assert.assertTrue( "Native cipher failed to load!", loaded ); NativeCipher cipher = new NativeCipher(); - System.out.println( "Testing OpenSSL cipher..." ); + System.out.println( "Testing native cipher..." ); testACipher( cipher ); } } @Test - public void testOpenSSLBenchmark() throws Exception + public void testNativeBenchmark() throws Exception { if ( NativeCode.isSupported() ) { @@ -52,7 +52,7 @@ public class NativeCipherTest NativeCipher cipher = new NativeCipher(); - System.out.println( "Benchmarking OpenSSL cipher..." ); + System.out.println( "Benchmarking native cipher..." ); testBenchmark( cipher ); } } diff --git a/proxy/src/main/java/net/md_5/bungee/BungeeCord.java b/proxy/src/main/java/net/md_5/bungee/BungeeCord.java index 653a4720..84d8ce39 100644 --- a/proxy/src/main/java/net/md_5/bungee/BungeeCord.java +++ b/proxy/src/main/java/net/md_5/bungee/BungeeCord.java @@ -220,17 +220,17 @@ public class BungeeCord extends ProxyServer { if ( EncryptionUtil.nativeFactory.load() ) { - logger.info( "Using OpenSSL based native cipher." ); + logger.info( "Using mbed TLS based native cipher." ); } else { - logger.info( "Using standard Java JCE cipher. To enable the OpenSSL based native cipher, please make sure you are using 64 bit Ubuntu or Debian with libssl installed." ); + logger.info( "Using standard Java JCE cipher." ); } if ( CompressFactory.zlib.load() ) { - logger.info( "Using native code compressor" ); + logger.info( "Using zlib based native compressor." ); } else { - logger.info( "Using standard Java compressor. To enable zero copy compression, run on 64 bit Linux" ); + logger.info( "Using standard Java compressor." ); } } }