Hi Niibe, On Tue, Oct 17, 2017 at 12:50:37PM +0900, NIIBE Yutaka wrote: > Guido Günther <a...@sigxcpu.org> wrote: > >> > #4 0x0000556a0f29306f bug_at (gpg) > >> > #5 0x0000556a0f243c1e do_we_trust (gpg) > >> > #6 0x0000556a0f243fff find_and_check_key (gpg) > >> > #7 0x0000556a0f2455b6 find_and_check_key (gpg) > >> > #8 0x0000556a0f24b6c2 encrypt_crypt (gpg) > >> > #9 0x0000556a0f203563 main (gpg) > >> > #10 0x00007fd58eee12e1 __libc_start_main (libc.so.6) > >> > #11 0x0000556a0f2054da _start (gpg) > [...] > > I can trivially reproduce this without having mutt involved like: > > > > $ gpg --encrypt --armor --always-trust -r > > 1A6F3E639A4467E8C3476525DF6D76C44D696F6B > > gpg: Ohhhh jeeee: ... this is a bug (../../g10/pkclist.c:417:do_we_trust) > > Aborted (core dumped) > > > > Where the above key is from the debian-keyring package. > > Could you please try with --debug=8192 option (debug for key lookup)? > > Here, I cannot replicate with Debian's gnupg 2.2.1-2. > > When key search, it failed as expired, and it didn't go the code path to > do_we_trust. > > ==================== > $ /usr/bin/gpg --debug=8192 --encrypt --armor --always-trust -r > 1A6F3E639A4467E8C3476525DF6D76C44D696F6B > gpg: enabled debug flags: lookup > gpg: DBG: keydb_search: 1 search descriptions: > gpg: DBG: keydb_search 0: FPR20: '1A6F 3E63 9A44 67E8 C347 6525 DF6D 76C4 > 4D69 6F6B' > gpg: DBG: keydb_search: searching keybox (resource 0 of 1) > gpg: DBG: keydb_search: searched keybox (resource 0 of 1) => Success > gpg: DBG: finish_lookup: checking key 4D696F6B (all)(req_usage=2) > gpg: DBG: checking subkey ED764C3A > gpg: DBG: subkey has expired > gpg: DBG: checking subkey 217028C2 > gpg: DBG: usage does not match: want=2 have=1 > gpg: DBG: no suitable subkeys found - trying primary > gpg: DBG: primary key usage does not match: want=2 have=5 > gpg: DBG: no suitable key found - giving up > gpg: DBG: keydb_search: 1 search descriptions: > gpg: DBG: keydb_search 0: FPR20: '1A6F 3E63 9A44 67E8 C347 6525 DF6D 76C4 > 4D69 6F6B' > gpg: DBG: keydb_search: searching keybox (resource 0 of 1) > gpg: DBG: keydb_search: searched keybox (resource 0 of 1) => EOF > gpg: 1A6F3E639A4467E8C3476525DF6D76C44D696F6B: skipped: Unusable public key > gpg: [stdin]: encryption failed: Unusable public key > gpg: secmem usage: 0/65536 bytes in 0 blocks > $ > ====================
Debug log attached. Cheers, -- Guido
gpg: reading options from '/home/agx/.gnupg.laptop/gpg.conf' gpg: enabled debug flags: lookup gpg: DBG: keydb_search: 1 search descriptions: gpg: DBG: keydb_search 0: LONG_KID: '0A6F5640ADE263B0' gpg: DBG: keydb_search: searching keyring (resource 0 of 2) gpg: DBG: keyring_search: need_uid = 0; need_words = 0; need_keyid = 1; need_fpr = 0; any_skip = 0 gpg: DBG: keyring_search: initializing offset table. (need_keyid: 1 => 1) gpg: DBG: keyring_search: searching from start of resource. gpg: DBG: keyring_search: packet starting at offset 905631 matched descriptor 0 gpg: DBG: keyring_search: returning success gpg: DBG: keydb_search: searched keyring (resource 0 of 2) => Success gpg: DBG: finish_lookup: checking key 8C8DDBD2 (one)(req_usage=2) gpg: DBG: checking subkey ADE263B0 gpg: DBG: subkey might be fine gpg: DBG: using key ADE263B0 gpg: DBG: keydb_search: 1 search descriptions: gpg: DBG: keydb_search 0: LONG_KID: '582CB5D4BD9B5F48' gpg: DBG: keydb_search: searching keyring (resource 0 of 2) gpg: DBG: keyring_search: need_uid = 0; need_words = 0; need_keyid = 1; need_fpr = 0; any_skip = 0 gpg: DBG: keyring_search: initializing offset table. (need_keyid: 1 => 1) gpg: DBG: keyring_search: searching from start of resource. gpg: DBG: keyring_search: packet starting at offset 15866521 matched descriptor 0 gpg: DBG: keyring_search: returning success gpg: DBG: keydb_search: searched keyring (resource 0 of 2) => Success gpg: DBG: finish_lookup: checking key 584122D3 (one)(req_usage=2) gpg: DBG: checking subkey BD9B5F48 gpg: DBG: subkey might be fine gpg: DBG: using key BD9B5F48 gpg: DBG: keydb_search: 1 search descriptions: gpg: DBG: keydb_search 0: LONG_KID: 'CF5E40F944572038' gpg: DBG: keydb_search: searching keyring (resource 0 of 2) gpg: DBG: keyring_search: need_uid = 0; need_words = 0; need_keyid = 1; need_fpr = 0; any_skip = 0 gpg: DBG: keyring_search: initializing offset table. (need_keyid: 1 => 1) gpg: DBG: keyring_search: searching from start of resource. gpg: DBG: keyring_search: packet starting at offset 15863739 matched descriptor 0 gpg: DBG: keyring_search: returning success gpg: DBG: keydb_search: searched keyring (resource 0 of 2) => Success gpg: DBG: finish_lookup: checking key 584122D3 (one)(req_usage=2) gpg: DBG: checking subkey 44572038 gpg: DBG: subkey might be fine gpg: DBG: using key 44572038 gpg: DBG: keydb_search: 1 search descriptions: gpg: DBG: keydb_search 0: FPR20: '1A6F 3E63 9A44 67E8 C347 6525 DF6D 76C4 4D69 6F6B' gpg: DBG: keydb_search: searching keyring (resource 0 of 2) gpg: DBG: keyring_search: need_uid = 0; need_words = 0; need_keyid = 0; need_fpr = 1; any_skip = 0 gpg: DBG: keyring_search: initializing offset table. (need_keyid: 0 => 1) gpg: DBG: keyring_search: searching from start of resource. gpg: DBG: keyring_search: packet starting at offset 9247805 matched descriptor 0 gpg: DBG: keyring_search: returning success gpg: DBG: keydb_search: searched keyring (resource 0 of 2) => Success gpg: DBG: finish_lookup: checking key 4D696F6B (all)(req_usage=2) gpg: DBG: checking subkey ED764C3A gpg: DBG: subkey has expired gpg: DBG: checking subkey 217028C2 gpg: DBG: usage does not match: want=2 have=1 gpg: DBG: no suitable subkeys found - trying primary gpg: DBG: primary key usage does not match: want=2 have=5 gpg: DBG: no suitable key found - giving up gpg: DBG: keydb_search: 1 search descriptions: gpg: DBG: keydb_search 0: FPR20: '1A6F 3E63 9A44 67E8 C347 6525 DF6D 76C4 4D69 6F6B' gpg: DBG: keydb_search: searching keyring (resource 0 of 2) gpg: DBG: keyring_search: need_uid = 0; need_words = 0; need_keyid = 0; need_fpr = 1; any_skip = 0 gpg: DBG: keyring_search: initializing offset table. (need_keyid: 0 => 1) gpg: DBG: keyring_search: not searching from start of resource. gpg: DBG: keyring_search: no matches (EOF) gpg: DBG: keydb_search: searched keyring (resource 0 of 2) => EOF gpg: DBG: keydb_search: searching keyring (resource 1 of 2) gpg: DBG: keyring_search: need_uid = 0; need_words = 0; need_keyid = 0; need_fpr = 1; any_skip = 0 gpg: DBG: keyring_search: initializing offset table. (need_keyid: 0 => 1) gpg: DBG: keyring_search: searching from start of resource. gpg: DBG: keyring_search: packet starting at offset 27104390 matched descriptor 0 gpg: DBG: keyring_search: returning success gpg: DBG: keydb_search: searched keyring (resource 1 of 2) => Success gpg: DBG: finish_lookup: checking key 4D696F6B (all)(req_usage=2) gpg: DBG: checking subkey ED764C3A gpg: DBG: subkey might be fine gpg: DBG: checking subkey 217028C2 gpg: DBG: usage does not match: want=2 have=1 gpg: DBG: using key ED764C3A gpg: DBG: keydb_search: 1 search descriptions: gpg: DBG: keydb_search 0: LONG_KID: 'DF6D76C44D696F6B' gpg: DBG: keydb_search: searching keyring (resource 0 of 2) gpg: DBG: keyring_search: need_uid = 0; need_words = 0; need_keyid = 1; need_fpr = 0; any_skip = 0 gpg: DBG: keyring_search: initializing offset table. (need_keyid: 1 => 1) gpg: DBG: keyring_search: searching from start of resource. gpg: DBG: keyring_search: packet starting at offset 9247805 matched descriptor 0 gpg: DBG: keyring_search: returning success gpg: DBG: keydb_search: searched keyring (resource 0 of 2) => Success gpg: DBG: finish_lookup: checking key 4D696F6B (one)(req_usage=0) gpg: DBG: using key 4D696F6B gpg: Ohhhh jeeee: ... this is a bug (../../g10/pkclist.c:417:do_we_trust)