aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--g10/ChangeLog21
-rw-r--r--g10/g10.c17
-rw-r--r--g10/import.c8
-rw-r--r--g10/keydb.h8
-rw-r--r--g10/keyedit.c2
-rw-r--r--g10/status.c2
-rw-r--r--g10/trustdb.c4
7 files changed, 48 insertions, 14 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index cf15e422b..17594b3fd 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,24 @@
+2003-03-24 David Shaw <[email protected]>
+
+ * keydb.h: Err on the side of making an unknown signature a SIG
+ rather than a CERT.
+
+ * import.c (delete_inv_parts): Discard any key signatures that
+ aren't key types (i.e. 0x00, 0x01, etc.)
+
+ * g10.c (main): Add deprecated option warning for
+ --list-ownertrust. Add --compression-algo alias for
+ --compress-algo. Change --version output strings to match
+ "showpref" strings, and make translatable.
+
+ * status.c (do_get_from_fd): Accept 'y' as well as 'Y' for
+ --command-fd boolean input.
+
+ * trustdb.c: Fix typo (DISABLE_REGEXP -> DISABLE_REGEX)
+
+ * keyedit.c (show_key_with_all_names_colon): Show no-ks-modify
+ flag.
+
2003-03-11 David Shaw <[email protected]>
* options.h, g10.c (main), keyserver.c (kopts): Add "try-dns-srv"
diff --git a/g10/g10.c b/g10/g10.c
index 0226243ad..550d98438 100644
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -120,6 +120,7 @@ enum cmd_and_opt_values { aNull = 0,
aListTrustDB,
aListTrustPath,
aExportOwnerTrust,
+ aListOwnerTrust,
aImportOwnerTrust,
aDeArmor,
aEnArmor,
@@ -363,7 +364,7 @@ static ARGPARSE_OPTS opts[] = {
{ aExportOwnerTrust,
"export-ownertrust", 256, N_("export the ownertrust values")},
{ aImportOwnerTrust,
- "import-ownertrust", 256 , N_("import ownertrust values")},
+ "import-ownertrust", 256, N_("import ownertrust values")},
{ aUpdateTrustDB,
"update-trustdb",0 , N_("update the trust database")},
{ aCheckTrustDB,
@@ -495,7 +496,8 @@ static ARGPARSE_OPTS opts[] = {
" --fingerprint [names] show fingerprints\n" ) },
/* hidden options */
- { aExportOwnerTrust, "list-ownertrust",0 , "@"}, /* alias */
+ { aListOwnerTrust, "list-ownertrust", 256, "@"}, /* deprecated */
+ { oCompressAlgo, "compression-algo", 1, "@"}, /* alias */
{ aPrintMDs, "print-mds" , 256, "@"}, /* old */
{ aListTrustDB, "list-trustdb",0 , "@"},
/* Not yet used */
@@ -666,25 +668,25 @@ strusage( int level )
case 33: p = _("\nSupported algorithms:\n"); break;
case 34:
if( !pubkeys )
- pubkeys = build_list("Pubkey: ", 0, pubkey_algo_to_string,
+ pubkeys = build_list(_("Pubkey: "), 0, pubkey_algo_to_string,
check_pubkey_algo );
p = pubkeys;
break;
case 35:
if( !ciphers )
- ciphers = build_list("Cipher: ", 'S', cipher_algo_to_string,
+ ciphers = build_list(_("Cipher: "), 'S', cipher_algo_to_string,
check_cipher_algo );
p = ciphers;
break;
case 36:
if( !digests )
- digests = build_list("Hash: ", 'H', digest_algo_to_string,
+ digests = build_list(_("Hash: "), 'H', digest_algo_to_string,
check_digest_algo );
p = digests;
break;
case 37:
if( !zips )
- zips = build_list("Compress: ",'Z',compress_algo_to_string,
+ zips = build_list(_("Compression: "),'Z',compress_algo_to_string,
check_compress_algo);
p = zips;
break;
@@ -1362,6 +1364,9 @@ main( int argc, char **argv )
case aListTrustPath: set_cmd( &cmd, aListTrustPath); break;
case aDeArmor: set_cmd( &cmd, aDeArmor); break;
case aEnArmor: set_cmd( &cmd, aEnArmor); break;
+ case aListOwnerTrust:
+ deprecated_warning(configname,configlineno,
+ "--list-ownertrust","--export-ownertrust","");
case aExportOwnerTrust: set_cmd( &cmd, aExportOwnerTrust); break;
case aImportOwnerTrust: set_cmd( &cmd, aImportOwnerTrust); break;
case aPipeMode: set_cmd( &cmd, aPipeMode); break;
diff --git a/g10/import.c b/g10/import.c
index 83ae0b804..b49b20217 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -1378,6 +1378,14 @@ delete_inv_parts( const char *fname, KBNODE keyblock,
(ulong)keyid[1]);
delete_kbnode( node );
}
+ else if( node->pkt->pkttype == PKT_SIGNATURE
+ && !IS_CERT(node->pkt->pkt.signature))
+ {
+ log_error(_("key %08lX: unexpected signature class (0x%02X) -"
+ " skipped\n"),(ulong)keyid[1],
+ node->pkt->pkt.signature->sig_class);
+ delete_kbnode(node);
+ }
else if( (node->flag & 4) ) /* marked for deletion */
delete_kbnode( node );
}
diff --git a/g10/keydb.h b/g10/keydb.h
index b01a4f0dd..b506af65d 100644
--- a/g10/keydb.h
+++ b/g10/keydb.h
@@ -27,10 +27,9 @@
#include "cipher.h"
/* What qualifies as a certification (rather than a signature?) */
-#define IS_SIG(s) (((s)->sig_class==0x00) || ((s)->sig_class==0x01) || \
- ((s)->sig_class==0x02) || ((s)->sig_class==0x40))
-#define IS_CERT(s) (!IS_SIG(s))
-
+#define IS_CERT(s) (IS_KEY_SIG(s) || IS_UID_SIG(s) || IS_SUBKEY_SIG(s) \
+ || IS_KEY_REV(s) || IS_UID_REV(s) || IS_SUBKEY_REV(s))
+#define IS_SIG(s) (!IS_CERT(s))
#define IS_KEY_SIG(s) ((s)->sig_class == 0x1f)
#define IS_UID_SIG(s) (((s)->sig_class & ~3) == 0x10)
#define IS_SUBKEY_SIG(s) ((s)->sig_class == 0x18)
@@ -38,7 +37,6 @@
#define IS_UID_REV(s) ((s)->sig_class == 0x30)
#define IS_SUBKEY_REV(s) ((s)->sig_class == 0x28)
-
struct getkey_ctx_s;
typedef struct getkey_ctx_s *GETKEY_CTX;
diff --git a/g10/keyedit.c b/g10/keyedit.c
index 671031466..9186bd931 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -1871,6 +1871,8 @@ show_key_with_all_names_colon (KBNODE keyblock)
}
if (uid->mdc_feature)
printf (",mdc");
+ if (!uid->ks_modify)
+ printf (",no-ks-modify");
}
putchar (':');
/* flags */
diff --git a/g10/status.c b/g10/status.c
index b665968f0..99f9cfdd2 100644
--- a/g10/status.c
+++ b/g10/status.c
@@ -529,7 +529,7 @@ do_get_from_fd( const char *keyword, int hidden, int bool )
write_status( STATUS_GOT_IT );
if( bool ) /* Fixme: is this correct??? */
- return string[0] == 'Y' ? "" : NULL;
+ return (string[0] == 'Y' || string[0] == 'y') ? "" : NULL;
return string;
}
diff --git a/g10/trustdb.c b/g10/trustdb.c
index 3dc2ded07..e8160f702 100644
--- a/g10/trustdb.c
+++ b/g10/trustdb.c
@@ -1463,8 +1463,8 @@ mark_usable_uid_certs (KBNODE keyblock, KBNODE uidnode,
static int
check_regexp(const char *exp,const char *string)
{
-#ifdef DISABLE_REGEXP
- /* When DISABLE_REGEXP is defined, assume all regexps do not
+#ifdef DISABLE_REGEX
+ /* When DISABLE_REGEX is defined, assume all regexps do not
match. */
return 0;
#elif defined(__riscos__)