Require PNI-associated keys if the target account has a PNI identity key

This commit is contained in:
Jon Chambers
2023-08-08 17:33:29 -04:00
committed by Jon Chambers
parent 4ec97cf006
commit 1dde612855
2 changed files with 52 additions and 0 deletions

View File

@@ -365,6 +365,12 @@ public class DeviceController {
assert deviceActivationRequest.aciSignedPreKey().isPresent();
assert deviceActivationRequest.aciPqLastResortPreKey().isPresent();
if (account.getPhoneNumberIdentityKey() != null) {
if (deviceActivationRequest.pniSignedPreKey().isEmpty() || deviceActivationRequest.pniPqLastResortPreKey().isEmpty()) {
throw new WebApplicationException(Response.status(422).build());
}
}
final boolean allKeysValid = PreKeySignatureValidator.validatePreKeySignatures(account.getIdentityKey(),
List.of(deviceActivationRequest.aciSignedPreKey().get(), deviceActivationRequest.aciPqLastResortPreKey().get())) &&
deviceActivationRequest.pniSignedPreKey().map(pniSignedPreKey ->