static void processSignatureCallback(String serverName, SignatureCallback sigCb)
			throws IOException {
		try {
			SignedToken signedToken = ApplicationKeyManagerUtils
					.getSignedToken(sigCb.getRecognizedAuthorities(), sigCb.getToken());
			sigCb.sign(signedToken.certChain, signedToken.signature);
			Msg.info(ClientUtil.class, "PKI Authenticating to " + serverName + " as user '" +
				signedToken.certChain[0].getSubjectX500Principal() + "'");
		}
		catch (Exception e) {
			String msg = e.getMessage();
			if (msg == null) {
				msg = e.toString();
			}
			throw new IOException(msg, e);
		}
	}
Prompt user and change password on server (not initiated by user).
@param parent dialog parent
@param handle server handle
@param serverInfo server information
@throws IOException if error occurs while updating password
Ghidra/Framework/FileSystem/src/main/java/ghidra/framework/client/ClientUtil.java