db: Add issued/use_count/key_seq fields to AuthTuples

Theses will be useful to know if we can reuse the tuples or if
we should renew. The 'issued' is currently purely informative.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index cc023b3..a50d9f2 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -605,6 +605,8 @@
 };
 
 struct gsm_auth_tuple {
+	int use_count;
+	int key_seq;
 	u_int8_t rand[16];
 	u_int8_t sres[8];
 	u_int8_t kc[8];
diff --git a/openbsc/src/db.c b/openbsc/src/db.c
index bfc7d93..5ad951a 100644
--- a/openbsc/src/db.c
+++ b/openbsc/src/db.c
@@ -133,9 +133,12 @@
 	"CREATE TABLE IF NOT EXISTS AuthTuples ("
 		"id INTEGER PRIMARY KEY AUTOINCREMENT, "
 		"subscriber_id NUMERIC UNIQUE NOT NULL, "
-		"rand BLOB, "
-		"sres BLOB, "
-		"kc BLOB "
+		"issued TIMESTAMP NOT NULL, "
+		"use_count INTEGER NOT NULL DEFAULT 0, "
+		"key_seq INTEGER NOT NULL, "
+		"rand BLOB NOT NULL, "
+		"sres BLOB NOT NULL, "
+		"kc BLOB NOT NULL "
 		")",
 };
 
@@ -383,6 +386,9 @@
 
 	memset(atuple, 0, sizeof(atuple));
 
+	atuple->use_count = dbi_result_get_ulonglong(result, "use_count");
+	atuple->key_seq = dbi_result_get_ulonglong(result, "key_seq");
+
 	len = dbi_result_get_field_length(result, "rand");
 	if (len != sizeof(atuple->rand))
 		goto err_size;