Harald Welte | e72cf55 | 2016-04-28 07:18:49 +0200 | [diff] [blame] | 1 | #pragma once |
| 2 | |
| 3 | #include <sqlite3.h> |
| 4 | |
| 5 | enum stmt_idx { |
| 6 | SEL_BY_IMSI = 0, |
| 7 | UPD_BY_IMSI = 1, |
| 8 | AUC_BY_IMSI = 2, |
| 9 | AUC_UPD_SQN = 3, |
| 10 | _NUM_STMT |
| 11 | }; |
| 12 | |
| 13 | struct db_context { |
| 14 | char *fname; |
| 15 | sqlite3 *db; |
| 16 | sqlite3_stmt *stmt[_NUM_STMT]; |
| 17 | }; |
| 18 | |
| 19 | void db_close(struct db_context *dbc); |
| 20 | struct db_context *db_open(void *ctx, const char *fname); |
| 21 | |
| 22 | #include <osmocom/crypt/auth.h> |
| 23 | |
| 24 | /* obtain the authentication data for a given imsi */ |
| 25 | int db_get_auth_data(struct db_context *dbc, const char *imsi, |
| 26 | struct osmo_sub_auth_data *aud2g, |
| 27 | struct osmo_sub_auth_data *aud3g, |
| 28 | uint64_t *suscr_id); |
| 29 | |
| 30 | int db_update_sqn(struct db_context *dbc, uint64_t id, |
| 31 | uint64_t new_sqn); |
| 32 | |
| 33 | int db_get_auc(struct db_context *dbc, const char *imsi, |
| 34 | struct osmo_auth_vector *vec, unsigned int num_vec, |
| 35 | const uint8_t *rand_auts, const uint8_t *auts); |