From 00de32aa8751b90fa17e5f9bac076d334bfd5066 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Fri, 16 Apr 2021 21:15:29 +0200 Subject: [PATCH] add encoder to ReturnShardPayload --- .../api/socialbackup/ReturnShardPayload.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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 abf927cc1..3b163c4dc 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,15 +1,34 @@ package org.briarproject.briar.api.socialbackup; +import org.briarproject.bramble.api.FormatException; +import org.briarproject.bramble.api.data.BdfList; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import javax.annotation.concurrent.Immutable; +import static org.briarproject.bramble.util.ValidationUtils.checkSize; + @Immutable @NotNullByDefault public class ReturnShardPayload { private final Shard shard; private final BackupPayload backupPayload; + // TODO this does not belong here + private static Shard parseShardMessage(BdfList body) throws FormatException { + // Message type, secret ID, shard + byte[] secretId = body.getRaw(1); + byte[] shard = body.getRaw(2); + return new Shard(secretId, shard); + } + + public static ReturnShardPayload fromList(BdfList body) throws FormatException { + checkSize(body, 2); + Shard shard = parseShardMessage(body.getList(0)); + BackupPayload backupPayload = new BackupPayload(body.getRaw(1)); + return new ReturnShardPayload(shard, backupPayload); + } + public ReturnShardPayload(Shard shard, BackupPayload backupPayload) { this.shard = shard; this.backupPayload = backupPayload;