From a11a81f3d49f6345ff1c3719961c62f81d8907de Mon Sep 17 00:00:00 2001 From: ameba23 Date: Tue, 30 Mar 2021 12:05:57 +0200 Subject: [PATCH] backup payload and returned shard payload --- .../briar/api/socialbackup/BackupPayload.java | 6 ++-- .../api/socialbackup/ReturnShardPayload.java | 21 ++++++++++++ .../SocialBackupExchangeManager.java | 33 +++++++++++++++++++ 3 files changed, 57 insertions(+), 3 deletions(-) diff --git a/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/BackupPayload.java b/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/BackupPayload.java index e281cdd9b..466e139f2 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/BackupPayload.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/BackupPayload.java @@ -1,4 +1,4 @@ -package org.briarproject.briar.socialbackup; +package org.briarproject.briar.api.socialbackup; import org.briarproject.bramble.api.Bytes; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; @@ -7,9 +7,9 @@ import javax.annotation.concurrent.Immutable; @Immutable @NotNullByDefault -class BackupPayload extends Bytes { +public class BackupPayload extends Bytes { - BackupPayload(byte[] payload) { + public BackupPayload(byte[] payload) { super(payload); } } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/ReturnShardPayload.java b/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/ReturnShardPayload.java index db317d552..68d51ace4 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/ReturnShardPayload.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/ReturnShardPayload.java @@ -1,4 +1,25 @@ package org.briarproject.briar.api.socialbackup; +import org.briarproject.bramble.api.nullsafety.NotNullByDefault; + +import javax.annotation.concurrent.Immutable; + +@Immutable +@NotNullByDefault public class ReturnShardPayload { + private final Shard shard; + private final BackupPayload backupPayload; + + public ReturnShardPayload(Shard shard, BackupPayload backupPayload) { + this.shard = shard; + this.backupPayload = backupPayload; + } + + public Shard getShard() { + return shard; + } + + public BackupPayload getBackupPayload() { + return backupPayload; + } } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/SocialBackupExchangeManager.java b/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/SocialBackupExchangeManager.java index ba18da9f1..970b8e00d 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/SocialBackupExchangeManager.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/socialbackup/SocialBackupExchangeManager.java @@ -1,4 +1,37 @@ package org.briarproject.briar.api.socialbackup; +import org.briarproject.bramble.api.crypto.SecretKey; +import org.briarproject.bramble.api.db.DbException; +import org.briarproject.bramble.api.nullsafety.NotNullByDefault; +import org.briarproject.bramble.api.plugin.duplex.DuplexTransportConnection; + +import java.io.IOException; + +@NotNullByDefault public interface SocialBackupExchangeManager { + + /** + * Return a shard and encrypted backup to a secret-owner's new device + * @param conn + * @param masterKey + * @param verified + * @throws IOException + * @throws DbException + */ + public void sendReturnShard(DuplexTransportConnection conn, + SecretKey masterKey, + boolean verified) throws IOException, DbException; + + /** + * Receive a returned shard and encrypted backup from a custodian + * @param conn + * @param masterKey + * @param verified + * @return the shard and encrypted backup + * @throws IOException + * @throws DbException + */ + public ReturnShardPayload receiveReturnShard(DuplexTransportConnection conn, + SecretKey masterKey, boolean verified) + throws IOException, DbException; }