summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAndrzej Zaborowski <andrew.zaborowski@intel.com>2009-09-17 22:43:22 +0200
committerDenis Kenzior <denkenz@gmail.com>2009-09-22 00:07:06 -0500
commitee02b14836d7e30b45ee6fd62da6a8135c94c9dd (patch)
treeebe561c1cb248e4a11643fdc09e61246520cda97 /include
parentb1c8b291f5c8d1802b889756c01cc2f7f5288641 (diff)
downloadofono-ee02b14836d7e30b45ee6fd62da6a8135c94c9dd.tar.bz2
Do PIN authentication
This adds checking whether PIN is required during SIM initialisation and delaying the sim ready notifications until after correct PIN is given.
Diffstat (limited to 'include')
-rw-r--r--include/sim.h19
-rw-r--r--include/types.h20
2 files changed, 39 insertions, 0 deletions
diff --git a/include/sim.h b/include/sim.h
index 1da486c7..751ae101 100644
--- a/include/sim.h
+++ b/include/sim.h
@@ -64,6 +64,12 @@ typedef void (*ofono_sim_file_read_cb_t)(int ok,
typedef void (*ofono_sim_file_write_cb_t)(int ok, void *userdata);
+typedef void (*ofono_sim_passwd_cb_t)(const struct ofono_error *error,
+ int passwd_type, void *data);
+
+typedef void (*ofono_sim_lock_unlock_cb_t)(const struct ofono_error *error,
+ void *data);
+
struct ofono_sim_driver {
const char *name;
int (*probe)(struct ofono_sim *sim, unsigned int vendor, void *data);
@@ -90,6 +96,19 @@ struct ofono_sim_driver {
ofono_sim_write_cb_t cb, void *data);
void (*read_imsi)(struct ofono_sim *sim,
ofono_sim_imsi_cb_t cb, void *data);
+ void (*query_passwd_state)(struct ofono_sim *sim,
+ ofono_sim_passwd_cb_t cb, void *data);
+ void (*send_passwd)(struct ofono_sim *sim, const char *passwd,
+ ofono_sim_lock_unlock_cb_t cb, void *data);
+ void (*reset_passwd)(struct ofono_sim *sim, const char *puk,
+ const char *passwd,
+ ofono_sim_lock_unlock_cb_t cb, void *data);
+ void (*change_passwd)(struct ofono_sim *sim, int passwd_type,
+ const char *old, const char *new,
+ ofono_sim_lock_unlock_cb_t cb, void *data);
+ void (*lock)(struct ofono_sim *sim, int passwd_type, int enable,
+ const char *passwd,
+ ofono_sim_lock_unlock_cb_t cb, void *data);
};
int ofono_sim_driver_register(const struct ofono_sim_driver *d);
diff --git a/include/types.h b/include/types.h
index 6a9681d0..82a3216a 100644
--- a/include/types.h
+++ b/include/types.h
@@ -91,6 +91,26 @@ struct ofono_call {
int clip_validity;
};
+enum ofono_passwd_type {
+ OFONO_PASSWD_NONE = 0,
+
+ OFONO_PASSWD_SIM_PIN,
+ OFONO_PASSWD_SIM_PUK,
+ OFONO_PASSWD_PHSIM_PIN,
+ OFONO_PASSWD_PHFSIM_PIN,
+ OFONO_PASSWD_PHFSIM_PUK,
+ OFONO_PASSWD_SIM_PIN2,
+ OFONO_PASSWD_SIM_PUK2,
+ OFONO_PASSWD_PHNET_PIN,
+ OFONO_PASSWD_PHNET_PUK,
+ OFONO_PASSWD_PHNETSUB_PIN,
+ OFONO_PASSWD_PHNETSUB_PUK,
+ OFONO_PASSWD_PHSP_PIN,
+ OFONO_PASSWD_PHSP_PUK,
+ OFONO_PASSWD_PHCORP_PIN,
+ OFONO_PASSWD_PHCORP_PUK,
+};
+
#ifdef __cplusplus
}
#endif