in lib/src/main/kotlin/org/jetbrains/zip/signer/signing/ZipSigner.kt [42:63]
fun unsign(
inputFile: File,
outputFile: File
) {
RandomAccessFile(inputFile, "r").use { inputRandomAccessFile ->
RandomAccessFile(outputFile, "rw").use { outputRandomAccessFile ->
outputRandomAccessFile.setLength(0)
val inputDataSource = SeekableByteChannelDataSource(inputRandomAccessFile.channel)
val inputZipSectionsInformation = ZipUtils.findZipSectionsInformation(inputDataSource)
val inputSigningBlock = ZipMetadata.findInZip(inputDataSource, inputZipSectionsInformation)
val inputZipSections =
ZipUtils.findZipSections(inputDataSource, inputZipSectionsInformation, inputSigningBlock)
inputZipSections.beforeSigningBlockSection.feed(outputRandomAccessFile.channel)
inputZipSections.centralDirectorySection.feed(outputRandomAccessFile.channel)
val outputEocdRecord = getModifiedEocdRecord(inputZipSections, 0)
outputRandomAccessFile.channel.write(outputEocdRecord)
}
}
}