getKeyRestorePolicy method

Future<OnboardingStatus> getKeyRestorePolicy(
  1. String atSign
)

Returns OnboardingStatus of the atsign by checking it with remote server.

Implementation

Future<OnboardingStatus> getKeyRestorePolicy(String atSign) async {
  var serverEncryptionPublicKey = await _getServerEncryptionPublicKey(atSign);
  var localEncryptionPublicKey =
      await keyChainManager.getEncryptionPublicKey(atSign);
  if (_isNullOrEmpty(localEncryptionPublicKey) &&
          _isNullOrEmpty(serverEncryptionPublicKey) ||
      (_isNullOrEmpty(serverEncryptionPublicKey) &&
          !(_isNullOrEmpty(localEncryptionPublicKey)))) {
    return OnboardingStatus.ACTIVATE;
  } else if (!_isNullOrEmpty(serverEncryptionPublicKey) &&
      _isNullOrEmpty(localEncryptionPublicKey)) {
    return OnboardingStatus.RESTORE;
  } else if (_isNullOrEmpty(serverEncryptionPublicKey) &&
      !_isNullOrEmpty(localEncryptionPublicKey)) {
    return OnboardingStatus.SYNC_TO_SERVER;
  } else {
    //both keys not null
    if (serverEncryptionPublicKey == localEncryptionPublicKey) {
      return OnboardingStatus.REUSE;
    } else {
      return OnboardingStatus.RESTORE;
    }
  }
}