src/share/classes/org/openjdk/jigsaw/cli/Signer.java
Print this page
@@ -38,10 +38,11 @@
import javax.security.auth.DestroyFailedException;
import static java.lang.System.err;
import static java.lang.System.in;
import static java.lang.System.out;
+import java.nio.channels.Channels;
import static java.security.KeyStore.PasswordProtection;
import static java.security.KeyStore.PrivateKeyEntry;
import java.util.Map;
import org.openjdk.jigsaw.*;
@@ -245,15 +246,18 @@
File tmpFile = (signedModuleFile == null)
? new File(moduleFile + ".sig") : signedModuleFile;
try (RandomAccessFile mraf = new RandomAccessFile(moduleFile, "r");
RandomAccessFile raf = new RandomAccessFile(tmpFile, "rw"))
{
+ ModuleFileHeader header = ModuleFileHeader.read(Channels.newInputStream(mraf.getChannel()));
+
+ mraf.seek(0);
raf.setLength(0);
// Transfer header and module-info from module file
// to signed module file.
- long remainderStart = ModuleFileHeader.LENGTH
+ long remainderStart = header.getLength()
+ SectionHeader.LENGTH
+ moduleInfoLength;
FileChannel source = mraf.getChannel();
FileChannel dest = raf.getChannel();
for (long pos = 0; pos < remainderStart;) {