Add commitment index to key transparency monitor requests

This commit is contained in:
Chris Eager
2024-10-23 17:40:18 -05:00
committed by Chris Eager
parent 6552d90dc9
commit c65fe49983
3 changed files with 132 additions and 38 deletions

View File

@@ -168,19 +168,18 @@ public class KeyTransparencyController {
try {
final List<MonitorKey> monitorKeys = new ArrayList<>(List.of(
createMonitorKey(getFullSearchKeyByteString(ACI_PREFIX, request.aci().value().toCompactByteArray()),
request.aci().positions())
request.aci().positions(),
ByteString.copyFrom(request.aci().commitmentIndex()))
));
request.usernameHash().ifPresent(usernameHash ->
monitorKeys.add(createMonitorKey(getFullSearchKeyByteString(USERNAME_PREFIX, usernameHash.value()),
usernameHash.positions()))
);
usernameHash.positions(), ByteString.copyFrom(usernameHash.commitmentIndex()))));
request.e164().ifPresent(e164 ->
monitorKeys.add(
createMonitorKey(getFullSearchKeyByteString(E164_PREFIX, e164.value().getBytes(StandardCharsets.UTF_8)),
e164.positions()))
);
e164.positions(), ByteString.copyFrom(e164.commitmentIndex()))));
return new KeyTransparencyMonitorResponse(keyTransparencyServiceClient.monitor(
monitorKeys,
@@ -252,10 +251,12 @@ public class KeyTransparencyController {
throw new ServerErrorException(Response.Status.INTERNAL_SERVER_ERROR, unwrapped);
}
private static MonitorKey createMonitorKey(final ByteString fullSearchKey, final List<Long> positions) {
private static MonitorKey createMonitorKey(final ByteString fullSearchKey, final List<Long> positions,
final ByteString commitmentIndex) {
return MonitorKey.newBuilder()
.setSearchKey(fullSearchKey)
.addAllEntries(positions)
.setCommitmentIndex(commitmentIndex)
.build();
}