#include <string.h>
#include <unistd.h>
+#include "build-config.h"
#include "charfuncs.h"
+#include "key-store.h"
#include "keydb.h"
#include "keyid.h"
#include "keystructs.h"
*
* This is just a no-op for flat file access.
*/
-static bool file_starttrans(struct onak_dbctx *dbctx)
+static bool file_starttrans(__unused struct onak_dbctx *dbctx)
{
return true;
}
*
* This is just a no-op for flat file access.
*/
-static void file_endtrans(struct onak_dbctx *dbctx)
+static void file_endtrans(__unused struct onak_dbctx *dbctx)
{
return;
}
static int file_fetch_key_id(struct onak_dbctx *dbctx,
uint64_t keyid,
struct openpgp_publickey **publickey,
- bool intrans)
+ __unused bool intrans)
{
char *db_dir = (char *) dbctx->priv;
struct openpgp_packet_list *packets = NULL;
char keyfile[1024];
- int fd = -1;
+ onak_status_t res;
snprintf(keyfile, 1023, "%s/0x%" PRIX64, db_dir,
keyid & 0xFFFFFFFF);
- fd = open(keyfile, O_RDONLY); // | O_SHLOCK);
+ res = onak_read_openpgp_file(keyfile, &packets);
- if (fd > -1) {
- read_openpgp_stream(file_fetchchar, &fd, &packets, 0);
+ if (res == ONAK_E_OK) {
parse_keys(packets, publickey);
free_packet_list(packets);
packets = NULL;
- close(fd);
}
- return (fd > -1);
+ return (res == ONAK_E_OK);
}
/**
* the file.
*/
static int file_store_key(struct onak_dbctx *dbctx,
- struct openpgp_publickey *publickey, bool intrans,
- bool update)
+ struct openpgp_publickey *publickey, __unused bool intrans,
+ __unused bool update)
{
char *db_dir = (char *) dbctx->priv;
struct openpgp_packet_list *packets = NULL;
* are using. Returns 0 if the key existed.
*/
static int file_delete_key(struct onak_dbctx *dbctx,
- struct openpgp_fingerprint *fp, bool intrans)
+ struct openpgp_fingerprint *fp, __unused bool intrans)
{
char *db_dir = (char *) dbctx->priv;
char keyfile[1024];
*
* TODO: Write for flat file access. Some sort of grep?
*/
-static int file_fetch_key_text(struct onak_dbctx *dbctx,
- const char *search,
- struct openpgp_publickey **publickey)
+static int file_fetch_key_text(__unused struct onak_dbctx *dbctx,
+ __unused const char *search,
+ __unused struct openpgp_publickey **publickey)
{
return 0;
}
struct openpgp_publickey *key = NULL;
DIR *dir;
char keyfile[1024];
- int fd = -1;
struct dirent *curfile = NULL;
+ onak_status_t res;
dir = opendir(db_dir);
snprintf(keyfile, 1023, "%s/%s",
db_dir,
curfile->d_name);
- fd = open(keyfile, O_RDONLY);
+ res = onak_read_openpgp_file(keyfile,
+ &packets);
- if (fd > -1) {
- read_openpgp_stream(file_fetchchar,
- &fd,
- &packets,
- 0);
+ if (res == ONAK_E_OK) {
parse_keys(packets, &key);
iterfunc(ctx, key);
key = NULL;
free_packet_list(packets);
packets = NULL;
- close(fd);
}
numkeys++;
}
*
* This is just a no-op for flat file access.
*/
-struct onak_dbctx *keydb_file_init(struct onak_db_config *dbcfg, bool readonly)
+struct onak_dbctx *keydb_file_init(struct onak_db_config *dbcfg,
+ __unused bool readonly)
{
struct onak_dbctx *dbctx;
dbctx->cleanupdb = file_cleanupdb;
dbctx->starttrans = file_starttrans;
dbctx->endtrans = file_endtrans;
- dbctx->fetch_key_id = file_fetch_key_id;
+ /* Our fetch fp doesn't look at subkeys */
+ dbctx->fetch_key = generic_fetch_key_fp;
dbctx->fetch_key_fp = generic_fetch_key_fp;
+ dbctx->fetch_key_id = file_fetch_key_id;
dbctx->fetch_key_text = file_fetch_key_text;
dbctx->store_key = file_store_key;
dbctx->update_keys = generic_update_keys;