public Future<String> download(final KeeperFile file) {

        if (file == null)
            return CompletableFuture.completedFuture(null);

        return CompletableFuture.supplyAsync(() -> {
            return new String(SecretsManager.downloadFile(file), StandardCharsets.UTF_8);
        });

    }
Downloads the given file from the Keeper vault asynchronously. All files
are read as UTF-8.

@param file
    The file to download, which may be null.

@return
    A Future which resolves with the contents of the file once
    downloaded. If no file was provided (file was null), this Future
    resolves with null.
extensions/guacamole-vault/modules/guacamole-vault-ksm/src/main/java/org/apache/guacamole/vault/ksm/secret/KsmRecordService.java