Merged the hostap_2.6 updates, and the Leap of Faith work, from the hostap_update...
[mech_eap.git] / libeap / src / utils / http-utils.h
diff --git a/libeap/src/utils/http-utils.h b/libeap/src/utils/http-utils.h
new file mode 100644 (file)
index 0000000..8d4399a
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * HTTP wrapper
+ * Copyright (c) 2012-2013, Qualcomm Atheros, Inc.
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#ifndef HTTP_UTILS_H
+#define HTTP_UTILS_H
+
+struct http_ctx;
+
+struct http_othername {
+       char *oid;
+       u8 *data;
+       size_t len;
+};
+
+#define HTTP_MAX_CERT_LOGO_HASH 32
+
+struct http_logo {
+       char *alg_oid;
+       u8 *hash;
+       size_t hash_len;
+       char *uri;
+};
+
+struct http_cert {
+       char **dnsname;
+       unsigned int num_dnsname;
+       struct http_othername *othername;
+       unsigned int num_othername;
+       struct http_logo *logo;
+       unsigned int num_logo;
+};
+
+int soap_init_client(struct http_ctx *ctx, const char *address,
+                    const char *ca_fname, const char *username,
+                    const char *password, const char *client_cert,
+                    const char *client_key);
+int soap_reinit_client(struct http_ctx *ctx);
+xml_node_t * soap_send_receive(struct http_ctx *ctx, xml_node_t *node);
+
+struct http_ctx * http_init_ctx(void *upper_ctx, struct xml_node_ctx *xml_ctx);
+void http_ocsp_set(struct http_ctx *ctx, int val);
+void http_deinit_ctx(struct http_ctx *ctx);
+
+int http_download_file(struct http_ctx *ctx, const char *url,
+                      const char *fname, const char *ca_fname);
+char * http_post(struct http_ctx *ctx, const char *url, const char *data,
+                const char *content_type, const char *ext_hdr,
+                const char *ca_fname,
+                const char *username, const char *password,
+                const char *client_cert, const char *client_key,
+                size_t *resp_len);
+void http_set_cert_cb(struct http_ctx *ctx,
+                     int (*cb)(void *ctx, struct http_cert *cert),
+                     void *cb_ctx);
+const char * http_get_err(struct http_ctx *ctx);
+void http_parse_x509_certificate(struct http_ctx *ctx, const char *fname);
+
+#endif /* HTTP_UTILS_H */