Skip to content

Instantly share code, notes, and snippets.

@kaie
Created June 4, 2020 21:16
Show Gist options
  • Save kaie/e87898c4a0de65569ab49e148fc26b25 to your computer and use it in GitHub Desktop.
Save kaie/e87898c4a0de65569ab49e148fc26b25 to your computer and use it in GitHub Desktop.
diff --git a/src/librekey/key_store_pgp.cpp b/src/librekey/key_store_pgp.cpp
index e0e060f0..ac98eeb4 100644
--- a/src/librekey/key_store_pgp.cpp
+++ b/src/librekey/key_store_pgp.cpp
@@ -154,6 +154,21 @@ rnp_key_add_transferable_userid(pgp_key_t *key, pgp_transferable_userid_t *uid)
return true;
}
+void
+rnp_report_failing_key_id(const pgp_key_t &k)
+{
+ size_t hex_len = PGP_KEY_ID_SIZE * 2 + 1;
+ char *keyid = (char *) malloc(hex_len);
+ if (!keyid) {
+ return;
+ }
+ if (rnp_hex_encode(
+ pgp_key_get_keyid(&k), PGP_KEY_ID_SIZE, keyid, hex_len, RNP_HEX_UPPERCASE)) {
+ RNP_LOG(keyid);
+ }
+ free(keyid);
+}
+
bool
rnp_key_store_add_transferable_key(rnp_key_store_t *keyring, pgp_transferable_key_t *tkey)
{
@@ -173,6 +188,7 @@ rnp_key_store_add_transferable_key(rnp_key_store_t *keyring, pgp_transferable_ke
addkey = rnp_key_store_add_key(keyring, &key);
if (!addkey) {
RNP_LOG("Failed to add key to key store.");
+ rnp_report_failing_key_id(key);
return false;
}
@@ -181,6 +197,7 @@ rnp_key_store_add_transferable_key(rnp_key_store_t *keyring, pgp_transferable_ke
pgp_transferable_subkey_t *subkey = (pgp_transferable_subkey_t *) skey;
if (!rnp_key_store_add_transferable_subkey(keyring, subkey, addkey)) {
RNP_LOG("Failed to add subkey to key store.");
+ rnp_report_failing_key_id(key);
goto error;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment