Upload PIN to KBS on successful register.

main
Nicholas 2023-01-10 12:41:50 -05:00 zatwierdzone przez Alex Hart
rodzic e4cc7f5181
commit aa9a530e59
4 zmienionych plików z 10 dodań i 7 usunięć

Wyświetl plik

@ -97,7 +97,12 @@ public final class RegistrationRepository {
{
return Single.<ServiceResponse<VerifyResponse>>fromCallable(() -> {
try {
registerAccountInternal(registrationData, response.getVerifyAccountResponse(), response.getPin(), response.getKbsData());
String pin = response.getPin();
registerAccountInternal(registrationData, response.getVerifyAccountResponse(), pin, response.getKbsData());
if (pin != null && !pin.isEmpty()) {
PinState.onPinChangedOrCreated(context, pin, SignalStore.pinValues().getKeyboardType());
}
JobManager jobManager = ApplicationDependencies.getJobManager();
jobManager.add(new DirectoryRefreshJob(false));

Wyświetl plik

@ -75,10 +75,6 @@ class VerifyAccountRepository(private val context: Application) {
}.subscribeOn(Schedulers.io())
}
fun verifyAccountWithReregistrationData(registrationData: RegistrationData, kbsPinDataProducer: KbsPinDataProducer): Single<ServiceResponse<VerifyResponse>> {
return verifyAccountWithPin(registrationData, "", kbsPinDataProducer)
}
fun verifyAccountWithPin(registrationData: RegistrationData, pin: String, kbsPinDataProducer: KbsPinDataProducer): Single<ServiceResponse<VerifyResponse>> {
val universalUnidentifiedAccess: Boolean = TextSecurePreferences.isUniversalUnidentifiedAccess(context)
val unidentifiedAccessKey: ByteArray = UnidentifiedAccess.deriveAccessKeyFrom(registrationData.profileKey)

Wyświetl plik

@ -6,6 +6,7 @@ import androidx.lifecycle.LiveData;
import androidx.lifecycle.SavedStateHandle;
import androidx.lifecycle.ViewModel;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.pin.KbsRepository;
import org.thoughtcrime.securesms.pin.TokenData;
import org.thoughtcrime.securesms.registration.RequestVerificationCodeResponseProcessor;

Wyświetl plik

@ -111,11 +111,12 @@ public final class RegistrationViewModel extends BaseRegistrationViewModel {
return verifyAccountRepository.verifyAccount(getRegistrationData())
.flatMap(verifyAccountWithoutKbsResponse -> {
VerifyResponseProcessor processor = new VerifyResponseWithoutKbs(verifyAccountWithoutKbsResponse);
String pin = SignalStore.kbsValues().getPin();
if (processor.registrationLock() && SignalStore.kbsValues().getRegistrationLockToken() != null) {
if (processor.registrationLock() && SignalStore.kbsValues().getRegistrationLockToken() != null && pin != null) {
KbsPinData pinData = new KbsPinData(SignalStore.kbsValues().getOrCreateMasterKey(), SignalStore.kbsValues().getRegistrationLockTokenResponse());
return verifyAccountRepository.verifyAccountWithReregistrationData(getRegistrationData(), () -> pinData)
return verifyAccountRepository.verifyAccountWithPin(getRegistrationData(), pin, () -> pinData)
.map(verifyAccountWithPinResponse -> {
if (verifyAccountWithPinResponse.getResult().isPresent() && verifyAccountWithPinResponse.getResult().get().getKbsData() != null) {
return verifyAccountWithPinResponse;