diff options
author | David Shaw <[email protected]> | 2006-02-21 16:09:09 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2006-02-21 16:09:09 +0000 |
commit | 0eb4e93bd4ba18b8326a946403fde32f7429efbd (patch) | |
tree | b843c5acd6409c88bc06eaef41485fad907c1868 | |
parent | * keyserver.c (parse_keyserver_uri): Include the scheme in the uri (diff) | |
download | gnupg-0eb4e93bd4ba18b8326a946403fde32f7429efbd.tar.gz gnupg-0eb4e93bd4ba18b8326a946403fde32f7429efbd.zip |
* gpgv.c: Stub keyserver_import_ldap.
* keyserver-internal.h, keyserver.c (keyserver_import_ldap): Import using
the PGP Universal trick of asking ldap://keys.(maildomain) for the key.
-rw-r--r-- | g10/ChangeLog | 8 | ||||
-rw-r--r-- | g10/gpgv.c | 3 | ||||
-rw-r--r-- | g10/keyserver-internal.h | 1 | ||||
-rw-r--r-- | g10/keyserver.c | 35 |
4 files changed, 47 insertions, 0 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog index 5b6abd31d..7162a1556 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,11 @@ +2006-02-21 David Shaw <[email protected]> + + * gpgv.c: Stub keyserver_import_ldap. + + * keyserver-internal.h, keyserver.c (keyserver_import_ldap): + Import using the PGP Universal trick of asking + ldap://keys.(maildomain) for the key. + 2006-02-20 David Shaw <[email protected]> * keyserver.c (parse_keyserver_uri): Include the scheme in the uri diff --git a/g10/gpgv.c b/g10/gpgv.c index dbff4831c..95bf09791 100644 --- a/g10/gpgv.c +++ b/g10/gpgv.c @@ -289,6 +289,9 @@ keyserver_import_pka(const char *name) { return -1; } int keyserver_import_name(const char *name) { return -1; } +int +keyserver_import_ldap(const char *name) { return -1; } + /* Stub: * No encryption here but mainproc links to these functions. */ diff --git a/g10/keyserver-internal.h b/g10/keyserver-internal.h index 1f983176e..48cb1ea4f 100644 --- a/g10/keyserver-internal.h +++ b/g10/keyserver-internal.h @@ -44,5 +44,6 @@ int keyserver_fetch(STRLIST urilist); int keyserver_import_cert(const char *name); int keyserver_import_pka(const char *name); int keyserver_import_name(const char *name); +int keyserver_import_ldap(const char *name); #endif /* !_KEYSERVER_INTERNAL_H_ */ diff --git a/g10/keyserver.c b/g10/keyserver.c index af65ad365..240ea99e6 100644 --- a/g10/keyserver.c +++ b/g10/keyserver.c @@ -2016,3 +2016,38 @@ keyserver_import_name(const char *name) return rc; } + +/* Use the PGP Universal trick of asking ldap://keys.(maildomain) for + the key. */ +int +keyserver_import_ldap(const char *name) +{ + char *domain; + struct keyserver_spec *keyserver; + STRLIST list=NULL; + int rc; + + append_to_strlist(&list,name); + + /* Parse out the domain */ + domain=strrchr(name,'@'); + if(!domain) + return G10ERR_GENERAL; + + domain++; + + keyserver=xmalloc_clear(sizeof(struct keyserver_spec)); + + keyserver->scheme=xstrdup("ldap"); + keyserver->host=xmalloc(5+strlen(domain)+1); + strcpy(keyserver->host,"keys."); + strcat(keyserver->host,domain); + + rc=keyserver_work(KS_GETNAME,list,NULL,0,keyserver); + + free_strlist(list); + + free_keyserver_spec(keyserver); + + return rc; +} |