]> the.earth.li Git - onak.git/commit
Improve handling of colliding 64-bit key IDs
authorJonathan McDowell <noodles@earth.li>
Thu, 1 Aug 2019 18:19:30 +0000 (19:19 +0100)
committerJonathan McDowell <noodles@earth.li>
Thu, 1 Aug 2019 18:19:30 +0000 (19:19 +0100)
commitfd9ca85878543771a7f09afd821a5a5511e71aea
tree3fe2fe1d508bd0037f1bbe8c37c932147db0622e
parentd1b4ba940d6bed575b40ac1026514c0b97d5128b
Improve handling of colliding 64-bit key IDs

Originally key retrieval was all performed on the 64 bit key ID but back
in 2013 support was added for fetching by fingerprint. However not all
the pieces to deal with colliding 64 bit IDs were added at this time.
This commit improves things by:

 * Using the fingerprint to retrieve the key to update in update_keys()
 * Returning all keys that share a 64 bit key ID from the DB4 backend,
   rather than just the first found.
 * Adding a test to ensure multiple keys are returned for a colliding
   key lookup.

It also removes the old compatibility code for the DB4 backend with key
lookups by 64 bit key ID.

Note this isn't yet common in the wild; unlike Evil32 it is not possible
to create collisions for arbitrary key IDs.
keydb.c
keydb_db4.c
keys/DDA252EBB8EBE1AF-1.key [new file with mode: 0644]
keys/DDA252EBB8EBE1AF-2.key [new file with mode: 0644]
keys/README
t/all-046-index-64bit-dupe.t [new file with mode: 0755]