aboutsummaryrefslogtreecommitdiffstats
path: root/kbx/backend-support.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2020-09-22 13:42:12 +0000
committerWerner Koch <[email protected]>2020-09-22 13:42:40 +0000
commit0e892bda4e0bf9db9116d7d5585d4e7b0d2eae57 (patch)
treed696b53bb2ecc8ee4e2a3f4b7a9c8e358df9f029 /kbx/backend-support.c
parentkbx: Add bounds check to detect corrupt keyboxes. (diff)
downloadgnupg-0e892bda4e0bf9db9116d7d5585d4e7b0d2eae57.tar.gz
gnupg-0e892bda4e0bf9db9116d7d5585d4e7b0d2eae57.zip
keyboxd: Extend PUBKEY_INFO status line with an uid ordinal.
* kbx/backend-sqlite.c (table_definitions): Add column UINO to userids. (be_sqlite_local_s): Add fields select_col_uidno and select_col_subkey. (run_select_statement): Also select subkey or uidno column. (be_sqlite_search): Return their values. (store_into_userid): Store the UIDNO. * kbx/backend-support.c (be_return_pubkey): Extend PUBKEY_INFO. -- For an existing database adding the new column to the table userid is straightforward. However if the original version of the schema used an integer for the keyid column, that column has likely be renamed. Make sure that the NOT NULL constraint has also be removed; check the SQLite documentation on how this can be done. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'kbx/backend-support.c')
-rw-r--r--kbx/backend-support.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kbx/backend-support.c b/kbx/backend-support.c
index a35088c74..1821129ea 100644
--- a/kbx/backend-support.c
+++ b/kbx/backend-support.c
@@ -167,16 +167,17 @@ be_find_request_part (backend_handle_t backend_hd, db_request_t request,
gpg_error_t
be_return_pubkey (ctrl_t ctrl, const void *buffer, size_t buflen,
enum pubkey_types pubkey_type, const unsigned char *ubid,
- int is_ephemeral, int is_revoked)
+ int is_ephemeral, int is_revoked, int uid_no, int pk_no)
{
gpg_error_t err;
char hexubid[2*UBID_LEN+1];
bin2hex (ubid, UBID_LEN, hexubid);
- err = status_printf (ctrl, "PUBKEY_INFO", "%d %s %c%c",
+ err = status_printf (ctrl, "PUBKEY_INFO", "%d %s %c%c %d %d",
pubkey_type, hexubid,
is_ephemeral? 'e':'-',
- is_revoked? 'r':'-' );
+ is_revoked? 'r':'-',
+ uid_no, pk_no);
if (err)
goto leave;