diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/PrivateMailboxSession.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/PrivateMailboxSession.java index 7ddb31a3661c175cd50cc277542aeb1959103854..933a686ffb18b87c488519202f464f25d3b1e25f 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/PrivateMailboxSession.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/PrivateMailboxSession.java @@ -23,6 +23,7 @@ import java.io.InputStream; import java.net.ProtocolException; import java.util.concurrent.Executor; import java.util.logging.Logger; +import java.util.stream.Stream; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; @@ -113,25 +114,10 @@ public class PrivateMailboxSession extends AbstractMailboxSession { MailboxRequestTake takeRequest = (MailboxRequestTake) request; InputStream in = new ByteArrayInputStream( takeRequest.getEncryptedSyncStream()); - byte[] tag = new byte[TAG_LENGTH]; - StreamContext ctx; try { - // read tag from input stream - int offset = 0; - while (offset < tag.length) { - int read = in.read(tag, offset, tag.length - offset); - if (read == -1) throw new EOFException(); - offset += read; - } - - ctx = - keyManager.getStreamContext(MailboxConstants.ID, tag); - - if (ctx == null) { - throw new ProtocolException( - "Received stream with unrecognisable tag"); - } + + StreamContext ctx = readTag(in); InputStream reader = streamReaderFactory.createStreamReader(in, ctx);