#include "version.h"
struct onak_hkp_dbctx {
+ struct onak_db_config *config; /* Our DB config info */
CURL *curl;
char hkpbase[1024];
};
* hkp_fetch_key_fp - Given a fingerprint fetch the key from HKP server.
*/
static int hkp_fetch_key_fp(struct onak_dbctx *dbctx,
- uint8_t *fp, size_t fpsize,
+ struct openpgp_fingerprint *fingerprint,
struct openpgp_publickey **publickey,
bool intrans)
{
char keyurl[1024];
int i, ofs;
- if (fpsize > MAX_FINGERPRINT_LEN) {
+ if (fingerprint->length > MAX_FINGERPRINT_LEN) {
return 0;
}
ofs = snprintf(keyurl, sizeof(keyurl),
"%s/lookup?op=get&search=0x", privctx->hkpbase);
- if ((ofs + fpsize * 2 + 1)> sizeof(keyurl)) {
+ if ((ofs + fingerprint->length * 2 + 1)> sizeof(keyurl)) {
return 0;
}
- for (i = 0; i < fpsize; i++) {
- ofs += sprintf(&keyurl[ofs], "%02X", fp[i]);
+ for (i = 0; i < fingerprint->length; i++) {
+ ofs += sprintf(&keyurl[ofs], "%02X", fingerprint->fp[i]);
}
return (hkp_fetch_key_url(dbctx, keyurl, publickey, intrans));
*
* We initialize CURL here.
*/
-struct onak_dbctx *keydb_hkp_init(bool readonly)
+struct onak_dbctx *keydb_hkp_init(struct onak_db_config *dbcfg, bool readonly)
{
struct onak_dbctx *dbctx;
struct onak_hkp_dbctx *privctx;
return NULL;
}
+ dbctx->config = dbcfg;
dbctx->priv = privctx = malloc(sizeof(*privctx));
dbctx->cleanupdb = hkp_cleanupdb;
dbctx->starttrans = hkp_starttrans;
dbctx->getfullkeyid = generic_getfullkeyid;
dbctx->iterate_keys = hkp_iterate_keys;
- if (!hkp_parse_url(privctx, config.db_dir)) {
+ if (!hkp_parse_url(privctx, dbcfg->location)) {
exit(EXIT_FAILURE);
}
curl_global_init(CURL_GLOBAL_DEFAULT);