123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- /*
- * Hotspot 2.0 - OSU client
- * Copyright (c) 2013-2014, Qualcomm Atheros, Inc.
- *
- * This software may be distributed under the terms of the BSD license.
- * See README for more details.
- */
- #ifndef OSU_CLIENT_H
- #define OSU_CLIENT_H
- #define SPP_NS_URI "http://www.wi-fi.org/specifications/hotspot2dot0/v1.0/spp"
- #define URN_OMA_DM_DEVINFO "urn:oma:mo:oma-dm-devinfo:1.0"
- #define URN_OMA_DM_DEVDETAIL "urn:oma:mo:oma-dm-devdetail:1.0"
- #define URN_HS20_DEVDETAIL_EXT "urn:wfa:mo-ext:hotspot2dot0-devdetail-ext:1.0"
- #define URN_HS20_PPS "urn:wfa:mo:hotspot2dot0-perprovidersubscription:1.0"
- #define MAX_OSU_VALS 10
- struct osu_lang_text {
- char lang[4];
- char text[253];
- };
- struct hs20_osu_client {
- struct xml_node_ctx *xml;
- struct http_ctx *http;
- int no_reconnect;
- char pps_fname[300];
- char *devid;
- const char *result_file;
- const char *summary_file;
- const char *ifname;
- const char *ca_fname;
- int no_osu_cert_validation; /* for EST operations */
- char *fqdn;
- char *server_url;
- struct osu_lang_text friendly_name[MAX_OSU_VALS];
- size_t friendly_name_count;
- size_t icon_count;
- char icon_filename[MAX_OSU_VALS][256];
- u8 icon_hash[MAX_OSU_VALS][32];
- int pps_cred_set;
- int pps_updated;
- int client_cert_present;
- char **server_dnsname;
- size_t server_dnsname_count;
- #define WORKAROUND_OCSP_OPTIONAL 0x00000001
- unsigned long int workarounds;
- };
- /* osu_client.c */
- void write_result(struct hs20_osu_client *ctx, const char *fmt, ...)
- __attribute__ ((format (printf, 2, 3)));
- void write_summary(struct hs20_osu_client *ctx, const char *fmt, ...)
- __attribute__ ((format (printf, 2, 3)));
- void debug_dump_node(struct hs20_osu_client *ctx, const char *title,
- xml_node_t *node);
- int osu_get_certificate(struct hs20_osu_client *ctx, xml_node_t *getcert);
- int hs20_add_pps_mo(struct hs20_osu_client *ctx, const char *uri,
- xml_node_t *add_mo, char *fname, size_t fname_len);
- void get_user_pw(struct hs20_osu_client *ctx, xml_node_t *pps,
- const char *alt_loc, char **user, char **pw);
- int update_pps_file(struct hs20_osu_client *ctx, const char *pps_fname,
- xml_node_t *pps);
- void cmd_set_pps(struct hs20_osu_client *ctx, const char *pps_fname);
- /* spp_client.c */
- void spp_sub_rem(struct hs20_osu_client *ctx, const char *address,
- const char *pps_fname,
- const char *client_cert, const char *client_key,
- const char *cred_username, const char *cred_password,
- xml_node_t *pps);
- void spp_pol_upd(struct hs20_osu_client *ctx, const char *address,
- const char *pps_fname,
- const char *client_cert, const char *client_key,
- const char *cred_username, const char *cred_password,
- xml_node_t *pps);
- int cmd_prov(struct hs20_osu_client *ctx, const char *url);
- int cmd_sim_prov(struct hs20_osu_client *ctx, const char *url);
- /* oma_dm_client.c */
- int cmd_oma_dm_prov(struct hs20_osu_client *ctx, const char *url);
- int cmd_oma_dm_sim_prov(struct hs20_osu_client *ctx, const char *url);
- void oma_dm_sub_rem(struct hs20_osu_client *ctx, const char *address,
- const char *pps_fname,
- const char *client_cert, const char *client_key,
- const char *cred_username, const char *cred_password,
- xml_node_t *pps);
- void oma_dm_pol_upd(struct hs20_osu_client *ctx, const char *address,
- const char *pps_fname,
- const char *client_cert, const char *client_key,
- const char *cred_username, const char *cred_password,
- xml_node_t *pps);
- void cmd_oma_dm_sub_rem(struct hs20_osu_client *ctx, const char *address,
- const char *pps_fname);
- void cmd_oma_dm_add(struct hs20_osu_client *ctx, const char *pps_fname,
- const char *add_fname);
- void cmd_oma_dm_replace(struct hs20_osu_client *ctx, const char *pps_fname,
- const char *replace_fname);
- /* est.c */
- int est_load_cacerts(struct hs20_osu_client *ctx, const char *url);
- int est_build_csr(struct hs20_osu_client *ctx, const char *url);
- int est_simple_enroll(struct hs20_osu_client *ctx, const char *url,
- const char *user, const char *pw);
- #endif /* OSU_CLIENT_H */
|