This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-codec.git
commit be58b03b926e6472454ba87af39672005da488a5 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Fri Apr 19 08:45:19 2024 -0400 Format tweaks Longer lines --- .../org/apache/commons/codec/digest/Blake3.java | 42 +++----- .../org/apache/commons/codec/digest/HmacUtils.java | 2 - .../apache/commons/codec/digest/PureJavaCrc32.java | 118 +++++++++++---------- 3 files changed, 77 insertions(+), 85 deletions(-) diff --git a/src/main/java/org/apache/commons/codec/digest/Blake3.java b/src/main/java/org/apache/commons/codec/digest/Blake3.java index dcbc6ea8..ba6cceed 100644 --- a/src/main/java/org/apache/commons/codec/digest/Blake3.java +++ b/src/main/java/org/apache/commons/codec/digest/Blake3.java @@ -76,6 +76,7 @@ import java.util.Objects; public final class Blake3 { private static final class ChunkState { + private int[] chainingValue; private final long chunkCounter; private final int flags; @@ -209,20 +210,20 @@ public final class Blake3 { state = new ChunkState(key, 0, flags); } } + /** * Represents the state just prior to either producing an eight word chaining value or any number of output bytes * when the ROOT flag is set. */ private static final class Output { + private final int[] inputChainingValue; private final int[] blockWords; private final long counter; private final int blockLength; private final int flags; - private Output( - final int[] inputChainingValue, final int[] blockWords, final long counter, final int blockLength, - final int flags) { + private Output(final int[] inputChainingValue, final int[] blockWords, final long counter, final int blockLength, final int flags) { this.inputChainingValue = inputChainingValue; this.blockWords = blockWords; this.counter = counter; @@ -231,8 +232,7 @@ public final class Blake3 { } private int[] chainingValue() { - return Arrays - .copyOf(compress(inputChainingValue, blockWords, blockLength, counter, flags), CHAINING_VALUE_INTS); + return Arrays.copyOf(compress(inputChainingValue, blockWords, blockLength, counter, flags), CHAINING_VALUE_INTS); } private void rootOutputBytes(final byte[] out, int offset, int length) { @@ -240,8 +240,7 @@ public final class Blake3 { while (length > 0) { int chunkLength = Math.min(OUT_LEN * 2, length); length -= chunkLength; - final int[] words = - compress(inputChainingValue, blockWords, blockLength, outputBlockCounter++, flags | ROOT); + final int[] words = compress(inputChainingValue, blockWords, blockLength, outputBlockCounter++, flags | ROOT); int wordCounter = 0; while (chunkLength > 0) { final int wordLength = Math.min(Integer.BYTES, chunkLength); @@ -252,35 +251,33 @@ public final class Blake3 { } } } + private static final int BLOCK_LEN = 64; private static final int BLOCK_INTS = BLOCK_LEN / Integer.BYTES; private static final int KEY_LEN = 32; private static final int KEY_INTS = KEY_LEN / Integer.BYTES; - private static final int OUT_LEN = 32; - private static final int CHUNK_LEN = 1024; private static final int CHAINING_VALUE_INTS = 8; + /** * Standard hash key used for plain hashes; same initialization vector as Blake2s. */ - private static final int[] IV = - { 0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19 }; + private static final int[] IV = { 0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19 }; + // domain flags private static final int CHUNK_START = 1; private static final int CHUNK_END = 1 << 1; private static final int PARENT = 1 << 2; private static final int ROOT = 1 << 3; - private static final int KEYED_HASH = 1 << 4; - private static final int DERIVE_KEY_CONTEXT = 1 << 5; - private static final int DERIVE_KEY_MATERIAL = 1 << 6; /** * Pre-permuted for all 7 rounds; the second row (2,6,3,...) indicates the base permutation. */ + // @formatter:off private static final byte[][] MSG_SCHEDULE = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, { 2, 6, 3, 10, 7, 0, 4, 13, 1, 11, 12, 5, 9, 14, 15, 8 }, @@ -290,6 +287,7 @@ public final class Blake3 { { 9, 14, 11, 5, 8, 12, 15, 1, 13, 3, 0, 10, 2, 6, 4, 7 }, { 11, 15, 5, 0, 1, 9, 8, 6, 14, 10, 2, 12, 3, 4, 7, 13 } }; + // @formatter:on private static void checkBufferArgs(final byte[] buffer, final int offset, final int length) { Objects.requireNonNull(buffer); @@ -301,14 +299,11 @@ public final class Blake3 { } final int bufferLength = buffer.length; if (offset > bufferLength - length) { - throw new IndexOutOfBoundsException( - "Offset " + offset + " and length " + length + " out of bounds with buffer length " + bufferLength); + throw new IndexOutOfBoundsException("Offset " + offset + " and length " + length + " out of bounds with buffer length " + bufferLength); } } - private static int[] compress( - final int[] chainingValue, final int[] blockWords, final int blockLength, final long counter, - final int flags) { + private static int[] compress(final int[] chainingValue, final int[] blockWords, final int blockLength, final long counter, final int flags) { final int[] state = Arrays.copyOf(chainingValue, BLOCK_INTS); System.arraycopy(IV, 0, state, 8, 4); state[12] = (int) counter; @@ -329,8 +324,7 @@ public final class Blake3 { /** * The mixing function, G, which mixes either a column or a diagonal. */ - private static void g( - final int[] state, final int a, final int b, final int c, final int d, final int mx, final int my) { + private static void g(final int[] state, final int a, final int b, final int c, final int d, final int mx, final int my) { state[a] += state[b] + mx; state[d] = Integer.rotateRight(state[d] ^ state[a], 16); state[c] += state[d]; @@ -414,13 +408,11 @@ public final class Blake3 { } } - private static int[] parentChainingValue( - final int[] leftChildCV, final int[] rightChildCV, final int[] key, final int flags) { + private static int[] parentChainingValue(final int[] leftChildCV, final int[] rightChildCV, final int[] key, final int flags) { return parentOutput(leftChildCV, rightChildCV, key, flags).chainingValue(); } - private static Output parentOutput( - final int[] leftChildCV, final int[] rightChildCV, final int[] key, final int flags) { + private static Output parentOutput(final int[] leftChildCV, final int[] rightChildCV, final int[] key, final int flags) { final int[] blockWords = Arrays.copyOf(leftChildCV, BLOCK_INTS); System.arraycopy(rightChildCV, 0, blockWords, 8, CHAINING_VALUE_INTS); return new Output(key.clone(), blockWords, 0, BLOCK_LEN, flags | PARENT); diff --git a/src/main/java/org/apache/commons/codec/digest/HmacUtils.java b/src/main/java/org/apache/commons/codec/digest/HmacUtils.java index 1f298349..38cb1410 100644 --- a/src/main/java/org/apache/commons/codec/digest/HmacUtils.java +++ b/src/main/java/org/apache/commons/codec/digest/HmacUtils.java @@ -196,11 +196,9 @@ public final class HmacUtils { * when a {@link NoSuchAlgorithmException} is caught or key is null or key is invalid. */ public static Mac getInitializedMac(final String algorithm, final byte[] key) { - if (key == null) { throw new IllegalArgumentException("Null key"); } - try { final SecretKeySpec keySpec = new SecretKeySpec(key, algorithm); final Mac mac = Mac.getInstance(algorithm); diff --git a/src/main/java/org/apache/commons/codec/digest/PureJavaCrc32.java b/src/main/java/org/apache/commons/codec/digest/PureJavaCrc32.java index c0845e64..5cb3a488 100644 --- a/src/main/java/org/apache/commons/codec/digest/PureJavaCrc32.java +++ b/src/main/java/org/apache/commons/codec/digest/PureJavaCrc32.java @@ -49,6 +49,7 @@ public class PureJavaCrc32 implements Checksum { * CRC-32 lookup tables generated by the polynomial 0xEDB88320. * See also TestPureJavaCrc32.Table. */ + // @formatter:off private static final int[] T = { /* T8_0 */ 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, @@ -571,74 +572,75 @@ public class PureJavaCrc32 implements Checksum { 0x2C8E0FFF, 0xE0240F61, 0x6EAB0882, 0xA201081C, 0xA8C40105, 0x646E019B, 0xEAE10678, 0x264B06E6 }; + // @formatter:on - /** The current CRC value, bit-flipped */ - private int crc; + /** The current CRC value, bit-flipped */ + private int crc; - /** Create a new PureJavaCrc32 object. */ - public PureJavaCrc32() { - resetCrc(); - } + /** Create a new PureJavaCrc32 object. */ + public PureJavaCrc32() { + resetCrc(); + } + + @Override + public long getValue() { + return ~crc & 0xffffffffL; + } + + @Override + public void reset() { + resetCrc(); + } - @Override - public long getValue() { - return ~crc & 0xffffffffL; - } + // called by ctor, so must not be overrideable + private void resetCrc() { + crc = 0xffffffff; + } - @Override - public void reset() { - resetCrc(); - } + @Override + public void update(final byte[] b, final int offset, final int len) { + int localCrc = crc; - // called by ctor, so must not be overrideable - private void resetCrc() { - crc = 0xffffffff; - } + final int remainder = len & 0x7; + int i = offset; + for (final int end = offset + len - remainder; i < end; i += 8) { + final int x = localCrc ^ + (b[i] << 24 >>> 24) + (b[i + 1] << 24 >>> 16) + + (b[i + 2] << 24 >>> 8) + (b[i + 3] << 24); - @Override - public void update(final byte[] b, final int offset, final int len) { - int localCrc = crc; + localCrc = T[(x << 24 >>> 24) + 0x700] ^ T[(x << 16 >>> 24) + 0x600] ^ + T[(x << 8 >>> 24) + 0x500] ^ T[ (x >>> 24) + 0x400] ^ + T[(b[i + 4] << 24 >>> 24) + 0x300] ^ T[(b[i + 5] << 24 >>> 24) + 0x200] ^ + T[(b[i + 6] << 24 >>> 24) + 0x100] ^ T[b[i + 7] << 24 >>> 24]; + } - final int remainder = len & 0x7; - int i = offset; - for (final int end = offset + len - remainder; i < end; i += 8) { - final int x = localCrc ^ - (b[i] << 24 >>> 24) + (b[i + 1] << 24 >>> 16) + - (b[i + 2] << 24 >>> 8) + (b[i + 3] << 24); + /* loop unroll - duff's device style */ + switch (remainder) { + case 7: + localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; + case 6: + localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; + case 5: + localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; + case 4: + localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; + case 3: + localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; + case 2: + localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; + case 1: + localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; + default: + /* nothing */ + } - localCrc = T[(x << 24 >>> 24) + 0x700] ^ T[(x << 16 >>> 24) + 0x600] ^ - T[(x << 8 >>> 24) + 0x500] ^ T[ (x >>> 24) + 0x400] ^ - T[(b[i + 4] << 24 >>> 24) + 0x300] ^ T[(b[i + 5] << 24 >>> 24) + 0x200] ^ - T[(b[i + 6] << 24 >>> 24) + 0x100] ^ T[b[i + 7] << 24 >>> 24]; + // Publish crc out to object + crc = localCrc; } - /* loop unroll - duff's device style */ - switch (remainder) { - case 7: - localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; - case 6: - localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; - case 5: - localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; - case 4: - localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; - case 3: - localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; - case 2: - localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; - case 1: - localCrc = localCrc >>> 8 ^ T[(localCrc ^ b[i++]) << 24 >>> 24]; - default: - /* nothing */ + @Override + final public void update(final int b) { + crc = crc >>> 8 ^ T[(crc ^ b) << 24 >>> 24]; } - // Publish crc out to object - crc = localCrc; - } - - @Override - final public void update(final int b) { - crc = crc >>> 8 ^ T[(crc ^ b) << 24 >>> 24]; - } - }