From f68ddf66e9477e0806356bf36b24d429cba95885 Mon Sep 17 00:00:00 2001 From: Ravi Khadiwala Date: Thu, 5 Dec 2024 16:37:46 -0600 Subject: [PATCH] Day align DeviceCheck backup vouchers --- .../textsecuregcm/backup/BackupAuthManager.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/backup/BackupAuthManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/backup/BackupAuthManager.java index 07cb7af7e..f4a762025 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/backup/BackupAuthManager.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/backup/BackupAuthManager.java @@ -249,7 +249,11 @@ public class BackupAuthManager { */ public CompletableFuture extendBackupVoucher(final Account account, final Account.BackupVoucher backupVoucher) { return accountsManager.updateAsync(account, a -> { - final Account.BackupVoucher newPayment = backupVoucher; + // Receipt credential expirations must be day aligned. Make sure any manually set backupVoucher is also day + // aligned + final Account.BackupVoucher newPayment = new Account.BackupVoucher( + backupVoucher.receiptLevel(), + backupVoucher.expiration().truncatedTo(ChronoUnit.DAYS)); final Account.BackupVoucher existingPayment = a.getBackupVoucher(); a.setBackupVoucher(merge(existingPayment, newPayment)); }).thenRun(Util.NOOP);