Commit 1e96a13a authored by Mygod's avatar Mygod Committed by Max Lv
parent b71b27fb
...@@ -26,6 +26,7 @@ include $(CLEAR_VARS) ...@@ -26,6 +26,7 @@ include $(CLEAR_VARS)
SODIUM_SOURCE := \ SODIUM_SOURCE := \
crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c \ crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c \
crypto_aead/xchacha20poly1305/sodium/aead_xchacha20poly1305.c \
crypto_auth/crypto_auth.c \ crypto_auth/crypto_auth.c \
crypto_auth/hmacsha256/auth_hmacsha256_api.c \ crypto_auth/hmacsha256/auth_hmacsha256_api.c \
crypto_auth/hmacsha256/cp/hmac_hmacsha256.c \ crypto_auth/hmacsha256/cp/hmac_hmacsha256.c \
...@@ -48,6 +49,7 @@ SODIUM_SOURCE := \ ...@@ -48,6 +49,7 @@ SODIUM_SOURCE := \
crypto_core/hsalsa20/core_hsalsa20_api.c \ crypto_core/hsalsa20/core_hsalsa20_api.c \
crypto_core/salsa20/ref/core_salsa20.c \ crypto_core/salsa20/ref/core_salsa20.c \
crypto_core/salsa20/core_salsa20_api.c \ crypto_core/salsa20/core_salsa20_api.c \
crypto_core/hchacha20/core_hchacha20.c \
crypto_generichash/crypto_generichash.c \ crypto_generichash/crypto_generichash.c \
crypto_generichash/blake2/generichash_blake2_api.c \ crypto_generichash/blake2/generichash_blake2_api.c \
crypto_generichash/blake2/ref/blake2-impl.h \ crypto_generichash/blake2/ref/blake2-impl.h \
...@@ -120,6 +122,7 @@ SODIUM_SOURCE += \ ...@@ -120,6 +122,7 @@ SODIUM_SOURCE += \
crypto_scalarmult/curve25519/ref10/x25519_ref10.c crypto_scalarmult/curve25519/ref10/x25519_ref10.c
SODIUM_SOURCE += \ SODIUM_SOURCE += \
crypto_pwhash/crypto_pwhash.c \
crypto_pwhash/argon2/argon2-core.c \ crypto_pwhash/argon2/argon2-core.c \
crypto_pwhash/argon2/argon2.c \ crypto_pwhash/argon2/argon2.c \
crypto_pwhash/argon2/argon2-encoding.c \ crypto_pwhash/argon2/argon2-encoding.c \
...@@ -329,8 +332,10 @@ include $(BUILD_SHARED_EXECUTABLE) ...@@ -329,8 +332,10 @@ include $(BUILD_SHARED_EXECUTABLE)
include $(CLEAR_VARS) include $(CLEAR_VARS)
SHADOWSOCKS_SOURCES := local.c cache.c udprelay.c encrypt.c \ SHADOWSOCKS_SOURCES := local.c \
utils.c netutils.c json.c jconf.c acl.c http.c tls.c rule.c \ cache.c udprelay.c utils.c netutils.c json.c jconf.c \
acl.c http.c tls.c rule.c \
crypto.c aead.c stream.c \
plugin.c \ plugin.c \
android.c android.c
...@@ -364,7 +369,11 @@ include $(BUILD_SHARED_EXECUTABLE) ...@@ -364,7 +369,11 @@ include $(BUILD_SHARED_EXECUTABLE)
include $(CLEAR_VARS) include $(CLEAR_VARS)
SHADOWSOCKS_SOURCES := tunnel.c cache.c udprelay.c encrypt.c utils.c netutils.c json.c jconf.c android.c plugin.c SHADOWSOCKS_SOURCES := tunnel.c \
cache.c udprelay.c utils.c netutils.c json.c jconf.c \
crypto.c aead.c stream.c \
plugin.c \
android.c
LOCAL_MODULE := ss-tunnel LOCAL_MODULE := ss-tunnel
LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/src/, $(SHADOWSOCKS_SOURCES)) LOCAL_SRC_FILES := $(addprefix shadowsocks-libev/src/, $(SHADOWSOCKS_SOURCES))
......
Subproject commit 1c2b6170b9ec5443d4a3e211425bc0d5f8e18119 Subproject commit c0030f0d7d74d1197877e093366bbd2713296aaa
...@@ -17,6 +17,9 @@ ...@@ -17,6 +17,9 @@
<item>SALSA20</item> <item>SALSA20</item>
<item>CHACHA20</item> <item>CHACHA20</item>
<item>CHACHA20-IETF</item> <item>CHACHA20-IETF</item>
<item>AES-128-GCM</item>
<item>AES-192-GCM</item>
<item>AES-256-GCM</item>
</string-array> </string-array>
<string-array name="enc_method_value"> <string-array name="enc_method_value">
...@@ -36,6 +39,9 @@ ...@@ -36,6 +39,9 @@
<item>salsa20</item> <item>salsa20</item>
<item>chacha20</item> <item>chacha20</item>
<item>chacha20-ietf</item> <item>chacha20-ietf</item>
<item>aes-128-gcm</item>
<item>aes-192-gcm</item>
<item>aes-256-gcm</item>
</string-array> </string-array>
<string-array name="route_entry"> <string-array name="route_entry">
......
...@@ -36,8 +36,6 @@ ...@@ -36,8 +36,6 @@
<!-- feature category --> <!-- feature category -->
<string name="ipv6">IPv6 Route</string> <string name="ipv6">IPv6 Route</string>
<string name="ipv6_summary">Redirect IPv6 traffic to remote</string> <string name="ipv6_summary">Redirect IPv6 traffic to remote</string>
<string name="onetime_auth">One-time Authentication</string>
<string name="onetime_auth_summary">Enable one-time authentication</string>
<string name="route_list">Route</string> <string name="route_list">Route</string>
<string name="route_entry_all">All</string> <string name="route_entry_all">All</string>
<string name="route_entry_bypass_lan">Bypass LAN</string> <string name="route_entry_bypass_lan">Bypass LAN</string>
......
...@@ -36,10 +36,6 @@ ...@@ -36,10 +36,6 @@
android:entryValues="@array/enc_method_value" android:entryValues="@array/enc_method_value"
android:summary="%s" android:summary="%s"
android:title="@string/enc_method"/> android:title="@string/enc_method"/>
<SwitchPreference
android:key="isAuth"
android:summary="@string/onetime_auth_summary"
android:title="@string/onetime_auth"/>
</be.mygod.preference.PreferenceCategory> </be.mygod.preference.PreferenceCategory>
......
...@@ -325,7 +325,6 @@ trait BaseService extends Service { ...@@ -325,7 +325,6 @@ trait BaseService extends Service {
.put("server_port", profile.remotePort) .put("server_port", profile.remotePort)
.put("password", profile.password) .put("password", profile.password)
.put("method", profile.method) .put("method", profile.method)
if (profile.auth) config.put("auth", true)
if (pluginPath != null) config if (pluginPath != null) config
.put("plugin", Commandline.toString(buildPluginCommandLine())) .put("plugin", Commandline.toString(buildPluginCommandLine()))
.put("plugin_opts", plugin.toString) .put("plugin_opts", plugin.toString)
......
...@@ -77,9 +77,6 @@ class DBHelper(val context: Context) ...@@ -77,9 +77,6 @@ class DBHelper(val context: Context)
} else if (oldVersion < 19) { } else if (oldVersion < 19) {
profileDao.executeRawNoArgs("UPDATE `profile` SET route = 'all' WHERE route IS NULL;") profileDao.executeRawNoArgs("UPDATE `profile` SET route = 'all' WHERE route IS NULL;")
} }
if (oldVersion < 10) {
profileDao.executeRawNoArgs("ALTER TABLE `profile` ADD COLUMN auth SMALLINT;")
}
if (oldVersion < 11) { if (oldVersion < 11) {
profileDao.executeRawNoArgs("ALTER TABLE `profile` ADD COLUMN ipv6 SMALLINT;") profileDao.executeRawNoArgs("ALTER TABLE `profile` ADD COLUMN ipv6 SMALLINT;")
} }
...@@ -89,9 +86,9 @@ class DBHelper(val context: Context) ...@@ -89,9 +86,9 @@ class DBHelper(val context: Context)
TableUtils.createTable(connectionSource, classOf[Profile]) TableUtils.createTable(connectionSource, classOf[Profile])
profileDao.executeRawNoArgs( profileDao.executeRawNoArgs(
"INSERT INTO `profile`(id, name, host, localPort, remotePort, password, method, route, proxyApps, bypass," + "INSERT INTO `profile`(id, name, host, localPort, remotePort, password, method, route, proxyApps, bypass," +
" udpdns, auth, ipv6, individual) " + " udpdns, ipv6, individual) " +
"SELECT id, name, host, localPort, remotePort, password, method, route, 1 - global, bypass, udpdns, auth," + "SELECT id, name, host, localPort, remotePort, password, method, route, 1 - global, bypass, udpdns, ipv6," +
" ipv6, individual FROM `tmp`;") " individual FROM `tmp`;")
profileDao.executeRawNoArgs("DROP TABLE `tmp`;") profileDao.executeRawNoArgs("DROP TABLE `tmp`;")
profileDao.executeRawNoArgs("COMMIT;") profileDao.executeRawNoArgs("COMMIT;")
} else if (oldVersion < 13) { } else if (oldVersion < 13) {
...@@ -127,10 +124,10 @@ class DBHelper(val context: Context) ...@@ -127,10 +124,10 @@ class DBHelper(val context: Context)
profileDao.executeRawNoArgs("ALTER TABLE `profile` RENAME TO `tmp`;") profileDao.executeRawNoArgs("ALTER TABLE `profile` RENAME TO `tmp`;")
TableUtils.createTable(connectionSource, classOf[Profile]) TableUtils.createTable(connectionSource, classOf[Profile])
profileDao.executeRawNoArgs( profileDao.executeRawNoArgs(
"INSERT INTO `profile`(id, name, host, localPort, remotePort, password, method, route, remoteDns, proxyApps," + "INSERT INTO `profile`(id, name, host, localPort, remotePort, password, method, route, remoteDns, " +
" bypass, udpdns, auth, ipv6, individual, tx, rx, date, userOrder, plugin) " + "proxyApps, bypass, udpdns, ipv6, individual, tx, rx, date, userOrder, plugin) " +
"SELECT id, name, host, localPort, CASE WHEN kcp = 1 THEN kcpPort ELSE remotePort END, password, method, " + "SELECT id, name, host, localPort, CASE WHEN kcp = 1 THEN kcpPort ELSE remotePort END, password, method, " +
"route, remoteDns, proxyApps, bypass, udpdns, auth, ipv6, individual, tx, rx, date, userOrder, " + "route, remoteDns, proxyApps, bypass, udpdns, ipv6, individual, tx, rx, date, userOrder, " +
"CASE WHEN kcp = 1 THEN 'kcptun ' || kcpcli ELSE NULL END FROM `tmp`;") "CASE WHEN kcp = 1 THEN 'kcptun ' || kcpcli ELSE NULL END FROM `tmp`;")
profileDao.executeRawNoArgs("DROP TABLE `tmp`;") profileDao.executeRawNoArgs("DROP TABLE `tmp`;")
profileDao.executeRawNoArgs("COMMIT;") profileDao.executeRawNoArgs("COMMIT;")
......
...@@ -68,9 +68,6 @@ class Profile { ...@@ -68,9 +68,6 @@ class Profile {
@DatabaseField @DatabaseField
var udpdns: Boolean = _ var udpdns: Boolean = _
@DatabaseField
var auth: Boolean = _
@DatabaseField @DatabaseField
var ipv6: Boolean = _ var ipv6: Boolean = _
...@@ -96,8 +93,8 @@ class Profile { ...@@ -96,8 +93,8 @@ class Profile {
def nameIsEmpty: Boolean = name == null || name.isEmpty def nameIsEmpty: Boolean = name == null || name.isEmpty
def getName: String = if (nameIsEmpty) formattedAddress else name def getName: String = if (nameIsEmpty) formattedAddress else name
override def toString: String = "ss://" + Base64.encodeToString("%s%s:%s@%s:%d".formatLocal(Locale.ENGLISH, override def toString: String = "ss://" + Base64.encodeToString("%s:%s@%s:%d".formatLocal(Locale.ENGLISH,
method, if (auth) "-auth" else "", password, host, remotePort).getBytes, Base64.NO_PADDING | Base64.NO_WRAP) + method, password, host, remotePort).getBytes, Base64.NO_PADDING | Base64.NO_WRAP) +
(if (TextUtils.isEmpty(name)) "" else '#' + URLEncoder.encode(name, "utf-8")) (if (TextUtils.isEmpty(name)) "" else '#' + URLEncoder.encode(name, "utf-8"))
def isMethodUnsafe: Boolean = "table".equalsIgnoreCase(method) || "rc4".equalsIgnoreCase(method) def isMethodUnsafe: Boolean = "table".equalsIgnoreCase(method) || "rc4".equalsIgnoreCase(method)
...@@ -114,7 +111,6 @@ class Profile { ...@@ -114,7 +111,6 @@ class Profile {
.putBoolean(Key.proxyApps, proxyApps) .putBoolean(Key.proxyApps, proxyApps)
.putBoolean(Key.bypass, bypass) .putBoolean(Key.bypass, bypass)
.putBoolean(Key.udpdns, udpdns) .putBoolean(Key.udpdns, udpdns)
.putBoolean(Key.auth, auth)
.putBoolean(Key.ipv6, ipv6) .putBoolean(Key.ipv6, ipv6)
.putString(Key.individual, individual) .putString(Key.individual, individual)
.putString(Key.plugin, plugin) .putString(Key.plugin, plugin)
...@@ -132,7 +128,6 @@ class Profile { ...@@ -132,7 +128,6 @@ class Profile {
proxyApps = pref.getBoolean(Key.proxyApps, false) proxyApps = pref.getBoolean(Key.proxyApps, false)
bypass = pref.getBoolean(Key.bypass, false) bypass = pref.getBoolean(Key.bypass, false)
udpdns = pref.getBoolean(Key.udpdns, false) udpdns = pref.getBoolean(Key.udpdns, false)
auth = pref.getBoolean(Key.auth, false)
ipv6 = pref.getBoolean(Key.ipv6, false) ipv6 = pref.getBoolean(Key.ipv6, false)
individual = pref.getString(Key.individual, null) individual = pref.getString(Key.individual, null)
plugin = pref.getString(Key.plugin, null) plugin = pref.getString(Key.plugin, null)
......
...@@ -141,7 +141,6 @@ object Key { ...@@ -141,7 +141,6 @@ object Key {
val proxyApps = "isProxyApps" val proxyApps = "isProxyApps"
val bypass = "isBypassApps" val bypass = "isBypassApps"
val udpdns = "isUdpDns" val udpdns = "isUdpDns"
val auth = "isAuth"
val ipv6 = "isIpv6" val ipv6 = "isIpv6"
val host = "proxy" val host = "proxy"
......
...@@ -36,7 +36,6 @@ object Parser { ...@@ -36,7 +36,6 @@ object Parser {
case Some(ss) => case Some(ss) =>
val profile = new Profile val profile = new Profile
profile.method = ss.group(2).toLowerCase profile.method = ss.group(2).toLowerCase
if (ss.group(3) != null) profile.auth = true
profile.password = ss.group(4) profile.password = ss.group(4)
profile.host = ss.group(5) profile.host = ss.group(5)
profile.remotePort = ss.group(6).toInt profile.remotePort = ss.group(6).toInt
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment