class RestfulEnclaveClient implements EnclaveClient {

    @Override
    public Set<PublicKey> getPublicKeys() {
        return ClientCallback.execute(
                () -> {
                    Response response = client.target(uri).path("public").request().get();

                    validateResponseIsOk(response);

                    JsonArray results = response.readEntity(JsonArray.class);

                    return IntStream.range(0, results.size())
                            .mapToObj(i -> results.getString(i))
                            .map(s -> Base64.getDecoder().decode(s))
                            .map(PublicKey::from)
                            .collect(Collectors.toSet());
                });
    }

    public  RestfulEnclaveClient(Client client, URI uri);
    public  RestfulEnclaveClient(Client client, URI uri, ExecutorService executorService);

}