aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--keyserver/ChangeLog3
-rw-r--r--keyserver/gpgkeys_ldap.c152
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)