* g10.c (add_notation_data): Disallow notation names that do not contain a
authorDavid Shaw <dshaw@jabberwocky.com>
Sun, 24 Nov 2002 01:49:32 +0000 (01:49 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Sun, 24 Nov 2002 01:49:32 +0000 (01:49 +0000)
'@', unless --expert is set.  This is to help prevent people from
polluting the (as yet unused) IETF namespace.

* main.h: Comments about default algorithms.

* photoid.c (image_type_to_string): Comments about 3-letter file
extensions.

g10/ChangeLog
g10/g10.c
g10/main.h
g10/photoid.c

index 0e238c4..04d1aa4 100644 (file)
@@ -1,5 +1,14 @@
 2002-11-23  David Shaw  <dshaw@jabberwocky.com>
 
+       * g10.c (add_notation_data): Disallow notation names that do not
+       contain a '@', unless --expert is set.  This is to help prevent
+       people from polluting the (as yet unused) IETF namespace.
+
+       * main.h: Comments about default algorithms.
+
+       * photoid.c (image_type_to_string): Comments about 3-letter file
+       extensions.
+
        * encode.c (encode_simple), passphrase.c (passphrase_to_dek),
        sign.c (sign_symencrypt_file): Use --s2k-digest-algo for
        passphrase mangling rather than --digest-algo.
index b6154dd..3fa6547 100644 (file)
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -2812,6 +2812,7 @@ add_notation_data( const char *string, int which )
     STRLIST sl,*notation_data;
     int critical=0;
     int highbit=0;
+    int saw_at=0;
 
     if(which)
       notation_data=&opt.cert_notation_data;
@@ -2823,13 +2824,29 @@ add_notation_data( const char *string, int which )
        string++;
     }
 
-    for( s=string ; *s != '='; s++ ) {
-       if( !*s || (*s & 0x80) || (!isgraph(*s) && !isspace(*s)) ) {
+    /* If and when the IETF assigns some official name tags, we'll
+       have to add them here. */
+
+    for( s=string ; *s != '='; s++ )
+      {
+       if( *s=='@')
+         saw_at=0;
+
+       if( !*s || (*s & 0x80) || (!isgraph(*s) && !isspace(*s)) )
+         {
            log_error(_("a notation name must have only printable characters "
                        "or spaces, and end with an '='\n") );
            return;
-       }
-    }
+         }
+      }
+
+    if(!saw_at && !opt.expert)
+      {
+       log_error(
+               _("a user notation name must contain the '@' character\n"));
+       return;
+      }
+
     /* we only support printable text - therefore we enforce the use
      * of only printable characters (an empty value is valid) */
     for( s++; *s ; s++ ) {
index 0365ed5..a1aff3a 100644 (file)
 #include "cipher.h"
 #include "keydb.h"
 
+/* It could be argued that the default cipher should be 3DES rather
+   than CAST5, and the default compression should be 0
+   (i.e. uncompressed) rather than 1 (zip). */
 #define DEFAULT_CIPHER_ALGO   CIPHER_ALGO_CAST5
-#define DEFAULT_PUBKEY_ALGO   PUBKEY_ALGO_ELGAMAL
 #define DEFAULT_DIGEST_ALGO   DIGEST_ALGO_SHA1
 #define DEFAULT_COMPRESS_ALGO 1
 
index cb95754..7f6b8be 100644 (file)
@@ -189,8 +189,9 @@ int parse_image_header(const struct user_attribute *attr,byte *type,u32 *len)
 
 /* style==0 for extension, 1 for name, 2 for MIME type.  Remember that
    the "name" style string could be used in a user ID name field, so
-   make sure it is not too big (see
-   parse-packet.c:parse_attribute). */
+   make sure it is not too big (see parse-packet.c:parse_attribute).
+   Extensions should be 3 characters long for the best cross-platform
+   compatibility. */
 char *image_type_to_string(byte type,int style)
 {
   char *string;
@@ -288,7 +289,7 @@ void show_photos(const struct user_attribute *attrs,
        /* Make the filename.  Notice we are not using the image
            encoding type for more than cosmetics.  Most external image
            viewers can handle a multitude of types, and even if one
-           cannot understand a partcular type, we have no way to know
+           cannot understand a particular type, we have no way to know
            which.  The spec permits this, by the way. -dms */
 
 #ifdef USE_ONLY_8DOT3