From 820bacc34e20e01720b87c0d3b4a7afe1181340b Mon Sep 17 00:00:00 2001 From: Peter Boraros Date: Wed, 9 Nov 2011 04:56:19 +0100 Subject: [PATCH] Fix byte issues. (it is signed not unsigned) --- src/cz/cvut/keyczar/homework/CrackerCore.java | 15 ++++++--------- src/cz/cvut/keyczar/homework/HmacCracker.java | 6 +++--- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/cz/cvut/keyczar/homework/CrackerCore.java b/src/cz/cvut/keyczar/homework/CrackerCore.java index da7d865..eef581d 100644 --- a/src/cz/cvut/keyczar/homework/CrackerCore.java +++ b/src/cz/cvut/keyczar/homework/CrackerCore.java @@ -5,26 +5,23 @@ import java.util.ArrayList; import java.util.List; public class CrackerCore { - public static byte[] select(List stats) { + public static int[] select(List stats) { // each item of the stats must have length exactly Byte.MAX_VALUE double[] means = Stats.mean(stats); - if (means.length >= Byte.MAX_VALUE) { - throw new RuntimeException("Something gone wrong. Expecting exactly "+ Byte.MAX_VALUE+ " items."); - } + ArrayList idx = new ArrayList(); - ArrayList idx = new ArrayList(); // TODO: implement your code here ************************** - // for each byte test the condition - for (byte i = 0; i< means.length; i++) { + for (int i = 0; i< means.length; i++) { + // for each byte test the condition idx.add(i); } // ********************************************************* if (idx.isEmpty() || idx.size() > 6) return null; - byte[] result = new byte[idx.size()]; - int i = 0; for (byte b : idx) result[i++] = b; + int[] result = new int[idx.size()]; + int i = 0; for (int b : idx) result[i++] = b; return result; } diff --git a/src/cz/cvut/keyczar/homework/HmacCracker.java b/src/cz/cvut/keyczar/homework/HmacCracker.java index 6740c8e..ee85704 100644 --- a/src/cz/cvut/keyczar/homework/HmacCracker.java +++ b/src/cz/cvut/keyczar/homework/HmacCracker.java @@ -70,7 +70,7 @@ public class HmacCracker implements Runnable { } private boolean dfs(byte[] hmac, int ptr) { - byte[] guessed = null; + int[] guessed = null; if (ptr <= this.hmac.length) { guessed = guessNext(message, hmac, ptr, maxIterations, inputStream, outputStream); if (guessed==null) { @@ -92,7 +92,7 @@ public class HmacCracker implements Runnable { return false; } - private byte[] guessNext(byte[] msg, byte[] hmac, int ptr, int maxIt, InputStream is, OutputStream os) { + private int[] guessNext(byte[] msg, byte[] hmac, int ptr, int maxIt, InputStream is, OutputStream os) { List statsPool = new ArrayList(); @@ -124,7 +124,7 @@ public class HmacCracker implements Runnable { statsPool.add(Arrays.copyOf(stats, stats.length)); maxIt--; } - byte[] bestM = CrackerCore.select(statsPool); + int[] bestM = CrackerCore.select(statsPool); if (bestM == null) { bin = bin*2; System.out.print("#"); // we need to collect more stats