diff --git a/openbsc/include/openbsc/db.h b/openbsc/include/openbsc/db.h
index c4fc28a..2a521f0 100644
--- a/openbsc/include/openbsc/db.h
+++ b/openbsc/include/openbsc/db.h
@@ -44,14 +44,14 @@
 int db_sync_equipment(struct gsm_equipment *equip);
 
 /* auth info */
-int get_authinfo_by_subscr(struct gsm_auth_info *ainfo,
-                           struct gsm_subscriber *subscr);
-int set_authinfo_for_subscr(struct gsm_auth_info *ainfo,
-                            struct gsm_subscriber *subscr);
-int get_lastauthtuple_by_subscr(struct gsm_auth_tuple *atuple,
+int db_get_authinfo_for_subscr(struct gsm_auth_info *ainfo,
+                               struct gsm_subscriber *subscr);
+int db_sync_authinfo_for_subscr(struct gsm_auth_info *ainfo,
                                 struct gsm_subscriber *subscr);
-int set_lastauthtuple_for_subscr(struct gsm_auth_tuple *atuple,
-                                 struct gsm_subscriber *subscr);
+int db_get_lastauthtuple_for_subscr(struct gsm_auth_tuple *atuple,
+                                    struct gsm_subscriber *subscr);
+int db_sync_lastauthtuple_for_subscr(struct gsm_auth_tuple *atuple,
+                                     struct gsm_subscriber *subscr);
 
 /* SMS store-and-forward */
 int db_sms_store(struct gsm_sms *sms);
diff --git a/openbsc/src/db.c b/openbsc/src/db.c
index dd74804..c6f00de 100644
--- a/openbsc/src/db.c
+++ b/openbsc/src/db.c
@@ -348,8 +348,8 @@
 	return 0;
 }
 
-int get_authinfo_by_subscr(struct gsm_auth_info *ainfo,
-			   struct gsm_subscriber *subscr)
+int db_get_authinfo_for_subscr(struct gsm_auth_info *ainfo,
+                               struct gsm_subscriber *subscr)
 {
 	dbi_result result;
 	const unsigned char *a3a8_ki;
@@ -377,8 +377,8 @@
 	return 0;
 }
 
-int set_authinfo_for_subscr(struct gsm_auth_info *ainfo,
-			    struct gsm_subscriber *subscr)
+int db_sync_authinfo_for_subscr(struct gsm_auth_info *ainfo,
+                                struct gsm_subscriber *subscr)
 {
 	dbi_result result;
 	struct gsm_auth_info ainfo_old;
@@ -400,7 +400,7 @@
 	}
 
 	/* Check if already existing */
-	rc = get_authinfo_by_subscr(&ainfo_old, subscr);
+	rc = db_get_authinfo_for_subscr(&ainfo_old, subscr);
 	if (rc && rc != -ENOENT)
 		return rc;
 	upd = rc ? 0 : 1;
@@ -433,8 +433,8 @@
 	return 0;
 }
 
-int get_lastauthtuple_by_subscr(struct gsm_auth_tuple *atuple,
-                                struct gsm_subscriber *subscr)
+int db_get_lastauthtuple_for_subscr(struct gsm_auth_tuple *atuple,
+                                    struct gsm_subscriber *subscr)
 {
 	dbi_result result;
 	int len;
@@ -486,8 +486,8 @@
 	return -EIO;
 }
 
-int set_lastauthtuple_for_subscr(struct gsm_auth_tuple *atuple,
-                                 struct gsm_subscriber *subscr)
+int db_sync_lastauthtuple_for_subscr(struct gsm_auth_tuple *atuple,
+                                     struct gsm_subscriber *subscr)
 {
 	dbi_result result;
 	int rc, upd;
@@ -509,7 +509,7 @@
 	}
 
 	/* Check if already existing */
-	rc = get_lastauthtuple_by_subscr(&atuple_old, subscr);
+	rc = db_get_lastauthtuple_for_subscr(&atuple_old, subscr);
 	if (rc && rc != -ENOENT)
 		return rc;
 	upd = rc ? 0 : 1;
diff --git a/openbsc/src/vty_interface_layer3.c b/openbsc/src/vty_interface_layer3.c
index 0b6da04..bf88fc0 100644
--- a/openbsc/src/vty_interface_layer3.c
+++ b/openbsc/src/vty_interface_layer3.c
@@ -91,7 +91,7 @@
 		vty_out(vty, "    TMSI: %08X%s", subscr->tmsi,
 			VTY_NEWLINE);
 
-	rc = get_authinfo_by_subscr(&ainfo, subscr);
+	rc = db_get_authinfo_for_subscr(&ainfo, subscr);
 	if (!rc) {
 		vty_out(vty, "    A3A8 algorithm id: %d%s",
 			ainfo.auth_algo, VTY_NEWLINE);
@@ -100,7 +100,7 @@
 			VTY_NEWLINE);
 	}
 
-	rc = get_lastauthtuple_by_subscr(&atuple, subscr);
+	rc = db_get_lastauthtuple_for_subscr(&atuple, subscr);
 	if (!rc) {
 		vty_out(vty, "    A3A8 last tuple (used %d times):%s",
 			atuple.use_count, VTY_NEWLINE);
@@ -469,7 +469,7 @@
 
 	if (!strcasecmp(alg_str, "none")) {
 		/* Just erase */
-		rc = set_authinfo_for_subscr(NULL, subscr);
+		rc = db_sync_authinfo_for_subscr(NULL, subscr);
 	} else if (!strcasecmp(alg_str, "comp128v1")) {
 		/* Parse hex string Ki */
 		rc = hexparse(ki_str, ainfo.a3a8_ki, sizeof(ainfo.a3a8_ki));
@@ -479,7 +479,7 @@
 		/* Set the infos */
 		ainfo.auth_algo = AUTH_ALGO_COMP128v1;
 		ainfo.a3a8_ki_len = rc;
-		rc = set_authinfo_for_subscr(&ainfo, subscr);
+		rc = db_sync_authinfo_for_subscr(&ainfo, subscr);
 	} else {
 		/* Unknown method */
 		return CMD_WARNING;
