diff --git a/components/net/sf/briar/transport/TagEncoder.java b/components/net/sf/briar/transport/TagEncoder.java index dca0c60de..008ff2b35 100644 --- a/components/net/sf/briar/transport/TagEncoder.java +++ b/components/net/sf/briar/transport/TagEncoder.java @@ -28,13 +28,10 @@ class TagEncoder { if(tag.length < TAG_LENGTH) throw new IllegalArgumentException(); try { tagCipher.init(Cipher.DECRYPT_MODE, tagKey); - byte[] plaintext = tagCipher.doFinal(tag, 0, TAG_LENGTH); - if(plaintext.length != TAG_LENGTH) - throw new IllegalArgumentException(); + int decrypted = tagCipher.doFinal(tag, 0, TAG_LENGTH, tag); + if(decrypted != TAG_LENGTH) throw new IllegalArgumentException(); //The plaintext should be blank - for(int i = 0; i < TAG_LENGTH; i++) { - if(plaintext[i] != 0) return false; - } + for(int i = 0; i < TAG_LENGTH; i++) if(tag[i] != 0) return false; return true; } catch(GeneralSecurityException e) { // Unsuitable cipher or key diff --git a/test/build.xml b/test/build.xml index f905a6999..311bada18 100644 --- a/test/build.xml +++ b/test/build.xml @@ -22,7 +22,6 @@ - @@ -78,6 +77,7 @@ + diff --git a/test/net/sf/briar/transport/FrameReadWriteTest.java b/test/net/sf/briar/transport/FrameReadWriteTest.java index 62e275873..97af64c4b 100644 --- a/test/net/sf/briar/transport/FrameReadWriteTest.java +++ b/test/net/sf/briar/transport/FrameReadWriteTest.java @@ -89,7 +89,7 @@ public class FrameReadWriteTest extends BriarTestCase { byte[] recoveredTag = new byte[TAG_LENGTH]; assertEquals(TAG_LENGTH, in.read(recoveredTag)); assertArrayEquals(tag, recoveredTag); - assertTrue(TagEncoder.decodeTag(tag, tagCipher, tagKey)); + assertTrue(TagEncoder.decodeTag(recoveredTag, tagCipher, tagKey)); // Read the frames back FrameReader encryptionIn = new IncomingEncryptionLayerImpl(in, tagCipher, frameCipher, tagKey, frameKey, false);