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;
return nodeClients.get(node);
}
+ /**
+ * Returns the node for a high-level client.
+ *
+ * @param highLevelClient
+ * The high-level client to get the node for
+ * @return The node for the high-level client, or <code>null</code> if the
+ * high-level client is not known
+ */
+ public Node getNode(HighLevelClient highLevelClient) {
+ return clientNodes.get(highLevelClient);
+ }
+
+ /**
+ * Generates a new SSK key pair.
+ *
+ * @return An array with the private key at index <code>0</code> and the
+ * public key at index <code>1</code>
+ * @throws IOException
+ * if an I/O error occurs communicating with the node
+ */
+ public String[] generateKeyPair() throws IOException {
+ if (!nodes.isEmpty()) {
+ 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
//