fix: rsa pubkey prioritize stored values
This commit is contained in:
@@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
~~什么我居然开始写更新日志了~~
|
~~什么我居然开始写更新日志了~~
|
||||||
|
|
||||||
|
## 0.2.9
|
||||||
|
|
||||||
|
- 修复: RSA 公钥优先使用已储存的值
|
||||||
|
|
||||||
## 0.2.8
|
## 0.2.8
|
||||||
|
|
||||||
- 新增: 设置 -> 全屏 -> 全屏兼容模式
|
- 新增: 设置 -> 全屏 -> 全屏兼容模式
|
||||||
|
|||||||
@@ -56,8 +56,8 @@ android {
|
|||||||
applicationId = "io.github.miuzarte.scrcpyforandroid"
|
applicationId = "io.github.miuzarte.scrcpyforandroid"
|
||||||
minSdk = 26
|
minSdk = 26
|
||||||
targetSdk = 37
|
targetSdk = 37
|
||||||
versionCode = 24
|
versionCode = 25
|
||||||
versionName = "0.2.8"
|
versionName = "0.2.9"
|
||||||
|
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
cmake {
|
cmake {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package io.github.miuzarte.scrcpyforandroid.nativecore
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.util.Base64
|
import android.util.Base64
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import io.github.miuzarte.scrcpyforandroid.storage.AdbClientData
|
||||||
import io.github.miuzarte.scrcpyforandroid.storage.AppSettings
|
import io.github.miuzarte.scrcpyforandroid.storage.AppSettings
|
||||||
import io.github.miuzarte.scrcpyforandroid.storage.Storage
|
import io.github.miuzarte.scrcpyforandroid.storage.Storage
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
@@ -118,7 +119,11 @@ internal object DirectAdbTransport {
|
|||||||
Base64.decode(privB64, Base64.DEFAULT)
|
Base64.decode(privB64, Base64.DEFAULT)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
val pub = derivePublicX509(priv)
|
val pubB64 = adbClientData.rsaPublicKeyX509.get()
|
||||||
|
val pub =
|
||||||
|
if (pubB64.isNotBlank()) Base64.decode(pubB64, Base64.DEFAULT)
|
||||||
|
else derivePublicX509(priv)
|
||||||
|
|
||||||
Log.i(
|
Log.i(
|
||||||
TAG,
|
TAG,
|
||||||
"loadOrCreate(): loaded persisted RSA key pair from DataStore, " +
|
"loadOrCreate(): loaded persisted RSA key pair from DataStore, " +
|
||||||
@@ -137,15 +142,18 @@ internal object DirectAdbTransport {
|
|||||||
kpg.initialize(2048)
|
kpg.initialize(2048)
|
||||||
val kp = kpg.generateKeyPair()
|
val kp = kpg.generateKeyPair()
|
||||||
|
|
||||||
// 保存到 DataStore
|
|
||||||
val privateKeyB64 = Base64.encodeToString(kp.private.encoded, Base64.NO_WRAP)
|
val privateKeyB64 = Base64.encodeToString(kp.private.encoded, Base64.NO_WRAP)
|
||||||
val publicKeyB64 = Base64.encodeToString(kp.public.encoded, Base64.NO_WRAP)
|
val publicKeyB64 = Base64.encodeToString(kp.public.encoded, Base64.NO_WRAP)
|
||||||
adbClientData.rsaPrivateKey.set(privateKeyB64)
|
adbClientData.saveBundle(
|
||||||
adbClientData.rsaPublicKeyX509.set(publicKeyB64)
|
AdbClientData.Bundle(
|
||||||
|
rsaPrivateKey = privateKeyB64,
|
||||||
|
rsaPublicKeyX509 = publicKeyB64,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
Log.i(
|
Log.i(
|
||||||
TAG,
|
TAG,
|
||||||
"loadOrCreate(): generated new RSA key pair and saved to DataStore, fp=${fingerprint(kp.public.encoded)}"
|
"loadOrCreate(): generated new RSA key pair, fp=${fingerprint(kp.public.encoded)}"
|
||||||
)
|
)
|
||||||
return Pair(kp.private, kp.public.encoded)
|
return Pair(kp.private, kp.public.encoded)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user