aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--common/ChangeLog5
-rw-r--r--common/userids.c9
-rw-r--r--common/userids.h3
-rw-r--r--dirmngr/ChangeLog6
-rw-r--r--dirmngr/ks-engine-hkp.c4
-rw-r--r--g10/ChangeLog10
-rw-r--r--g10/delkey.c2
-rw-r--r--g10/export.c2
-rw-r--r--g10/getkey.c2
-rw-r--r--g10/keyserver.c8
-rw-r--r--g10/revoke.c4
-rw-r--r--g10/trustdb.c2
-rw-r--r--sm/ChangeLog11
-rw-r--r--sm/certlist.c4
-rw-r--r--sm/delete.c2
-rw-r--r--sm/export.c4
-rw-r--r--sm/import.c2
-rw-r--r--sm/keydb.c2
-rw-r--r--sm/keylist.c2
-rw-r--r--sm/sign.c2
20 files changed, 62 insertions, 24 deletions
diff --git a/common/ChangeLog b/common/ChangeLog
index ba7794e08..a68246e4c 100644
--- a/common/ChangeLog
+++ b/common/ChangeLog
@@ -1,3 +1,8 @@
+2011-04-25 Werner Koch <[email protected]>
+
+ * userids.c (classify_user_id): Add arg OPENPGP_HACK to fix
+ regression from 2009-12-08.
+
2011-04-01 Werner Koch <[email protected]>
* sysutils.c (get_uint_nonce): New.
diff --git a/common/userids.c b/common/userids.c
index 9cc29f3b4..8c89c3284 100644
--- a/common/userids.c
+++ b/common/userids.c
@@ -61,7 +61,7 @@
*/
gpg_error_t
-classify_user_id (const char *name, KEYDB_SEARCH_DESC *desc)
+classify_user_id (const char *name, KEYDB_SEARCH_DESC *desc, int openpgp_hack)
{
const char *s;
int hexprefix = 0;
@@ -95,7 +95,12 @@ classify_user_id (const char *name, KEYDB_SEARCH_DESC *desc)
case '<': /* An email address. */
mode = KEYDB_SEARCH_MODE_MAIL;
- s++;
+ /* FIXME: The keyring code in g10 assumes that the mail name is
+ prefixed with an '<'. However the keybox code used for sm/
+ assumes it has been removed. For now we use this simple hack
+ to overcome the problem. */
+ if (!openpgp_hack)
+ s++;
desc->u.name = s;
break;
diff --git a/common/userids.h b/common/userids.h
index 246b10768..9b3a2c313 100644
--- a/common/userids.h
+++ b/common/userids.h
@@ -22,7 +22,8 @@
#include "../kbx/keybox-search-desc.h"
-gpg_error_t classify_user_id (const char *name, KEYDB_SEARCH_DESC *desc);
+gpg_error_t classify_user_id (const char *name, KEYDB_SEARCH_DESC *desc,
+ int openpgp_hack);
#endif /*GNUPG_COMMON_USERIDS_H*/
diff --git a/dirmngr/ChangeLog b/dirmngr/ChangeLog
index f7ac88719..e024bab43 100644
--- a/dirmngr/ChangeLog
+++ b/dirmngr/ChangeLog
@@ -1,3 +1,9 @@
+2011-04-25 Werner Koch <[email protected]>
+
+ * ks-engine-hkp.c (ks_hkp_search): Mark classify_user_id for use
+ with OpenPGP.
+ (ks_hkp_get): Ditto.
+
2011-04-12 Werner Koch <[email protected]>
* ks-engine-hkp.c (ks_hkp_search, ks_hkp_get, ks_hkp_put): Factor
diff --git a/dirmngr/ks-engine-hkp.c b/dirmngr/ks-engine-hkp.c
index 0dd9a646d..d4a12111b 100644
--- a/dirmngr/ks-engine-hkp.c
+++ b/dirmngr/ks-engine-hkp.c
@@ -654,7 +654,7 @@ ks_hkp_search (ctrl_t ctrl, parsed_uri_t uri, const char *pattern,
Note that HKP keyservers like the 0x to be present when searching
by keyid. We need to re-format the fingerprint and keyids so to
remove the gpg specific force-use-of-this-key flag ("!"). */
- err = classify_user_id (pattern, &desc);
+ err = classify_user_id (pattern, &desc, 1);
if (err)
return err;
switch (desc.mode)
@@ -772,7 +772,7 @@ ks_hkp_get (ctrl_t ctrl, parsed_uri_t uri, const char *keyspec, estream_t *r_fp)
Note that HKP keyservers like the 0x to be present when searching
by keyid. We need to re-format the fingerprint and keyids so to
remove the gpg specific force-use-of-this-key flag ("!"). */
- err = classify_user_id (keyspec, &desc);
+ err = classify_user_id (keyspec, &desc, 1);
if (err)
return err;
switch (desc.mode)
diff --git a/g10/ChangeLog b/g10/ChangeLog
index a1c608f76..8b22df854 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,13 @@
+2011-04-25 Werner Koch <[email protected]>
+
+ * delkey.c (do_delete_key): Mark classify_user_id for use with
+ OpenPGP.
+ * trustdb.c (register_trusted_key): Ditto.
+ * revoke.c (gen_revoke): Ditto.
+ * keyserver.c (keyserver_export, keyidlist, keyserver_export): Ditto.
+ * getkey.c (key_byname): Ditto.
+ * export.c (do_export_stream): Ditto.
+
2011-04-20 Marcus Brinkmann <[email protected]>
* keylist.c (list_keyblock_colon): Use get_ownertrust_info, not
diff --git a/g10/delkey.c b/g10/delkey.c
index 978549826..3b47c4049 100644
--- a/g10/delkey.c
+++ b/g10/delkey.c
@@ -63,7 +63,7 @@ do_delete_key( const char *username, int secret, int force, int *r_sec_avail )
*r_sec_avail = 0;
/* Search the userid */
- rc = classify_user_id (username, &desc);
+ rc = classify_user_id (username, &desc, 1);
exactmatch = (desc.mode == KEYDB_SEARCH_MODE_FPR
|| desc.mode == KEYDB_SEARCH_MODE_FPR16
|| desc.mode == KEYDB_SEARCH_MODE_FPR20);
diff --git a/g10/export.c b/g10/export.c
index 191f68b8b..9f4959e61 100644
--- a/g10/export.c
+++ b/g10/export.c
@@ -752,7 +752,7 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret,
for (ndesc=0, sl=users; sl; sl = sl->next)
{
- if (!(err=classify_user_id (sl->d, desc+ndesc)))
+ if (!(err=classify_user_id (sl->d, desc+ndesc, 1)))
ndesc++;
else
log_error (_("key \"%s\" not found: %s\n"),
diff --git a/g10/getkey.c b/g10/getkey.c
index 6464f9e0f..171f17781 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -617,7 +617,7 @@ key_byname (GETKEY_CTX *retctx, strlist_t namelist,
{
gpg_error_t err;
- err = classify_user_id (r->d, &ctx->items[n]);
+ err = classify_user_id (r->d, &ctx->items[n], 1);
if (ctx->items[n].exact)
ctx->exact = 1;
diff --git a/g10/keyserver.c b/g10/keyserver.c
index 31c7133d6..5cc7438ad 100644
--- a/g10/keyserver.c
+++ b/g10/keyserver.c
@@ -626,7 +626,7 @@ parse_keyrec(char *keystring)
if((tok=strsep(&keystring,":"))==NULL)
return ret;
- err = classify_user_id (tok, &work->desc);
+ err = classify_user_id (tok, &work->desc, 1);
if (err || (work->desc.mode != KEYDB_SEARCH_MODE_SHORT_KID
&& work->desc.mode != KEYDB_SEARCH_MODE_LONG_KID
&& work->desc.mode != KEYDB_SEARCH_MODE_FPR16
@@ -996,7 +996,7 @@ keyserver_export (ctrl_t ctrl, strlist_t users)
/* Weed out descriptors that we don't support sending */
for(;users;users=users->next)
{
- err = classify_user_id (users->d, &desc);
+ err = classify_user_id (users->d, &desc, 1);
if (err || (desc.mode != KEYDB_SEARCH_MODE_SHORT_KID
&& desc.mode != KEYDB_SEARCH_MODE_LONG_KID
&& desc.mode != KEYDB_SEARCH_MODE_FPR16
@@ -1031,7 +1031,7 @@ keyserver_import (ctrl_t ctrl, strlist_t users)
for(;users;users=users->next)
{
- err = classify_user_id (users->d, &desc[count]);
+ err = classify_user_id (users->d, &desc[count], 1);
if (err || (desc[count].mode != KEYDB_SEARCH_MODE_SHORT_KID
&& desc[count].mode != KEYDB_SEARCH_MODE_LONG_KID
&& desc[count].mode != KEYDB_SEARCH_MODE_FPR16
@@ -1125,7 +1125,7 @@ keyidlist(strlist_t users,KEYDB_SEARCH_DESC **klist,int *count,int fakev3)
for (ndesc=0, sl=users; sl; sl = sl->next)
{
gpg_error_t err;
- if (!(err = classify_user_id (sl->d, desc+ndesc)))
+ if (!(err = classify_user_id (sl->d, desc+ndesc, 1)))
ndesc++;
else
log_error (_("key \"%s\" not found: %s\n"),
diff --git a/g10/revoke.c b/g10/revoke.c
index 3beeacfe1..c18dfb989 100644
--- a/g10/revoke.c
+++ b/g10/revoke.c
@@ -220,7 +220,7 @@ gen_desig_revoke( const char *uname, strlist_t locusr )
afx = new_armor_context ();
kdbhd = keydb_new ();
- rc = classify_user_id (uname, &desc);
+ rc = classify_user_id (uname, &desc, 1);
if (!rc)
rc = keydb_search (kdbhd, &desc, 1);
if (rc) {
@@ -463,7 +463,7 @@ gen_revoke (const char *uname)
/* Search the userid; we don't want the whole getkey stuff here. */
kdbhd = keydb_new ();
- rc = classify_user_id (uname, &desc);
+ rc = classify_user_id (uname, &desc, 1);
if (!rc)
rc = keydb_search (kdbhd, &desc, 1);
if (rc)
diff --git a/g10/trustdb.c b/g10/trustdb.c
index c8964323e..c6ff6922d 100644
--- a/g10/trustdb.c
+++ b/g10/trustdb.c
@@ -217,7 +217,7 @@ register_trusted_key( const char *string )
gpg_error_t err;
KEYDB_SEARCH_DESC desc;
- err = classify_user_id (string, &desc);
+ err = classify_user_id (string, &desc, 1);
if (err || desc.mode != KEYDB_SEARCH_MODE_LONG_KID )
{
log_error(_("`%s' is not a valid long keyID\n"), string );
diff --git a/sm/ChangeLog b/sm/ChangeLog
index 30e71ba8d..7127fb542 100644
--- a/sm/ChangeLog
+++ b/sm/ChangeLog
@@ -1,3 +1,14 @@
+2011-04-25 Werner Koch <[email protected]>
+
+ * certlist.c (gpgsm_add_to_certlist): Mark classify_user_id for
+ use with non-OpenPGP.
+ (gpgsm_find_cert): Ditto.
+ * sign.c (get_default_signer): Ditto.
+ * keylist.c (list_internal_keys): Ditto.
+ * import.c (reimport_one): Ditto.
+ * export.c (gpgsm_export): Ditto.
+ * delete.c (delete_one): Ditto.
+
2011-03-10 Werner Koch <[email protected]>
* minip12.c (oid_pkcs5PBKDF2, oid_pkcs5PBES2, oid_aes128_CBC): New.
diff --git a/sm/certlist.c b/sm/certlist.c
index 299d075f2..0e9031953 100644
--- a/sm/certlist.c
+++ b/sm/certlist.c
@@ -301,7 +301,7 @@ gpgsm_add_to_certlist (ctrl_t ctrl, const char *name, int secret,
KEYDB_HANDLE kh = NULL;
ksba_cert_t cert = NULL;
- rc = classify_user_id (name, &desc);
+ rc = classify_user_id (name, &desc, 0);
if (!rc)
{
kh = keydb_new (0);
@@ -480,7 +480,7 @@ gpgsm_find_cert (const char *name, ksba_sexp_t keyid, ksba_cert_t *r_cert)
KEYDB_HANDLE kh = NULL;
*r_cert = NULL;
- rc = classify_user_id (name, &desc);
+ rc = classify_user_id (name, &desc, 0);
if (!rc)
{
kh = keydb_new (0);
diff --git a/sm/delete.c b/sm/delete.c
index 10ec965cb..97fadfa30 100644
--- a/sm/delete.c
+++ b/sm/delete.c
@@ -45,7 +45,7 @@ delete_one (ctrl_t ctrl, const char *username)
int duplicates = 0;
int is_ephem = 0;
- rc = classify_user_id (username, &desc);
+ rc = classify_user_id (username, &desc, 0);
if (rc)
{
log_error (_("certificate `%s' not found: %s\n"),
diff --git a/sm/export.c b/sm/export.c
index 7884adff3..2e4fed9a1 100644
--- a/sm/export.c
+++ b/sm/export.c
@@ -178,7 +178,7 @@ gpgsm_export (ctrl_t ctrl, strlist_t names, estream_t stream)
{
for (ndesc=0, sl=names; sl; sl = sl->next)
{
- rc = classify_user_id (sl->d, desc+ndesc);
+ rc = classify_user_id (sl->d, desc+ndesc, 0);
if (rc)
{
log_error ("key `%s' not found: %s\n",
@@ -348,7 +348,7 @@ gpgsm_p12_export (ctrl_t ctrl, const char *name, estream_t stream)
goto leave;
}
- err = classify_user_id (name, desc);
+ err = classify_user_id (name, desc, 0);
if (err)
{
log_error ("key `%s' not found: %s\n",
diff --git a/sm/import.c b/sm/import.c
index 7b5852443..363552553 100644
--- a/sm/import.c
+++ b/sm/import.c
@@ -433,7 +433,7 @@ reimport_one (ctrl_t ctrl, struct stats_s *stats, int in_fd)
stats->count++;
- err = classify_user_id (line, &desc);
+ err = classify_user_id (line, &desc, 0);
if (err)
{
print_import_problem (ctrl, NULL, 0);
diff --git a/sm/keydb.c b/sm/keydb.c
index 35343f3dc..d3b911efd 100644
--- a/sm/keydb.c
+++ b/sm/keydb.c
@@ -1205,7 +1205,7 @@ keydb_clear_some_cert_flags (ctrl_t ctrl, strlist_t names)
{
for (ndesc=0, sl=names; sl; sl = sl->next)
{
- rc = classify_user_id (sl->d, desc+ndesc);
+ rc = classify_user_id (sl->d, desc+ndesc, 0);
if (rc)
{
log_error ("key `%s' not found: %s\n",
diff --git a/sm/keylist.c b/sm/keylist.c
index fc903bab8..e67c2d8d3 100644
--- a/sm/keylist.c
+++ b/sm/keylist.c
@@ -1345,7 +1345,7 @@ list_internal_keys (ctrl_t ctrl, strlist_t names, estream_t fp,
{
for (ndesc=0, sl=names; sl; sl = sl->next)
{
- rc = classify_user_id (sl->d, desc+ndesc);
+ rc = classify_user_id (sl->d, desc+ndesc, 0);
if (rc)
{
log_error ("key `%s' not found: %s\n",
diff --git a/sm/sign.c b/sm/sign.c
index 0f83db60b..a3005cade 100644
--- a/sm/sign.c
+++ b/sm/sign.c
@@ -211,7 +211,7 @@ get_default_signer (ctrl_t ctrl)
return cert;
}
- rc = classify_user_id (opt.local_user, &desc);
+ rc = classify_user_id (opt.local_user, &desc, 0);
if (rc)
{
log_error ("failed to find default signer: %s\n", gpg_strerror (rc));