Skip to content

Commit 1ce7d5c

Browse files
committed
Moved to manual TDLib build & new package (org.drinkless.tdlib)
1 parent 5940551 commit 1ce7d5c

File tree

375 files changed

+577
-559
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

375 files changed

+577
-559
lines changed

app/jni/CMakeLists.txt

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,16 +127,28 @@ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${ADD_LINKER_FLAGS}"
127127

128128
# tdjni
129129

130-
add_library(tdjni SHARED IMPORTED)
131-
set_target_properties(tdjni PROPERTIES IMPORTED_LOCATION
132-
${TDLIB_DIR}/src/main/libs/${ANDROID_ABI}/libtdjni.so
130+
add_library(crypto SHARED IMPORTED)
131+
set_target_properties(crypto PROPERTIES IMPORTED_LOCATION
132+
${TDLIB_DIR}/openssl/${ANDROID_ABI}/lib/libcrypto.so
133+
)
134+
add_library(ssl SHARED IMPORTED)
135+
set_target_properties(ssl PROPERTIES IMPORTED_LOCATION
136+
${TDLIB_DIR}/openssl/${ANDROID_ABI}/lib/libssl.so
133137
)
134138
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.11.0")
135-
target_include_directories(tdjni INTERFACE
136-
${TDLIB_DIR}/include
139+
target_include_directories(crypto INTERFACE
140+
${TDLIB_DIR}/openssl/${ANDROID_ABI}/include
141+
)
142+
target_include_directories(ssl INTERFACE
143+
${TDLIB_DIR}/openssl/${ANDROID_ABI}/include
137144
)
138145
endif()
139146

147+
add_library(tdjni SHARED IMPORTED)
148+
set_target_properties(tdjni PROPERTIES IMPORTED_LOCATION
149+
${TDLIB_DIR}/src/main/libs/${ANDROID_ABI}/libtdjni.so
150+
)
151+
140152
# flac
141153

142154
ReadVariables(${EXO_FLAC_DIR}/flac_sources.mk)
@@ -914,6 +926,8 @@ target_compile_options(${NATIVE_LIB} PUBLIC
914926
# == Linking dependencies ==
915927

916928
target_link_libraries(${NATIVE_LIB}
929+
crypto
930+
ssl
917931
tdjni
918932
jni-utils
919933
flac

app/jni/tgvoip.cpp

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,68 @@
1414
*/
1515

1616
#include <libtgvoip/VoIPController.h>
17-
#include <tdjni/telegram_crypto.h>
1817
#include <libtgvoip/client/android/tg_voip_jni.h>
1918

19+
#ifdef HAVE_TDLIB_CRYPTO
20+
#include <tdjni/telegram_crypto.h>
21+
#else
22+
23+
extern "C" {
24+
#include <openssl/sha.h>
25+
#include <openssl/aes.h>
26+
#ifndef OPENSSL_IS_BORINGSSL
27+
#include <openssl/modes.h>
28+
#endif
29+
#include <openssl/rand.h>
30+
}
31+
32+
void telegram_aes_ige_encrypt(uint8_t* in, uint8_t* out, size_t length, uint8_t* key, uint8_t* iv){
33+
AES_KEY akey;
34+
AES_set_encrypt_key(key, 32*8, &akey);
35+
AES_ige_encrypt(in, out, length, &akey, iv, AES_ENCRYPT);
36+
}
37+
38+
void telegram_aes_ige_decrypt(uint8_t* in, uint8_t* out, size_t length, uint8_t* key, uint8_t* iv){
39+
AES_KEY akey;
40+
AES_set_decrypt_key(key, 32*8, &akey);
41+
AES_ige_encrypt(in, out, length, &akey, iv, AES_DECRYPT);
42+
}
43+
44+
void telegram_rand_bytes(uint8_t* buffer, size_t len){
45+
RAND_bytes(buffer, len);
46+
}
47+
48+
void telegram_sha1(uint8_t* msg, size_t len, uint8_t* output){
49+
SHA1(msg, len, output);
50+
}
51+
52+
void telegram_sha256(uint8_t* msg, size_t len, uint8_t* output){
53+
SHA256(msg, len, output);
54+
}
55+
56+
void telegram_aes_ctr_encrypt(uint8_t* inout, size_t length, uint8_t* key, uint8_t* iv, uint8_t* ecount, uint32_t* num){
57+
AES_KEY akey;
58+
AES_set_encrypt_key(key, 32*8, &akey);
59+
#ifdef OPENSSL_IS_BORINGSSL
60+
AES_ctr128_encrypt(inout, inout, length, &akey, iv, ecount, num);
61+
#else
62+
CRYPTO_ctr128_encrypt(inout, inout, length, &akey, iv, ecount, num, (block128_f) AES_encrypt);
63+
#endif
64+
}
65+
66+
void telegram_aes_cbc_encrypt(uint8_t* in, uint8_t* out, size_t length, uint8_t* key, uint8_t* iv){
67+
AES_KEY akey;
68+
AES_set_encrypt_key(key, 256, &akey);
69+
AES_cbc_encrypt(in, out, length, &akey, iv, AES_ENCRYPT);
70+
}
71+
72+
void telegram_aes_cbc_decrypt(uint8_t* in, uint8_t* out, size_t length, uint8_t* key, uint8_t* iv){
73+
AES_KEY akey;
74+
AES_set_decrypt_key(key, 256, &akey);
75+
AES_cbc_encrypt(in, out, length, &akey, iv, AES_DECRYPT);
76+
}
77+
#endif
78+
2079
extern "C" {
2180
int voipOnJNILoad(JavaVM *vm, JNIEnv *env) {
2281
tgvoip::VoIPController::crypto.sha1 = &telegram_sha1;
@@ -25,6 +84,10 @@ int voipOnJNILoad(JavaVM *vm, JNIEnv *env) {
2584
tgvoip::VoIPController::crypto.aes_ige_encrypt = &telegram_aes_ige_encrypt;
2685
tgvoip::VoIPController::crypto.aes_ige_decrypt = &telegram_aes_ige_decrypt;
2786
tgvoip::VoIPController::crypto.aes_ctr_encrypt = &telegram_aes_ctr_encrypt;
87+
#ifndef HAVE_TDLIB_CRYPTO
88+
tgvoip::VoIPController::crypto.aes_cbc_decrypt = &telegram_aes_cbc_decrypt;
89+
tgvoip::VoIPController::crypto.aes_cbc_encrypt = &telegram_aes_cbc_encrypt;
90+
#endif
2891
tgvoipRegisterNatives(env);
2992
return 0;
3093
}

app/src/google/java/org/thunderdog/challegram/FirebaseTokenRetriever.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import com.google.firebase.FirebaseApp;
2020
import com.google.firebase.messaging.FirebaseMessaging;
2121

22-
import org.drinkless.td.libcore.telegram.TdApi;
22+
import org.drinkless.tdlib.TdApi;
2323
import org.thunderdog.challegram.util.TokenRetriever;
2424

2525
import java.util.regex.Matcher;

app/src/google/java/org/thunderdog/challegram/service/FirebaseListenerService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import com.google.firebase.messaging.FirebaseMessagingService;
2323
import com.google.firebase.messaging.RemoteMessage;
2424

25-
import org.drinkless.td.libcore.telegram.TdApi;
25+
import org.drinkless.tdlib.TdApi;
2626
import org.thunderdog.challegram.TDLib;
2727
import org.thunderdog.challegram.telegram.TdlibAccount;
2828
import org.thunderdog.challegram.telegram.TdlibManager;

app/src/google/java/org/thunderdog/challegram/ui/MapGoogleController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
import com.google.android.gms.maps.model.Marker;
4343
import com.google.android.gms.maps.model.MarkerOptions;
4444

45-
import org.drinkless.td.libcore.telegram.TdApi;
45+
import org.drinkless.tdlib.TdApi;
4646
import org.thunderdog.challegram.Log;
4747
import org.thunderdog.challegram.R;
4848
import org.thunderdog.challegram.U;

app/src/main/java/org/drinkmore/Tracer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import androidx.annotation.Keep;
1919
import androidx.annotation.Nullable;
2020

21-
import org.drinkless.td.libcore.telegram.Client;
22-
import org.drinkless.td.libcore.telegram.TdApi;
21+
import org.drinkless.tdlib.Client;
22+
import org.drinkless.tdlib.TdApi;
2323
import org.thunderdog.challegram.Log;
2424
import org.thunderdog.challegram.N;
2525
import org.thunderdog.challegram.data.TD;

app/src/main/java/org/thunderdog/challegram/BaseActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
import androidx.annotation.Nullable;
6464
import androidx.collection.SparseArrayCompat;
6565

66-
import org.drinkless.td.libcore.telegram.TdApi;
66+
import org.drinkless.tdlib.TdApi;
6767
import org.drinkmore.Tracer;
6868
import org.thunderdog.challegram.component.attach.MediaLayout;
6969
import org.thunderdog.challegram.component.base.ProgressWrap;
@@ -99,11 +99,11 @@
9999
import org.thunderdog.challegram.telegram.TGLegacyManager;
100100
import org.thunderdog.challegram.telegram.Tdlib;
101101
import org.thunderdog.challegram.telegram.TdlibManager;
102+
import org.thunderdog.challegram.theme.ColorId;
102103
import org.thunderdog.challegram.theme.ColorState;
103104
import org.thunderdog.challegram.theme.PropertyId;
104105
import org.thunderdog.challegram.theme.Theme;
105106
import org.thunderdog.challegram.theme.ThemeChangeListener;
106-
import org.thunderdog.challegram.theme.ColorId;
107107
import org.thunderdog.challegram.theme.ThemeDelegate;
108108
import org.thunderdog.challegram.theme.ThemeListenerList;
109109
import org.thunderdog.challegram.theme.ThemeManager;

app/src/main/java/org/thunderdog/challegram/Log.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
import com.otaliastudios.transcoder.internal.utils.Logger;
2727

28-
import org.drinkless.td.libcore.telegram.TdApi;
28+
import org.drinkless.tdlib.TdApi;
2929
import org.thunderdog.challegram.config.Config;
3030
import org.thunderdog.challegram.core.BaseThread;
3131
import org.thunderdog.challegram.telegram.TdlibManager;

app/src/main/java/org/thunderdog/challegram/MainActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import androidx.annotation.Nullable;
3232
import androidx.collection.SparseArrayCompat;
3333

34-
import org.drinkless.td.libcore.telegram.TdApi;
34+
import org.drinkless.tdlib.TdApi;
3535
import org.thunderdog.challegram.core.Background;
3636
import org.thunderdog.challegram.core.Lang;
3737
import org.thunderdog.challegram.helper.LiveLocationHelper;
@@ -85,8 +85,8 @@
8585
import org.thunderdog.challegram.ui.SettingsPrivacyController;
8686
import org.thunderdog.challegram.ui.SettingsPrivacyKeyController;
8787
import org.thunderdog.challegram.ui.SettingsThemeController;
88-
import org.thunderdog.challegram.util.Crash;
8988
import org.thunderdog.challegram.unsorted.Settings;
89+
import org.thunderdog.challegram.util.Crash;
9090
import org.thunderdog.challegram.widget.GearView;
9191
import org.thunderdog.challegram.widget.NoScrollTextView;
9292

app/src/main/java/org/thunderdog/challegram/TDLib.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
import androidx.annotation.Nullable;
1616

17-
import org.drinkless.td.libcore.telegram.Client;
18-
import org.drinkless.td.libcore.telegram.TdApi;
17+
import org.drinkless.tdlib.Client;
18+
import org.drinkless.tdlib.TdApi;
1919
import org.thunderdog.challegram.telegram.TdlibAccount;
2020
import org.thunderdog.challegram.unsorted.Settings;
2121

0 commit comments

Comments
 (0)