From a08966d8ec5a163371af578c2cb34f081e8df7bd Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Wed, 25 Jul 2018 17:39:27 +0200 Subject: [PATCH] Fix message packing --- .../github/lonamiwebs/overgram/network/MTProtoState.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/src/main/java/io/github/lonamiwebs/overgram/network/MTProtoState.java b/lib/src/main/java/io/github/lonamiwebs/overgram/network/MTProtoState.java index 18bae40..7efc6ba 100644 --- a/lib/src/main/java/io/github/lonamiwebs/overgram/network/MTProtoState.java +++ b/lib/src/main/java/io/github/lonamiwebs/overgram/network/MTProtoState.java @@ -38,8 +38,8 @@ public class MTProtoState { private Pair calcKey(final byte[] msgKey, final boolean client) { final int x = client ? 0 : 8; - final byte[] sha256a = Utils.sha256digest(msgKey, ByteBuffer.wrap(authKey.key, x, 36).array()); - final byte[] sha256b = Utils.sha256digest(ByteBuffer.wrap(authKey.key, x + 40, 36).array(), msgKey); + final byte[] sha256a = Utils.sha256digest(msgKey, Arrays.copyOfRange(authKey.key, x, x + 36)); + final byte[] sha256b = Utils.sha256digest(Arrays.copyOfRange(authKey.key, x + 40, x + 76), msgKey); final BinaryWriter writer = new BinaryWriter(32); writer.writeRaw(sha256a, 0, 8); @@ -61,9 +61,7 @@ public class MTProtoState { writer.write(message); int padding = writer.size() % 16; - if (padding != 0) { - writer.writeRaw(Utils.randomBytes(16 - padding)); - } + writer.writeRaw(Utils.randomBytes(32 - padding)); final byte[] paddedData = writer.toBytes(); writer.clear();