serviceEnvironmentConfig.getKeyBackupConfig().getServiceId(),
serviceEnvironmentConfig.getKeyBackupConfig().getMrenclave(),
10);
- this.pinHelper = new PinHelper(keyBackupService);
+ final var fallbackKeyBackupServices = serviceEnvironmentConfig.getFallbackKeyBackupConfigs()
+ .stream()
+ .map(config -> accountManager.getKeyBackupService(ServiceConfig.getIasKeyStore(),
+ config.getEnclaveName(),
+ config.getServiceId(),
+ config.getMrenclave(),
+ 10))
+ .toList();
+ this.pinHelper = new PinHelper(keyBackupService, fallbackKeyBackupServices);
}
@Override
account.getLocalRegistrationId(),
true,
null,
- account.getPinMasterKey() == null ? null : account.getPinMasterKey().deriveRegistrationLock(),
+ account.getRegistrationLock(),
account.getSelfUnidentifiedAccessKey(),
account.isUnrestrictedUnidentifiedAccess(),
capabilities,
account.isDiscoverableByPhoneNumber(),
- account.getEncryptedDeviceName());
+ account.getEncryptedDeviceName(),
+ account.getLocalPniRegistrationId());
account.setRegistered(true);
logger.info("Reactivated existing account, verify is not necessary.");
if (newManagerListener != null) {
account.getSelfUnidentifiedAccessKey(),
account.isUnrestrictedUnidentifiedAccess(),
ServiceConfig.capabilities,
- account.isDiscoverableByPhoneNumber());
+ account.isDiscoverableByPhoneNumber(),
+ account.getLocalPniRegistrationId());
} else {
return accountManager.verifyAccountWithRegistrationLockPin(verificationCode,
account.getLocalRegistrationId(),
account.getSelfUnidentifiedAccessKey(),
account.isUnrestrictedUnidentifiedAccess(),
ServiceConfig.capabilities,
- account.isDiscoverableByPhoneNumber());
+ account.isDiscoverableByPhoneNumber(),
+ account.getLocalPniRegistrationId());
}
}