* more details.
*
* You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 51
- * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include <errno.h>
/**
* delete_key - Given a keyid delete the key from storage.
-* @keyid: The keyid to delete.
+ * @fp: The fingerprint of the key to delete.
* @intrans: If we're already in a transaction.
*
* This function deletes a public key from whatever storage mechanism we
* are using. Returns 0 if the key existed.
*/
static int keyd_delete_key(struct onak_dbctx *dbctx,
- uint64_t keyid, bool intrans)
+ struct openpgp_fingerprint *fp, bool intrans)
{
int keyd_fd = (intptr_t) dbctx->priv;
if (keyd_send_cmd(keyd_fd, KEYD_CMD_DELETE)) {
- write(keyd_fd, &keyid, sizeof(keyid));
+ write(keyd_fd, fp, sizeof(*fp));
}
return 0;
return (count > 0) ? 1 : 0;
}
-
-/**
- * getfullkeyid - Maps a 32bit key id to a 64bit one.
- * @keyid: The 32bit keyid.
- *
- * This function maps a 32bit key id to the full 64bit one. It returns the
- * full keyid. If the key isn't found a keyid of 0 is returned.
- */
-static uint64_t keyd_getfullkeyid(struct onak_dbctx *dbctx, uint64_t keyid)
-{
- int keyd_fd = (intptr_t) dbctx->priv;
- uint32_t cmd = KEYD_CMD_GETFULLKEYID;
-
- if (keyd_send_cmd(keyd_fd, KEYD_CMD_GETFULLKEYID)) {
- write(keyd_fd, &keyid, sizeof(keyid));
- read(keyd_fd, &cmd, sizeof(cmd));
- if (cmd != sizeof(keyid)) {
- return 0;
- }
- read(keyd_fd, &keyid, sizeof(keyid));
- }
-
- return keyid;
-}
-
/**
* iterate_keys - call a function once for each key in the db.
* @iterfunc: The function to call.
dbctx->getkeysigs = generic_getkeysigs;
dbctx->cached_getkeysigs = generic_cached_getkeysigs;
dbctx->keyid2uid = generic_keyid2uid;
- dbctx->getfullkeyid = keyd_getfullkeyid;
dbctx->iterate_keys = keyd_iterate_keys;
return dbctx;