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