Provide pubkey letters e and E
authorWerner Koch <wk@gnupg.org>
Fri, 1 Jul 2011 08:33:43 +0000 (10:33 +0200)
committerWerner Koch <wk@gnupg.org>
Fri, 1 Jul 2011 08:33:43 +0000 (10:33 +0200)
This is only to print those letters instead of a question mark.  It
does not mean ECC is or will be supported in this branch.

g10/ChangeLog
g10/keyid.c
include/ChangeLog
include/cipher.h

index a7bcf9d..55ba2b6 100644 (file)
@@ -1,3 +1,7 @@
+2011-07-01  Werner Koch  <wk@g10code.com>
+
+       * keyid.c (pubkey_letter): Add letters e and E.
+
 2011-06-13  Werner Koch  <wk@g10code.com>
 
        * pkglue.c (mpi_from_sexp, pk_decrypt): Use GCRYMPI_FMT_USG for
 2011-06-13  Werner Koch  <wk@g10code.com>
 
        * pkglue.c (mpi_from_sexp, pk_decrypt): Use GCRYMPI_FMT_USG for
index 3ba7d42..d7a877b 100644 (file)
@@ -45,6 +45,8 @@ pubkey_letter( int algo )
       case PUBKEY_ALGO_ELGAMAL_E: return 'g';
       case PUBKEY_ALGO_ELGAMAL: return 'G' ;
       case PUBKEY_ALGO_DSA:    return 'D' ;
       case PUBKEY_ALGO_ELGAMAL_E: return 'g';
       case PUBKEY_ALGO_ELGAMAL: return 'G' ;
       case PUBKEY_ALGO_DSA:    return 'D' ;
+      case PUBKEY_ALGO_ECDSA:  return 'E' ;    /* ECC DSA (sign only)   */
+      case PUBKEY_ALGO_ECDH:   return 'e' ;    /* ECC DH (encrypt only) */
       default: return '?';
     }
 }
       default: return '?';
     }
 }
@@ -102,7 +104,7 @@ hash_public_key( gcry_md_hd_t md, PKT_public_key *pk )
       u16 days=0;
       if(pk->expiredate)
        days=(u16)((pk->expiredate - pk->timestamp) / 86400L);
       u16 days=0;
       if(pk->expiredate)
        days=(u16)((pk->expiredate - pk->timestamp) / 86400L);
+
       gcry_md_putc ( md, days >> 8 );
       gcry_md_putc ( md, days );
     }
       gcry_md_putc ( md, days >> 8 );
       gcry_md_putc ( md, days );
     }
@@ -170,7 +172,7 @@ v3_keyid (gcry_mpi_t a, u32 *ki)
     BUG ();
   if (nbytes < 8) /* oops */
     ki[0] = ki[1] = 0;
     BUG ();
   if (nbytes < 8) /* oops */
     ki[0] = ki[1] = 0;
