searching for a key with gpg ldap

Ralf Hauser ralfhauser at gmx.ch
Thu Jun 15 12:14:22 CEST 2006


Hi,

Leaving the TLS/SSL problem from the previous mail aside, with

gpg.1.4.3 --keyserver ldap://localhost:2389 --keyserver-options 'binddn="dn=micky"' --keyserver-options "debug=5" --keyserver-options bindpw=mouse --search-keys Test

on windows, a nice "bind" succeeds and the serverInfo is queried with success.

But then gpg presents:
   filter : '(pgpdisabled=0)

all others (e.g. http://sourceforge.net/projects/jxplorer/), however ask for
   filter: (pgpUserID=*test*)

Looking at the below 1.4.2. debug output, it appears that the first half of the query 
   "(&(pgpuserid=*Test*)(pgpdisabled=0))"
   
Never reaches my ldap server (directory.apache.org).


So, the questions are:
1) why doesn't gpg ask for the REAL SEARCH STRING ("pgpuserid=*Test*")?
2) what response might my ldap server give to "pgpdisabled=0" to satisfy gpg such that it might ask me also about "*Test*" in a following query.
Unsuccessful attempts are:
  - en empty result causes the gpg client to terminate the search
  - returning an arbitrary keys causes it to present that one and then stop search too
  - listing all keys irrespective of whether they contain "Test" or not is against the policy of our server


Somehow "pgpdisabled=0" to me looks like "dear server, give me all keys you don't consider as disabled"?

On the gpg side, the output of v1.4.3. is:
gpg: searching for "Test" from ldap server localhost
gpgkeys: not built with debugging support
search type is 0, and key is "Test"
gpg: key "Test" not found on keyserver

Any hints are highly appreciated!

   Ralf

P.S.: Version 1.4.2 (cygwin) output is probably more helpful:

Gpg: WARNING: using insecure memory!
gpg: please see http://www.gnupg.org/faq.html for more information
gpg: searching for "Test" from ldap server localhost
gpgkeys: debug level 5
ldap_create
ldap_search
put_filter: "(objectClass=*)"
put_filter: simple
put_simple_filter: "objectClass=*"
ldap_send_initial_request
ldap_new_connection
ldap_int_open_connection
ldap_connect_to_host: TCP localhost:2389
ldap_new_socket: 4
ldap_prepare_socket: 4
ldap_connect_to_host: Trying 127.0.0.1:2389
ldap_connect_timeout: fd: 4 tm: -1 async: 0
ldap_ndelay_on: 4
ldap_is_sock_ready: 4
ldap_ndelay_off: 4
ldap_open_defconn: successful
ldap_send_server_request
ldap_result msgid 1
ldap_chkResponseList for msgid=1, all=1
ldap_chkResponseList returns NULL
wait4msg (infinite timeout), msgid 1
wait4msg continue, msgid 1, all 1
** Connections:
* host: localhost  port: 2389  (default)
  refcnt: 2  status: Connected
  last used: Thu Jun 15 07:41:13 2006

** Outstanding Requests:
 * msgid 1,  origid 1, status InProgress
   outstanding referrals 0, parent count 0
** Response Queue:
   Empty
ldap_chkResponseList for msgid=1, all=1
ldap_chkResponseList returns NULL
ldap_int_select
read1msg: msgid 1, all 1
ldap_read: message type search-entry msgid 1, original id 1 wait4msg continue, msgid 1, all 1
** Connections:
* host: localhost  port: 2389  (default)
  refcnt: 2  status: Connected
  last used: Thu Jun 15 07:41:13 2006

** Outstanding Requests:
 * msgid 1,  origid 1, status InProgress
   outstanding referrals 0, parent count 0
** Response Queue:
 * msgid 1,  type 100
ldap_chkResponseList for msgid=1, all=1
ldap_chkResponseList returns NULL
ldap_int_select
read1msg: msgid 1, all 1
ldap_read: message type search-result msgid 1, original id 1 new result:  res_errno: 0, res_error: <>, res_matched: <>
read1msg:  0 new referrals
read1msg:  mark request completed, id = 1 request 1 done
res_errno: 0, res_error: <>, res_matched: <> ldap_free_request (origid 1, msgid 1) ldap_free_connection
ldap_free_connection: refcnt 1
adding response id 1 type 101:
ldap_parse_result
ldap_get_values
ldap_search
put_filter: "(objectClass=*)"
put_filter: simple
put_simple_filter: "objectClass=*"
ldap_send_initial_request
ldap_send_server_request
ldap_result msgid 2
ldap_chkResponseList for msgid=2, all=1
ldap_chkResponseList returns NULL
wait4msg (infinite timeout), msgid 2
wait4msg continue, msgid 2, all 1
** Connections:
* host: localhost  port: 2389  (default)
  refcnt: 2  status: Connected
  last used: Thu Jun 15 07:41:14 2006

