package server;
import common.CryptoUtil;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.map.ObjectMapper;
import java.io.*;
import java.security.KeyPair;
import java.util.Iterator;
/**
* Created by andrew on 12/3/14.
*/
public class PBFTKeyGenerator {
public static void main(String args[]) {
File configFile = new File(args[0]);
try {
BufferedReader reader = null;
reader = new BufferedReader(new FileReader(configFile));
JsonFactory factory = new JsonFactory();
JsonParser jsonParser = factory.createJsonParser(reader);
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(jsonParser);
Iterator<JsonNode> serverIterator = root.get("servers").getElements();
while (serverIterator.hasNext()) {
JsonNode server = serverIterator.next();
KeyPair keyPair = CryptoUtil.generateNewKeyPair();
File publicKeyFile = new File(server.get("public_key").getTextValue());
File privateKeyFile = new File(server.get("private_key").getTextValue());
FileOutputStream publicKeyOutputStream = new FileOutputStream(publicKeyFile);
FileOutputStream privateKeyOutputStream = new FileOutputStream(privateKeyFile);
publicKeyOutputStream.write(keyPair.getPublic().getEncoded());
privateKeyOutputStream.write(keyPair.getPrivate().getEncoded());
publicKeyOutputStream.close();
privateKeyOutputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}