CallerSideMirroringGateway createGatewayToCall(String ip, File publicKeyFile)
      throws IOException, InvalidPublicKeyFileException, PublicInformationInvalidException,
          SSLSocketSetupException {
    int port = getPort();

    Vector publicInfo = MartusUtilities.importServerPublicKeyFromFile(publicKeyFile, getSecurity());
    String publicKey = (String) publicInfo.get(0);

    CallerSideMirroringGatewayForXmlRpc xmlRpcGateway =
        new CallerSideMirroringGatewayForXmlRpc(ip, port);
    xmlRpcGateway.setExpectedPublicKey(publicKey);
    return new CallerSideMirroringGateway(xmlRpcGateway);
  }