** Outstanding Requests:
 * msgid 2,  origid 2, status InProgress
   outstanding referrals 0, parent count 0
** Response Queue:
   Empty
ldap_chkResponseList for msgid=2, all=1
ldap_chkResponseList returns NULL
ldap_int_select
read1msg: msgid 2, all 1
ldap_read: message type search-result msgid 2, original id 2 ldap_chase_referrals
read1msg:  V2 referral chased, mark request completed, id = 2 new result:  res_errno: 32, res_error: <failed on search operation>, res_matched: <ou=system>
read1msg:  0 new referrals
read1msg:  mark request completed, id = 2 request 2 done
res_errno: 32, res_error: <failed on search operation>, res_matched: <ou=system> ldap_free_request (origid 2, msgid 2) ldap_free_connection
ldap_free_connection: refcnt 1
ldap_parse_result
ldap_search
put_filter: "(objectClass=*)"
put_filter: simple
put_simple_filter: "objectClass=*"
ldap_send_initial_request
ldap_send_server_request
ldap_result msgid 3
ldap_chkResponseList for msgid=3, all=1
ldap_chkResponseList returns NULL
wait4msg (infinite timeout), msgid 3
wait4msg continue, msgid 3, all 1
** Connections:
* host: localhost  port: 2389  (default)
  refcnt: 2  status: Connected
  last used: Thu Jun 15 07:41:14 2006

** Outstanding Requests:
 * msgid 3,  origid 3, status InProgress
   outstanding referrals 0, parent count 0
** Response Queue:
   Empty
ldap_chkResponseList for msgid=3, all=1
ldap_chkResponseList returns NULL
ldap_int_select
read1msg: msgid 3, all 1
ldap_read: message type search-entry msgid 3, original id 3 wait4msg continue, msgid 3, all 1
** Connections:
* host: localhost  port: 2389  (default)
  refcnt: 2  status: Connected
  last used: Thu Jun 15 07:41:14 2006

** Outstanding Requests:
 * msgid 3,  origid 3, status InProgress
   outstanding referrals 0, parent count 0
** Response Queue:
 * msgid 3,  type 100
ldap_chkResponseList for msgid=3, all=1
ldap_chkResponseList returns NULL
ldap_int_select
read1msg: msgid 3, all 1
ldap_read: message type search-result msgid 3, original id 3 new result:  res_errno: 0, res_error: <>, res_matched: <>
read1msg:  0 new referrals
read1msg:  mark request completed, id = 3 request 3 done
res_errno: 0, res_error: <>, res_matched: <> ldap_free_request (origid 3, msgid 3) ldap_free_connection
ldap_free_connection: refcnt 1
adding response id 3 type 101:
ldap_parse_result
ldap_get_values
ldap_msgfree
ldap_msgfree
ldap_search
put_filter: "(&(pgpuserid=*Test*)(pgpdisabled=0))"
put_filter: AND
put_filter_list "(pgpuserid=*Test*)(pgpdisabled=0)"
put_filter: "(pgpuserid=*Test*)"
put_filter: simple
put_simple_filter: "pgpuserid=*Test*"
put_substring_filter "pgpuserid=*Test*"
put_filter: "(pgpdisabled=0)"
put_filter: simple
put_simple_filter: "pgpdisabled=0"
ldap_send_initial_request
ldap_send_server_request
ldap_result msgid 4
ldap_chkResponseList for msgid=4, all=1
ldap_chkResponseList returns NULL
wait4msg (infinite timeout), msgid 4
wait4msg continue, msgid 4, all 1
** Connections:
* host: localhost  port: 2389  (default)
  refcnt: 2  status: Connected
  last used: Thu Jun 15 07:41:14 2006

** Outstanding Requests:
 * msgid 4,  origid 4, status InProgress
   outstanding referrals 0, parent count 0
** Response Queue:
   Empty
ldap_chkResponseList for msgid=4, all=1
ldap_chkResponseList returns NULL
ldap_int_select
read1msg: msgid 4, all 1
ldap_read: message type search-result msgid 4, original id 4 new result:  res_errno: 0, res_error: <>, res_matched: <>
read1msg:  0 new referrals
read1msg:  mark request completed, id = 4 request 4 done
res_errno: 0, res_error: <>, res_matched: <> ldap_free_request (origid 4, msgid 4) ldap_free_connection
ldap_free_connection: refcnt 1
ldap_parse_result
ldap_msgfree
gpg: key "Test" not found on keyserver





More information about the Gnupg-users mailing list