-  else 
+  else
     {
       p = buffer + nbytes - 8;
       ki[0] = (p[0] << 24) | (p[1] <<16) | (p[2] << 8) | p[3];
     {
       p = buffer + nbytes - 8;
       ki[0] = (p[0] << 24) | (p[1] <<16) | (p[2] << 8) | p[3];
@@ -206,7 +208,7 @@ keystrlen(void)
 
 const char *
 keystr(u32 *keyid)
 
 const char *
 keystr(u32 *keyid)
-{  
+{
   static char keyid_str[19];
 
   switch(opt.keyid_format)
   static char keyid_str[19];
 
   switch(opt.keyid_format)
@@ -452,13 +454,13 @@ namehash_from_uid(PKT_user_id *uid)
   if (!uid->namehash)
     {
       uid->namehash = xmalloc (20);
   if (!uid->namehash)
     {
       uid->namehash = xmalloc (20);
-      
+
       if(uid->attrib_data)
        rmd160_hash_buffer (uid->namehash, uid->attrib_data, uid->attrib_len);
       else
        rmd160_hash_buffer (uid->namehash, uid->name, uid->len);
     }
       if(uid->attrib_data)
        rmd160_hash_buffer (uid->namehash, uid->attrib_data, uid->attrib_len);
       else
        rmd160_hash_buffer (uid->namehash, uid->name, uid->len);
     }
-  
+
   return uid->namehash;
 }
 
   return uid->namehash;
 }
 
@@ -636,7 +638,7 @@ const char *
 colon_datestr_from_sig (PKT_signature *sig)
 {
   static char buf[20];
 colon_datestr_from_sig (PKT_signature *sig)
 {
   static char buf[20];
-  
+
   snprintf (buf, sizeof buf, "%lu", (ulong)sig->timestamp);
   return buf;
 }
   snprintf (buf, sizeof buf, "%lu", (ulong)sig->timestamp);
   return buf;
 }
@@ -667,21 +669,21 @@ fingerprint_from_pk( PKT_public_key *pk, byte *array, size_t *ret_len )
   const byte *dp;
   size_t len, nbytes;
   int i;
   const byte *dp;
   size_t len, nbytes;
   int i;
-  
+
   if ( pk->version < 4 )
     {
       if ( is_RSA(pk->pubkey_algo) )
         {
           /* RSA in version 3 packets is special. */
           gcry_md_hd_t md;
   if ( pk->version < 4 )
     {
       if ( is_RSA(pk->pubkey_algo) )
         {
           /* RSA in version 3 packets is special. */
           gcry_md_hd_t md;
-          
+
           if (gcry_md_open (&md, DIGEST_ALGO_MD5, 0))
             BUG ();
           if (gcry_md_open (&md, DIGEST_ALGO_MD5, 0))
             BUG ();
-          if ( pubkey_get_npkey (pk->pubkey_algo) > 1 ) 
+          if ( pubkey_get_npkey (pk->pubkey_algo) > 1 )
             {
               for (i=0; i < 2; i++)
                 {
             {
               for (i=0; i < 2; i++)
                 {
-                  if (gcry_mpi_print (GCRYMPI_FMT_USG, NULL, 0, 
+                  if (gcry_mpi_print (GCRYMPI_FMT_USG, NULL, 0,
                                       &nbytes, pk->pkey[i]))
                     BUG ();
                   /* fixme: Better allocate BUF on the stack */
                                       &nbytes, pk->pkey[i]))
                     BUG ();
                   /* fixme: Better allocate BUF on the stack */
@@ -708,10 +710,10 @@ fingerprint_from_pk( PKT_public_key *pk, byte *array, size_t *ret_len )
           memset (array,0,16);
         }
     }
           memset (array,0,16);
         }
     }
-  else 
+  else
     {
       gcry_md_hd_t md;
     {
       gcry_md_hd_t md;
-      
+
       md = do_fingerprint_md(pk);
       dp = gcry_md_read( md, 0 );
       len = gcry_md_get_algo_dlen (gcry_md_get_algo (md));
       md = do_fingerprint_md(pk);
       dp = gcry_md_read( md, 0 );
       len = gcry_md_get_algo_dlen (gcry_md_get_algo (md));
@@ -723,7 +725,7 @@ fingerprint_from_pk( PKT_public_key *pk, byte *array, size_t *ret_len )
       pk->keyid[1] = dp[16] << 24 | dp[17] << 16 | dp[18] << 8 | dp[19] ;
       gcry_md_close( md);
     }
       pk->keyid[1] = dp[16] << 24 | dp[17] << 16 | dp[18] << 8 | dp[19] ;
       gcry_md_close( md);
     }
-  
+
   *ret_len = len;
   return array;
 }
   *ret_len = len;
   return array;
 }
@@ -735,21 +737,21 @@ fingerprint_from_sk( PKT_secret_key *sk, byte *array, size_t *ret_len )
   const char *dp;
   size_t len, nbytes;
   int i;
   const char *dp;
   size_t len, nbytes;
   int i;
-  
+
   if (sk->version < 4)
     {
       if ( is_RSA(sk->pubkey_algo) )
         {
           /* RSA in version 3 packets is special. */
           gcry_md_hd_t md;
   if (sk->version < 4)
     {
       if ( is_RSA(sk->pubkey_algo) )
         {
           /* RSA in version 3 packets is special. */
           gcry_md_hd_t md;
-          
+
           if (gcry_md_open (&md, DIGEST_ALGO_MD5, 0))
             BUG ();
           if (pubkey_get_npkey( sk->pubkey_algo ) > 1)
             {
               for (i=0; i < 2; i++)
                 {
           if (gcry_md_open (&md, DIGEST_ALGO_MD5, 0))
             BUG ();
           if (pubkey_get_npkey( sk->pubkey_algo ) > 1)
             {
               for (i=0; i < 2; i++)
                 {
-                  if (gcry_mpi_print (GCRYMPI_FMT_USG, NULL, 0, 
+                  if (gcry_mpi_print (GCRYMPI_FMT_USG, NULL, 0,
                                       &nbytes, sk->skey[i]))
                     BUG ();
                   /* fixme: Better allocate BUF on the stack */
                                       &nbytes, sk->skey[i]))
                     BUG ();
                   /* fixme: Better allocate BUF on the stack */
@@ -779,7 +781,7 @@ fingerprint_from_sk( PKT_secret_key *sk, byte *array, size_t *ret_len )
   else
     {
       gcry_md_hd_t md;
   else
     {
       gcry_md_hd_t md;
-      
+
       md = do_fingerprint_md_sk(sk);
       if (md)
         {
       md = do_fingerprint_md_sk(sk);
       if (md)
         {
@@ -799,7 +801,7 @@ fingerprint_from_sk( PKT_secret_key *sk, byte *array, size_t *ret_len )
           memset (array, 0, len);
         }
     }
           memset (array, 0, len);
         }
     }
-  
+
   *ret_len = len;
   return array;
 }
   *ret_len = len;
   return array;
 }
@@ -816,7 +818,7 @@ serialno_and_fpr_from_sk (const unsigned char *sn, size_t snlen,
   size_t fprlen;
   char *buffer, *p;
   int i;
   size_t fprlen;
   char *buffer, *p;
   int i;
-  
+
   fingerprint_from_sk (sk, fpr, &fprlen);
   buffer = p = xmalloc (snlen*2 + 1 + fprlen*2 + 1);
   for (i=0; i < snlen; i++, p+=2)
   fingerprint_from_sk (sk, fpr, &fprlen);
   buffer = p = xmalloc (snlen*2 + 1 + fprlen*2 + 1);
   for (i=0; i < snlen; i++, p+=2)
@@ -827,4 +829,3 @@ serialno_and_fpr_from_sk (const unsigned char *sn, size_t snlen,
   *p = 0;
   return buffer;
 }
   *p = 0;
   return buffer;
 }
-
index 339800f..97f491e 100644 (file)
@@ -1,3 +1,7 @@
+2011-07-01  Werner Koch  <wk@g10code.com>
+
+       * cipher.h (PUBKEY_ALGO_ECDH, PUBKEY_ALGO_ECDSA): New.
+
 2009-08-20  Daiki Ueno  <ueno@unixuser.org>  (wk)
 
        * cipher.h (struct DEK): Add field S2K_CACHEID.
 2009-08-20  Daiki Ueno  <ueno@unixuser.org>  (wk)
 
        * cipher.h (struct DEK): Add field S2K_CACHEID.
 
        * KEYSERVER_SCHEME_NOT_FOUND should be 127 to match the POSIX
        system() (via /bin/sh) way of signaling this.
 
        * KEYSERVER_SCHEME_NOT_FOUND should be 127 to match the POSIX
        system() (via /bin/sh) way of signaling this.
-       
+
        * Added G10ERR_KEYSERVER
 
 2001-12-27  Werner Koch  <wk@gnupg.org>
        * Added G10ERR_KEYSERVER
 
 2001-12-27  Werner Koch  <wk@gnupg.org>
 
 2001-08-24  Werner Koch  <wk@gnupg.org>
 
 
 2001-08-24  Werner Koch  <wk@gnupg.org>
 
-       * cipher.h (md_write): Made buf arg const. 
+       * cipher.h (md_write): Made buf arg const.
 
 2001-08-20  Werner Koch  <wk@gnupg.org>
 
 
 2001-08-20  Werner Koch  <wk@gnupg.org>
 
        never use __attribute__.
        * cipher.h, iobuf.h, memory.h, mpi.h [__riscos__]: extern hack.
        * i18n.h [__riscos__]: Use another include file
        never use __attribute__.
        * cipher.h, iobuf.h, memory.h, mpi.h [__riscos__]: extern hack.
        * i18n.h [__riscos__]: Use another include file
-       
+
 2001-05-30  Werner Koch  <wk@gnupg.org>
 
        * ttyio.h (tty_printf): Add missing parenthesis for non gcc.
 2001-05-30  Werner Koch  <wk@gnupg.org>
 
        * ttyio.h (tty_printf): Add missing parenthesis for non gcc.
@@ -431,5 +435,3 @@ Tue Mar  3 15:11:21 1998  Werner Koch  (wk@isil.d.shuttle.de)
  This file is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  This file is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-
index 8e19828..f5caa8d 100644 (file)
@@ -1,4 +1,4 @@
-/* cipher.h - Definitions for OpenPGP 
+/* cipher.h - Definitions for OpenPGP
  * Copyright (C) 1998, 1999, 2000, 2001, 2006,
  *               2007  Free Software Foundation, Inc.
  *
  * Copyright (C) 1998, 1999, 2000, 2001, 2006,
  *               2007  Free Software Foundation, Inc.
  *
@@ -24,8 +24,8 @@
 
 /* Macros for compatibility with older libgcrypt versions. */
 #ifndef GCRY_PK_USAGE_CERT
 
 /* Macros for compatibility with older libgcrypt versions. */
 #ifndef GCRY_PK_USAGE_CERT
-# define GCRY_PK_USAGE_CERT 4 
-# define GCRY_PK_USAGE_AUTH 8  
+# define GCRY_PK_USAGE_CERT 4
+# define GCRY_PK_USAGE_AUTH 8
 # define GCRY_PK_USAGE_UNKN 128
 #endif
 
 # define GCRY_PK_USAGE_UNKN 128
 #endif
 
 #define CIPHER_ALGO_CAMELLIA256     13
 #define CIPHER_ALGO_DUMMY          110    /* No encryption at all. */
 
 #define CIPHER_ALGO_CAMELLIA256     13
 #define CIPHER_ALGO_DUMMY          110    /* No encryption at all. */
 
-#define PUBKEY_ALGO_RSA          /*  1 */ GCRY_PK_RSA  
-#define PUBKEY_ALGO_RSA_E        /*  2 */ GCRY_PK_RSA_E /* RSA encrypt only. */ 
+#define PUBKEY_ALGO_RSA          /*  1 */ GCRY_PK_RSA
+#define PUBKEY_ALGO_RSA_E        /*  2 */ GCRY_PK_RSA_E /* RSA encrypt only. */
 #define PUBKEY_ALGO_RSA_S        /*  3 */ GCRY_PK_RSA_S /* RSA sign only.    */
 #define PUBKEY_ALGO_ELGAMAL_E    /* 16 */ GCRY_PK_ELG_E /* Elgamal encr only */
 #define PUBKEY_ALGO_RSA_S        /*  3 */ GCRY_PK_RSA_S /* RSA sign only.    */
 #define PUBKEY_ALGO_ELGAMAL_E    /* 16 */ GCRY_PK_ELG_E /* Elgamal encr only */
-#define PUBKEY_ALGO_DSA          /* 17 */ GCRY_PK_DSA                          
+#define PUBKEY_ALGO_DSA          /* 17 */ GCRY_PK_DSA
+#define PUBKEY_ALGO_ECDH            18
+#define PUBKEY_ALGO_ECDSA           19
 #define PUBKEY_ALGO_ELGAMAL      /* 20 */ GCRY_PK_ELG   /* Elgamal encr+sign */
 
 #define PUBKEY_USAGE_SIG     GCRY_PK_USAGE_SIGN  /* Good for signatures. */
 #define PUBKEY_ALGO_ELGAMAL      /* 20 */ GCRY_PK_ELG   /* Elgamal encr+sign */
 
 #define PUBKEY_USAGE_SIG     GCRY_PK_USAGE_SIGN  /* Good for signatures. */
@@ -86,7 +88,7 @@
 #define is_DSA(a)     ((a)==PUBKEY_ALGO_DSA)
 
 /* The data encryption key object. */
 #define is_DSA(a)     ((a)==PUBKEY_ALGO_DSA)
 
 /* The data encryption key object. */
-typedef struct 
+typedef struct
 {
   int algo;
   int keylen;
 {
   int algo;
   int keylen;