+ * @brief All of the functions a DB backend exports.
+ */
+struct dbfuncs {
+/**
+ * @brief Initialize the key database.
+ * @param readonly If we'll only be reading the DB, not writing to it.
+ *
+ * This function should be called before any of the other functions in
+ * this file are called in order to allow the DB to be initialized ready
+ * for access.
+ */
+ void (*initdb)(bool readonly);
+
+/**
+ * @brief De-initialize the key database.
+ *
+ * This function should be called upon program exit to allow the DB to
+ * cleanup after itself.
+ */
+ void (*cleanupdb)(void);
+
+/**
+ * @brief Start a transaction.