mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpg: Improve the keyblock cache's transparency.
* kbx/keybox-search.c (keybox_offset): New function. * g10/keydb.c (struct keyblock_cache): Add fields resource and offset. (keyblock_cache_clear): Reset HD->KEYBLOCK_CACHE.RESOURCE and HD->KEYBLOCK_CACHE.OFFSET. (keydb_search): Don't use the cached result if it comes before the current file position. When caching an entry, also record the position at which it was found. -- Signed-off-by: Neal H. Walfield <neal@g10code.com> GnuPG-bug-id: 2187
This commit is contained in:
parent
0ea186db64
commit
2e4e10c1dc
3 changed files with 28 additions and 1 deletions
|
@ -1188,3 +1188,11 @@ keybox_get_flags (KEYBOX_HANDLE hd, int what, int idx, unsigned int *value)
|
|||
ec = get_flag_from_image (buffer, length, what, value);
|
||||
return ec? gpg_error (ec):0;
|
||||
}
|
||||
|
||||
off_t
|
||||
keybox_offset (KEYBOX_HANDLE hd)
|
||||
{
|
||||
if (!hd->fp)
|
||||
return 0;
|
||||
return ftello (hd->fp);
|
||||
}
|
||||
|
|
|
@ -77,6 +77,8 @@ int keybox_set_ephemeral (KEYBOX_HANDLE hd, int yes);
|
|||
|
||||
int keybox_lock (KEYBOX_HANDLE hd, int yes);
|
||||
|
||||
off_t keybox_offset (KEYBOX_HANDLE hd);
|
||||
|
||||
/*-- keybox-file.c --*/
|
||||
/* Fixme: This function does not belong here: Provide a better
|
||||
interface to create a new keybox file. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue