X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fcore%2FNodeManager.java;h=b9404c738bc417c8364277f589031b0d105512be;hb=46468a98b62f04438ff5e456b199c77e00da4c44;hp=1e619802b525a48e1de4a6350b7ae4f79b074749;hpb=a6d31fa9f170c57ba80b0f5ede4ef9bcbe3c9375;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/core/NodeManager.java b/src/net/pterodactylus/jsite/core/NodeManager.java index 1e61980..b9404c7 100644 --- a/src/net/pterodactylus/jsite/core/NodeManager.java +++ b/src/net/pterodactylus/jsite/core/NodeManager.java @@ -40,6 +40,7 @@ import java.util.logging.Logger; import net.pterodactylus.fcp.highlevel.HighLevelClient; import net.pterodactylus.fcp.highlevel.HighLevelClientListener; +import net.pterodactylus.fcp.highlevel.KeyGenerationResult; import net.pterodactylus.util.io.Closer; import net.pterodactylus.util.logging.Logging; @@ -421,6 +422,31 @@ public class NodeManager implements Iterable, PropertyChangeListener, High return clientNodes.get(highLevelClient); } + /** + * Generates a new SSK key pair. + * + * @return An array with the private key at index 0 and the + * public key at index 1 + * @throws IOException + * if an I/O error occurs communicating with the node + * @throws NoNodeException + * if no node is configured + */ + public String[] generateKeyPair() throws IOException, NoNodeException { + if (nodes.isEmpty()) { + throw new NoNodeException("no node configured"); + } + Node node = nodes.get(0); + HighLevelClient highLevelClient = nodeClients.get(node); + try { + KeyGenerationResult keyGenerationResult = highLevelClient.generateKey().getResult(); + return new String[] { keyGenerationResult.getInsertURI(), keyGenerationResult.getRequestURI() }; + } catch (InterruptedException e) { + /* ignore. */ + } + return null; + } + // // PRIVATE METHODS //