mirror of https://github.com/qortal/qortal
catbref
5 years ago
2 changed files with 59 additions and 1 deletions
@ -0,0 +1,58 @@
|
||||
package org.qora; |
||||
|
||||
import java.io.IOException; |
||||
import java.io.InputStream; |
||||
import java.io.OutputStream; |
||||
import java.nio.file.Files; |
||||
import java.nio.file.Path; |
||||
import java.nio.file.Paths; |
||||
|
||||
import org.qora.controller.AutoUpdate; |
||||
|
||||
public class XorUpdate { |
||||
|
||||
private static final byte XOR_VALUE = AutoUpdate.XOR_VALUE; |
||||
|
||||
public static void main(String args[]) { |
||||
if (args.length != 2) { |
||||
System.err.println("usage: XorUpdate <input-file> <output-file>"); |
||||
System.exit(1); |
||||
} |
||||
|
||||
Path inPath = Paths.get(args[0]); |
||||
if (!Files.isReadable(inPath)) { |
||||
System.err.println(String.format("Cannot open '%s'", args[0])); |
||||
System.exit(2); |
||||
} |
||||
|
||||
Path outPath = Paths.get(args[1]); |
||||
|
||||
try (InputStream in = Files.newInputStream(inPath); OutputStream out = Files.newOutputStream(outPath)) { |
||||
byte[] buffer = new byte[1024 * 1024]; |
||||
do { |
||||
int nread = in.read(buffer); |
||||
if (nread == -1) |
||||
break; |
||||
|
||||
for (int i = 0; i < nread; ++i) |
||||
buffer[i] ^= XOR_VALUE; |
||||
|
||||
out.write(buffer, 0, nread); |
||||
} while (true); |
||||
out.flush(); |
||||
} catch (IOException e) { |
||||
System.err.println(e.getLocalizedMessage()); |
||||
|
||||
try { |
||||
Files.deleteIfExists(outPath); |
||||
} catch (IOException e1) { |
||||
System.err.println(e.getLocalizedMessage()); |
||||
} |
||||
|
||||
System.exit(2); |
||||
} |
||||
|
||||
System.exit(0); |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue