Write number->pni mapping before checking rrp table
This commit is contained in:
parent
2c163352c3
commit
a99ac14c6a
|
@ -13,6 +13,7 @@ import java.util.concurrent.CompletableFuture;
|
||||||
import org.signal.integration.config.Config;
|
import org.signal.integration.config.Config;
|
||||||
import org.whispersystems.textsecuregcm.metrics.NoopAwsSdkMetricPublisher;
|
import org.whispersystems.textsecuregcm.metrics.NoopAwsSdkMetricPublisher;
|
||||||
import org.whispersystems.textsecuregcm.registration.VerificationSession;
|
import org.whispersystems.textsecuregcm.registration.VerificationSession;
|
||||||
|
import org.whispersystems.textsecuregcm.storage.PhoneNumberIdentifiers;
|
||||||
import org.whispersystems.textsecuregcm.storage.RegistrationRecoveryPasswords;
|
import org.whispersystems.textsecuregcm.storage.RegistrationRecoveryPasswords;
|
||||||
import org.whispersystems.textsecuregcm.storage.RegistrationRecoveryPasswordsManager;
|
import org.whispersystems.textsecuregcm.storage.RegistrationRecoveryPasswordsManager;
|
||||||
import org.whispersystems.textsecuregcm.storage.VerificationSessionManager;
|
import org.whispersystems.textsecuregcm.storage.VerificationSessionManager;
|
||||||
|
@ -27,6 +28,8 @@ public class IntegrationTools {
|
||||||
|
|
||||||
private final VerificationSessionManager verificationSessionManager;
|
private final VerificationSessionManager verificationSessionManager;
|
||||||
|
|
||||||
|
private final PhoneNumberIdentifiers phoneNumberIdentifiers;
|
||||||
|
|
||||||
|
|
||||||
public static IntegrationTools create(final Config config) {
|
public static IntegrationTools create(final Config config) {
|
||||||
final AwsCredentialsProvider credentialsProvider = DefaultCredentialsProvider.builder().build();
|
final AwsCredentialsProvider credentialsProvider = DefaultCredentialsProvider.builder().build();
|
||||||
|
@ -42,19 +45,24 @@ public class IntegrationTools {
|
||||||
|
|
||||||
return new IntegrationTools(
|
return new IntegrationTools(
|
||||||
new RegistrationRecoveryPasswordsManager(registrationRecoveryPasswords),
|
new RegistrationRecoveryPasswordsManager(registrationRecoveryPasswords),
|
||||||
new VerificationSessionManager(verificationSessions)
|
new VerificationSessionManager(verificationSessions),
|
||||||
|
new PhoneNumberIdentifiers(dynamoDbAsyncClient, config.dynamoDbTables().phoneNumberIdentifiers())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IntegrationTools(
|
private IntegrationTools(
|
||||||
final RegistrationRecoveryPasswordsManager registrationRecoveryPasswordsManager,
|
final RegistrationRecoveryPasswordsManager registrationRecoveryPasswordsManager,
|
||||||
final VerificationSessionManager verificationSessionManager) {
|
final VerificationSessionManager verificationSessionManager,
|
||||||
|
final PhoneNumberIdentifiers phoneNumberIdentifiers) {
|
||||||
this.registrationRecoveryPasswordsManager = registrationRecoveryPasswordsManager;
|
this.registrationRecoveryPasswordsManager = registrationRecoveryPasswordsManager;
|
||||||
this.verificationSessionManager = verificationSessionManager;
|
this.verificationSessionManager = verificationSessionManager;
|
||||||
|
this.phoneNumberIdentifiers = phoneNumberIdentifiers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompletableFuture<Void> populateRecoveryPassword(final UUID phoneNumberIdentifier, final byte[] password) {
|
public CompletableFuture<Void> populateRecoveryPassword(final String phoneNumber, final byte[] password) {
|
||||||
return registrationRecoveryPasswordsManager.store(phoneNumberIdentifier, password);
|
return phoneNumberIdentifiers
|
||||||
|
.getPhoneNumberIdentifier(phoneNumber)
|
||||||
|
.thenCompose(pni -> registrationRecoveryPasswordsManager.store(pni, password));
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompletableFuture<Optional<String>> peekVerificationSessionPushChallenge(final String sessionId) {
|
public CompletableFuture<Optional<String>> peekVerificationSessionPushChallenge(final String sessionId) {
|
||||||
|
|
|
@ -78,7 +78,7 @@ public final class Operations {
|
||||||
final TestUser user = TestUser.create(number, accountPassword, registrationPassword);
|
final TestUser user = TestUser.create(number, accountPassword, registrationPassword);
|
||||||
final AccountAttributes accountAttributes = user.accountAttributes();
|
final AccountAttributes accountAttributes = user.accountAttributes();
|
||||||
|
|
||||||
INTEGRATION_TOOLS.populateRecoveryPassword(user.pniUuid(), registrationPassword).join();
|
INTEGRATION_TOOLS.populateRecoveryPassword(number, registrationPassword).join();
|
||||||
|
|
||||||
final ECKeyPair aciIdentityKeyPair = Curve.generateKeyPair();
|
final ECKeyPair aciIdentityKeyPair = Curve.generateKeyPair();
|
||||||
final ECKeyPair pniIdentityKeyPair = Curve.generateKeyPair();
|
final ECKeyPair pniIdentityKeyPair = Curve.generateKeyPair();
|
||||||
|
|
Loading…
Reference in New Issue