Skip to content

Commit 3b7fe94

Browse files
committed
checksum algo
1 parent fdb9968 commit 3b7fe94

2 files changed

Lines changed: 14 additions & 26 deletions

File tree

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,32 @@
11
package io.github.jpmorganchase.fusion.digest.checksum;
22

33
import java.util.Base64;
4-
import java.util.zip.Checksum;
54
import software.amazon.awssdk.crt.checksums.CRC32C;
65

76
public class CRC32CProvider implements DigestProvider {
87

9-
private final Checksum checksum;
8+
private final CRC32C crc32c;
109

1110
public CRC32CProvider() {
12-
this.checksum = new CRC32C();
11+
this.crc32c = new CRC32C();
1312
}
1413

1514
@Override
1615
public void update(byte singleByte) {
17-
checksum.update(singleByte);
16+
crc32c.update(singleByte);
1817
}
1918

2019
@Override
2120
public String getDigest() {
22-
long checksumValue = checksum.getValue();
23-
return Base64.getEncoder().encodeToString(longToBytes(checksumValue));
24-
}
21+
int value = crc32c.getValue();
2522

26-
private byte[] longToBytes(long value) {
27-
return new byte[] {
28-
(byte) (value >>> 56),
29-
(byte) (value >>> 48),
30-
(byte) (value >>> 40),
31-
(byte) (value >>> 32),
23+
byte[] bytes = new byte[] {
3224
(byte) (value >>> 24),
3325
(byte) (value >>> 16),
3426
(byte) (value >>> 8),
3527
(byte) value
3628
};
29+
30+
return Base64.getEncoder().encodeToString(bytes);
3731
}
3832
}

src/main/java/io/github/jpmorganchase/fusion/digest/checksum/CRC32Provider.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,31 @@
22

33
import java.util.Base64;
44
import java.util.zip.CRC32;
5-
import java.util.zip.Checksum;
65

76
public class CRC32Provider implements DigestProvider {
87

9-
private final Checksum checksum;
8+
private final CRC32 crc32;
109

1110
public CRC32Provider() {
12-
this.checksum = new CRC32();
11+
this.crc32 = new CRC32();
1312
}
1413

1514
@Override
1615
public void update(byte singleByte) {
17-
checksum.update(singleByte);
16+
crc32.update(singleByte);
1817
}
1918

2019
@Override
2120
public String getDigest() {
22-
long checksumValue = checksum.getValue();
23-
return Base64.getEncoder().encodeToString(longToBytes(checksumValue));
24-
}
21+
long value = crc32.getValue();
2522

26-
private byte[] longToBytes(long value) {
27-
return new byte[] {
28-
(byte) (value >>> 56),
29-
(byte) (value >>> 48),
30-
(byte) (value >>> 40),
31-
(byte) (value >>> 32),
23+
byte[] bytes = new byte[] {
3224
(byte) (value >>> 24),
3325
(byte) (value >>> 16),
3426
(byte) (value >>> 8),
3527
(byte) value
3628
};
29+
30+
return Base64.getEncoder().encodeToString(bytes);
3731
}
3832
}

0 commit comments

Comments
 (0)