Skip to content

Commit

Permalink
Showing 8 changed files with 18 additions and 31 deletions.
22 changes: 12 additions & 10 deletions core/src/main/java/org/jruby/ext/digest/BubbleBabble.java
Original file line number Diff line number Diff line change
@@ -39,7 +39,7 @@ public static ByteList bubblebabble(byte[] message, int begin, int length) {
char[] consonants = new char[]{'b', 'c', 'd', 'f', 'g', 'h', 'k', 'l', 'm',
'n', 'p', 'r', 's', 't', 'v', 'z', 'x'};

int seed = 1;
long seed = 1;

ByteList retval = new ByteList();

@@ -49,26 +49,28 @@ public static ByteList bubblebabble(byte[] message, int begin, int length) {
int idx0, idx1, idx2, idx3, idx4;

if ((i + 1 < rounds) || (length % 2 != 0)) {
idx0 = (((((int) (message[begin + 2 * i])) >> 6) & 3) + seed) % 6;
idx1 = (((int) (message[begin + 2 * i])) >> 2) & 15;
idx2 = ((((int) (message[begin + 2 * i])) & 3) + (seed / 6)) % 6;
long b = message[begin + 2 * i] & 0xFF;
idx0 = (int) ((((b >> 6) & 3) + seed) % 6) & 0xFFFFFFFF;
idx1 = (int) (((b) >> 2) & 15) & 0xFFFFFFFF;
idx2 = (int) (((b & 3) + (seed / 6)) % 6) & 0xFFFFFFFF;
retval.append(vowels[idx0]);
retval.append(consonants[idx1]);
retval.append(vowels[idx2]);
if ((i + 1) < rounds) {
idx3 = (((int) (message[begin + (2 * i) + 1])) >> 4) & 15;
idx4 = (((int) (message[begin + (2 * i) + 1]))) & 15;
long b2 = message[begin + (2 * i) + 1] & 0xFF;
idx3 = (int) ((b2 >> 4) & 15) & 0xFFFFFFFF;
idx4 = (int) ((b2) & 15) & 0xFFFFFFFF;
retval.append(consonants[idx3]);
retval.append('-');
retval.append(consonants[idx4]);
seed = ((seed * 5) +
((((int) (message[begin + 2 * i])) * 7) +
((int) (message[begin + (2 * i) + 1])))) % 36;
((b * 7) +
b2)) % 36;
}
} else {
idx0 = seed % 6;
idx0 = (int) (seed % 6) & 0xFFFFFFFF;
idx1 = 16;
idx2 = seed / 6;
idx2 = (int) (seed / 6) & 0xFFFFFFFF;
retval.append(vowels[idx0]);
retval.append(consonants[idx1]);
retval.append(vowels[idx2]);
6 changes: 6 additions & 0 deletions core/src/main/java/org/jruby/ext/digest/RubyDigest.java
Original file line number Diff line number Diff line change
@@ -386,6 +386,12 @@ public static IRubyObject s_hexdigest(ThreadContext context, IRubyObject recv, I
byte[] digest = recv.callMethod(context, "digest", args, Block.NULL_BLOCK).convertToString().getBytes();
return RubyDigest.toHexString(runtime, digest);
}

@JRubyMethod(name = "bubblebabble", required = 1, meta = true)
public static RubyString bubblebabble(IRubyObject recv, IRubyObject arg) {
byte[] digest = recv.callMethod(recv.getRuntime().getCurrentContext(), "digest", arg).convertToString().getBytes();
return RubyString.newString(recv.getRuntime(), BubbleBabble.bubblebabble(digest, 0, digest.length));
}
}


4 changes: 0 additions & 4 deletions test/mri/excludes/TestDigest/TestMD5.rb

This file was deleted.

4 changes: 0 additions & 4 deletions test/mri/excludes/TestDigest/TestSHA1.rb

This file was deleted.

4 changes: 0 additions & 4 deletions test/mri/excludes/TestDigest/TestSHA256.rb

This file was deleted.

4 changes: 0 additions & 4 deletions test/mri/excludes/TestDigest/TestSHA384.rb

This file was deleted.

4 changes: 0 additions & 4 deletions test/mri/excludes/TestDigest/TestSHA512.rb

This file was deleted.

1 change: 0 additions & 1 deletion test/mri/excludes/TestDigestExtend.rb

This file was deleted.

0 comments on commit 262ba3e

Please sign in to comment.