diff options
author | David Shaw <[email protected]> | 2004-08-23 16:59:11 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2004-08-23 16:59:11 +0000 |
commit | 357afb50843b822da3e77b46342535f3916d2520 (patch) | |
tree | e8a5403f7a1d697c381f58ad617b5bbd815c3f74 | |
parent | * keyserver.c (keyserver_search_prompt): Make sure the search string is (diff) | |
download | gnupg-357afb50843b822da3e77b46342535f3916d2520.tar.gz gnupg-357afb50843b822da3e77b46342535f3916d2520.zip |
* gpgkeys_ldap.c (get_key): Factor out informational display into new
function build_info().
Diffstat (limited to '')
-rw-r--r-- | keyserver/ChangeLog | 3 | ||||
-rw-r--r-- | keyserver/gpgkeys_ldap.c | 152 |
2 files changed, 81 insertions, 74 deletions
diff --git a/keyserver/ChangeLog b/keyserver/ChangeLog index 3dece69d4..79be18d23 100644 --- a/keyserver/ChangeLog +++ b/keyserver/ChangeLog @@ -1,5 +1,8 @@ 2004-08-23 David Shaw <[email protected]> + * gpgkeys_ldap.c (get_key): Factor out informational display into + new function build_info(). + * gpgkeys_ldap.c (build_attrs): Properly terminate user ID strings that got shrunk due to encoding. diff --git a/keyserver/gpgkeys_ldap.c b/keyserver/gpgkeys_ldap.c index 91dca0614..4bef51e0e 100644 --- a/keyserver/gpgkeys_ldap.c +++ b/keyserver/gpgkeys_ldap.c @@ -888,6 +888,80 @@ send_key_keyserver(int *eof) return ret; } +static void +build_info(const char *certid,LDAPMessage *each) +{ + char **vals; + + fprintf(output,"INFO %s BEGIN\n",certid); + + fprintf(output,"pub:%s:",certid); + + vals=ldap_get_values(ldap,each,"pgpkeytype"); + if(vals!=NULL) + { + if(strcmp(vals[0],"RSA")==0) + fprintf(output,"1"); + else if(strcmp(vals[0],"DSS/DH")==0) + fprintf(output,"17"); + ldap_value_free(vals); + } + + fprintf(output,":"); + + vals=ldap_get_values(ldap,each,"pgpkeysize"); + if(vals!=NULL) + { + if(atoi(vals[0])>0) + fprintf(output,"%d",atoi(vals[0])); + ldap_value_free(vals); + } + + fprintf(output,":"); + + vals=ldap_get_values(ldap,each,"pgpkeycreatetime"); + if(vals!=NULL) + { + if(strlen(vals[0])==15) + fprintf(output,"%u",(unsigned int)ldap2epochtime(vals[0])); + ldap_value_free(vals); + } + + fprintf(output,":"); + + vals=ldap_get_values(ldap,each,"pgpkeyexpiretime"); + if(vals!=NULL) + { + if(strlen(vals[0])==15) + fprintf(output,"%u",(unsigned int)ldap2epochtime(vals[0])); + ldap_value_free(vals); + } + + fprintf(output,":"); + + vals=ldap_get_values(ldap,each,"pgprevoked"); + if(vals!=NULL) + { + if(atoi(vals[0])==1) + fprintf(output,"r"); + ldap_value_free(vals); + } + + fprintf(output,"\n"); + + vals=ldap_get_values(ldap,each,"pgpuserid"); + if(vals!=NULL) + { + int i; + + for(i=0;vals[i];i++) + fprintf(output,"uid:%s\n",vals[i]); + ldap_value_free(vals); + } + + fprintf(output,"INFO %s END\n",certid); +} + /* Note that key-not-found is not a fatal error */ static int get_key(char *getkey) @@ -952,8 +1026,6 @@ get_key(char *getkey) sprintf(search,"(pgpkeyid=%.8s)",getkey); } - fprintf(output,"KEY 0x%s BEGIN\n",getkey); - if(verbose>2) fprintf(console,"gpgkeys: LDAP fetch for: %s\n",search); @@ -971,6 +1043,7 @@ get_key(char *getkey) int errtag=ldap_err_to_gpg_err(err); fprintf(console,"gpgkeys: LDAP search error: %s\n",ldap_err2string(err)); + fprintf(output,"KEY 0x%s BEGIN\n",getkey); fprintf(output,"KEY 0x%s FAILED %d\n",getkey,errtag); return errtag; } @@ -979,6 +1052,7 @@ get_key(char *getkey) if(count<1) { fprintf(console,"gpgkeys: key %s not found on keyserver\n",getkey); + fprintf(output,"KEY 0x%s BEGIN\n",getkey); fprintf(output,"KEY 0x%s FAILED %d\n",getkey,KEYSERVER_KEY_NOT_FOUND); } else @@ -1016,79 +1090,9 @@ get_key(char *getkey) goto fail; } - if(verbose) - { - vals=ldap_get_values(ldap,each,"pgpuserid"); - if(vals!=NULL) - { - /* This is wrong, as the user ID is UTF8. A - better way to handle this would be to send it - over to gpg and display it on that side of - the pipe. */ - fprintf(console,"\nUser ID:\t%s\n",vals[0]); - ldap_value_free(vals); - } - - vals=ldap_get_values(ldap,each,"pgprevoked"); - if(vals!=NULL) - { - if(atoi(vals[0])==1) - fprintf(console,"\t\t** KEY REVOKED **\n"); - ldap_value_free(vals); - } - - vals=ldap_get_values(ldap,each,"pgpdisabled"); - if(vals!=NULL) - { - if(atoi(vals[0])==1) - fprintf(console,"\t\t** KEY DISABLED **\n"); - ldap_value_free(vals); - } - - vals=ldap_get_values(ldap,each,"pgpkeyid"); - if(vals!=NULL) - { - fprintf(console,"Short key ID:\t%s\n",vals[0]); - ldap_value_free(vals); - } - - fprintf(console,"Long key ID:\t%s\n",certid[0]); - - /* YYYYMMDDHHmmssZ */ - - vals=ldap_get_values(ldap,each,"pgpkeycreatetime"); - if(vals!=NULL) - { - if(strlen(vals[0])==15) - fprintf(console,"Key created:\t%.2s/%.2s/%.4s\n", - &vals[0][4],&vals[0][6],vals[0]); - ldap_value_free(vals); - } - - vals=ldap_get_values(ldap,each,"modifytimestamp"); - if(vals!=NULL) - { - if(strlen(vals[0])==15) - fprintf(console,"Key modified:\t%.2s/%.2s/%.4s\n", - &vals[0][4],&vals[0][6],vals[0]); - ldap_value_free(vals); - } + build_info(certid[0],each); - vals=ldap_get_values(ldap,each,"pgpkeysize"); - if(vals!=NULL) - { - if(atoi(vals[0])>0) - fprintf(console,"Key size:\t%d\n",atoi(vals[0])); - ldap_value_free(vals); - } - - vals=ldap_get_values(ldap,each,"pgpkeytype"); - if(vals!=NULL) - { - fprintf(console,"Key type:\t%s\n",vals[0]); - ldap_value_free(vals); - } - } + fprintf(output,"KEY 0x%s BEGIN\n",getkey); vals=ldap_get_values(ldap,each,pgpkeystr); if(vals==NULL) |