getKeyRestorePolicy method
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;
}
}
}