test/org/openjdk/jigsaw/cli/ModuleFormatHeaderHashTest.java
Print this page
*** 87,102 ****
}
/**
* Hash a module file (without the file hash in the module file header).
*/
byte [] hash(String name, String version, String digest) throws Exception {
String fname = moduleDir + File.separator + name + "@" + version + ".jmod";
MessageDigest md = MessageDigest.getInstance(digest);
try (FileInputStream fis = new FileInputStream(fname);
DigestInputStream dis = new DigestInputStream(fis, md)) {
! dis.read(new byte[ModuleFile.ModuleFileHeader.LENGTH_WITHOUT_HASH]);
dis.on(false);
dis.read(new byte [md.getDigestLength()]);
dis.on(true);
for (int c = dis.read() ; c != -1 ; c = dis.read())
;
--- 87,103 ----
}
/**
* Hash a module file (without the file hash in the module file header).
*/
+ static final int LENGTH_WITHOUT_HASH = 30; // computed from module-file format
byte [] hash(String name, String version, String digest) throws Exception {
String fname = moduleDir + File.separator + name + "@" + version + ".jmod";
MessageDigest md = MessageDigest.getInstance(digest);
try (FileInputStream fis = new FileInputStream(fname);
DigestInputStream dis = new DigestInputStream(fis, md)) {
! dis.read(new byte[LENGTH_WITHOUT_HASH]);
dis.on(false);
dis.read(new byte [md.getDigestLength()]);
dis.on(true);
for (int c = dis.read() ; c != -1 ; c = dis.read())
;