Crypto hashing can now skip into a file before it starts
This commit is contained in:
parent
5388dcedd7
commit
031e027ed4
@ -118,7 +118,7 @@ class Crypto {
|
|||||||
*/
|
*/
|
||||||
public static
|
public static
|
||||||
byte[] hashFile(File file, Digest digest, Logger logger) {
|
byte[] hashFile(File file, Digest digest, Logger logger) {
|
||||||
return hashFile(file, digest, 0L, logger);
|
return hashFile(file, digest, 0L, file.length(), logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -128,12 +128,18 @@ class Crypto {
|
|||||||
* may be null, if no log output is necessary
|
* may be null, if no log output is necessary
|
||||||
*/
|
*/
|
||||||
public static
|
public static
|
||||||
byte[] hashFile(File file, Digest digest, long lengthFromEnd, Logger logger) {
|
byte[] hashFile(File file, Digest digest, long startPosition, long endPosition, Logger logger) {
|
||||||
if (file.isFile() && file.canRead()) {
|
if (file.isFile() && file.canRead()) {
|
||||||
InputStream inputStream = null;
|
InputStream inputStream = null;
|
||||||
try {
|
try {
|
||||||
inputStream = new FileInputStream(file);
|
inputStream = new FileInputStream(file);
|
||||||
long size = file.length();
|
long skip = inputStream.skip(startPosition);
|
||||||
|
if (skip != startPosition) {
|
||||||
|
throw new RuntimeException("Unable to skip " + startPosition + " bytes. Only skippped " + skip + " instead");
|
||||||
|
}
|
||||||
|
|
||||||
|
long size = file.length() - startPosition;
|
||||||
|
long lengthFromEnd = size - endPosition;
|
||||||
|
|
||||||
if (lengthFromEnd > 0 && lengthFromEnd < size) {
|
if (lengthFromEnd > 0 && lengthFromEnd < size) {
|
||||||
size -= lengthFromEnd;
|
size -= lengthFromEnd;
|
||||||
|
Loading…
Reference in New Issue
Block a user