X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/00cda598c849ac0dd5301a961ee4113093b533c8..7c7fc76a649678e9f77f1fcaeaaf4efdf9cc3cd9:/lib/src/main/java/org/asamk/signal/manager/RegistrationManager.java diff --git a/lib/src/main/java/org/asamk/signal/manager/RegistrationManager.java b/lib/src/main/java/org/asamk/signal/manager/RegistrationManager.java index f094ed92..5f4f4463 100644 --- a/lib/src/main/java/org/asamk/signal/manager/RegistrationManager.java +++ b/lib/src/main/java/org/asamk/signal/manager/RegistrationManager.java @@ -2,64 +2,29 @@ package org.asamk.signal.manager; import org.asamk.signal.manager.api.CaptchaRequiredException; import org.asamk.signal.manager.api.IncorrectPinException; +import org.asamk.signal.manager.api.NonNormalizedPhoneNumberException; +import org.asamk.signal.manager.api.PinLockMissingException; import org.asamk.signal.manager.api.PinLockedException; -import org.asamk.signal.manager.config.ServiceConfig; -import org.asamk.signal.manager.config.ServiceEnvironment; -import org.asamk.signal.manager.storage.SignalAccount; -import org.asamk.signal.manager.storage.identities.TrustNewIdentity; -import org.asamk.signal.manager.util.KeyUtils; -import org.whispersystems.libsignal.util.KeyHelper; +import org.asamk.signal.manager.api.RateLimitException; +import org.asamk.signal.manager.api.VerificationMethodNotAvailableException; import java.io.Closeable; -import java.io.File; import java.io.IOException; -import java.util.function.Consumer; public interface RegistrationManager extends Closeable { - static RegistrationManager init( - String number, File settingsPath, ServiceEnvironment serviceEnvironment, String userAgent - ) throws IOException { - return init(number, settingsPath, serviceEnvironment, userAgent, null); - } + void register( + boolean voiceVerification, + String captcha, + final boolean forceRegister + ) throws IOException, CaptchaRequiredException, NonNormalizedPhoneNumberException, RateLimitException, VerificationMethodNotAvailableException; - static RegistrationManager init( - String number, - File settingsPath, - ServiceEnvironment serviceEnvironment, - String userAgent, - Consumer newManagerListener - ) throws IOException { - var pathConfig = PathConfig.createDefault(settingsPath); - - final var serviceConfiguration = ServiceConfig.getServiceEnvironmentConfig(serviceEnvironment, userAgent); - if (!SignalAccount.userExists(pathConfig.dataPath(), number)) { - var identityKey = KeyUtils.generateIdentityKeyPair(); - var registrationId = KeyHelper.generateRegistrationId(false); - - var profileKey = KeyUtils.createProfileKey(); - var account = SignalAccount.create(pathConfig.dataPath(), - number, - identityKey, - registrationId, - profileKey, - TrustNewIdentity.ON_FIRST_USE); - - return new RegistrationManagerImpl(account, - pathConfig, - serviceConfiguration, - userAgent, - newManagerListener); - } - - var account = SignalAccount.load(pathConfig.dataPath(), number, true, TrustNewIdentity.ON_FIRST_USE); - - return new RegistrationManagerImpl(account, pathConfig, serviceConfiguration, userAgent, newManagerListener); - } + void verifyAccount( + String verificationCode, + String pin + ) throws IOException, PinLockedException, IncorrectPinException, PinLockMissingException; - void register(boolean voiceVerification, String captcha) throws IOException, CaptchaRequiredException; + void deleteLocalAccountData() throws IOException; - void verifyAccount( - String verificationCode, String pin - ) throws IOException, PinLockedException, IncorrectPinException; + boolean isRegistered(); }