[Pkg-gnupg-commit] [gnupg2] 67/132: common, g10: Fix enumeration types.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Wed May 17 03:07:43 UTC 2017


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch experimental
in repository gnupg2.

commit 74258278efacd7069e8c1df8ff6fc3f4675d713e
Author: NIIBE Yutaka <gniibe at fsij.org>
Date:   Thu Apr 13 12:54:52 2017 +0900

    common, g10: Fix enumeration types.
    
    * common/openpgpdefs.h (CIPHER_ALGO_PRIVATE10, PUBKEY_ALGO_PRIVATE10)
    (DIGEST_ALGO_PRIVATE10, COMPRESS_ALGO_PRIVATE10): New.
    * g10/misc.c (map_pk_gcry_to_openpgp): Add type conversion.
    (map_cipher_openpgp_to_gcry, openpgp_cipher_algo_name)
    (openpgp_pk_test_algo2, map_md_openpgp_to_gcry)
    (pubkey_get_npkey): Add default handling.
    
    --
    
    Compilers may emit code assuming the maximum value of enum type.
    According to OpenPGP specification, there are cases for private uses.
    
    Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
---
 common/openpgpdefs.h | 12 ++++++++----
 g10/misc.c           | 23 +++++++++++++----------
 2 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/common/openpgpdefs.h b/common/openpgpdefs.h
index 3d5d306..85a4251 100644
--- a/common/openpgpdefs.h
+++ b/common/openpgpdefs.h
@@ -136,7 +136,8 @@ typedef enum
     CIPHER_ALGO_TWOFISH	    = 10, /* 256 bit */
     CIPHER_ALGO_CAMELLIA128 = 11,
     CIPHER_ALGO_CAMELLIA192 = 12,
-    CIPHER_ALGO_CAMELLIA256 = 13
+    CIPHER_ALGO_CAMELLIA256 = 13,
+    CIPHER_ALGO_PRIVATE10   = 110
   }
 cipher_algo_t;
 
@@ -152,7 +153,8 @@ typedef enum
     PUBKEY_ALGO_ECDSA       = 19, /* RFC-6637  */
     PUBKEY_ALGO_ELGAMAL     = 20, /* Elgamal encrypt+sign (legacy).  */
     /*                        21     reserved by OpenPGP.            */
-    PUBKEY_ALGO_EDDSA       = 22  /* EdDSA (not yet assigned).       */
+    PUBKEY_ALGO_EDDSA       = 22, /* EdDSA (not yet assigned).       */
+    PUBKEY_ALGO_PRIVATE10   = 110
   }
 pubkey_algo_t;
 
@@ -166,7 +168,8 @@ typedef enum
     DIGEST_ALGO_SHA256      =  8,
     DIGEST_ALGO_SHA384      =  9,
     DIGEST_ALGO_SHA512      = 10,
-    DIGEST_ALGO_SHA224      = 11
+    DIGEST_ALGO_SHA224      = 11,
+    DIGEST_ALGO_PRIVATE10   = 110
   }
 digest_algo_t;
 
@@ -176,7 +179,8 @@ typedef enum
     COMPRESS_ALGO_NONE      =  0,
     COMPRESS_ALGO_ZIP       =  1,
     COMPRESS_ALGO_ZLIB      =  2,
-    COMPRESS_ALGO_BZIP2     =  3
+    COMPRESS_ALGO_BZIP2     =  3,
+    COMPRESS_ALGO_PRIVATE10 = 110
   }
 compress_algo_t;
 
diff --git a/g10/misc.c b/g10/misc.c
index 0ecdb04..abae6c9 100644
--- a/g10/misc.c
+++ b/g10/misc.c
@@ -473,8 +473,8 @@ map_cipher_openpgp_to_gcry (cipher_algo_t algo)
 #else
     case CIPHER_ALGO_CAMELLIA256: return 0;
 #endif
+    default: return 0;
     }
-  return 0;
 }
 
 /* The inverse function of above.  */
@@ -509,7 +509,7 @@ map_pk_gcry_to_openpgp (enum gcry_pk_algos algo)
     {
     case GCRY_PK_ECDSA:  return PUBKEY_ALGO_ECDSA;
     case GCRY_PK_ECDH:   return PUBKEY_ALGO_ECDH;
-    default: return algo < 110 ? algo : 0;
+    default: return algo < 110 ? (pubkey_algo_t)algo : 0;
     }
 }
 
@@ -565,7 +565,6 @@ openpgp_cipher_algo_name (cipher_algo_t algo)
 {
   switch (algo)
     {
-    case CIPHER_ALGO_NONE:        break;
     case CIPHER_ALGO_IDEA:        return "IDEA";
     case CIPHER_ALGO_3DES:	  return "3DES";
     case CIPHER_ALGO_CAST5:	  return "CAST5";
@@ -577,8 +576,9 @@ openpgp_cipher_algo_name (cipher_algo_t algo)
     case CIPHER_ALGO_CAMELLIA128: return "CAMELLIA128";
     case CIPHER_ALGO_CAMELLIA192: return "CAMELLIA192";
     case CIPHER_ALGO_CAMELLIA256: return "CAMELLIA256";
+    case CIPHER_ALGO_NONE:
+    default: return "?";
     }
-  return "?";
 }
 
 
@@ -636,6 +636,9 @@ openpgp_pk_test_algo2 (pubkey_algo_t algo, unsigned int use)
       if (RFC2440)
         ga = GCRY_PK_ELG;
       break;
+
+    default:
+      break;
     }
   if (!ga)
     return gpg_error (GPG_ERR_PUBKEY_ALGO);
@@ -699,8 +702,8 @@ openpgp_pk_algo_name (pubkey_algo_t algo)
     case PUBKEY_ALGO_ECDH:      return "ECDH";
     case PUBKEY_ALGO_ECDSA:     return "ECDSA";
     case PUBKEY_ALGO_EDDSA:     return "EDDSA";
+    default: return "?";
     }
-  return "?";
 }
 
 
@@ -832,8 +835,8 @@ map_md_openpgp_to_gcry (digest_algo_t algo)
 #else
     case DIGEST_ALGO_SHA512: return 0;
 #endif
+    default: return 0;
     }
-  return 0;
 }
 
 
@@ -1652,8 +1655,8 @@ pubkey_get_npkey (pubkey_algo_t algo)
     case PUBKEY_ALGO_ECDSA:     return 2;
     case PUBKEY_ALGO_ELGAMAL:   return 3;
     case PUBKEY_ALGO_EDDSA:     return 2;
+    default: return 0;
     }
-  return 0;
 }
 
 
@@ -1672,8 +1675,8 @@ pubkey_get_nskey (pubkey_algo_t algo)
     case PUBKEY_ALGO_ECDSA:     return 3;
     case PUBKEY_ALGO_ELGAMAL:   return 4;
     case PUBKEY_ALGO_EDDSA:     return 3;
+    default: return 0;
     }
-  return 0;
 }
 
 /* Temporary helper. */
@@ -1691,8 +1694,8 @@ pubkey_get_nsig (pubkey_algo_t algo)
     case PUBKEY_ALGO_ECDSA:     return 2;
     case PUBKEY_ALGO_ELGAMAL:   return 2;
     case PUBKEY_ALGO_EDDSA:     return 2;
+    default: return 0;
     }
-  return 0;
 }
 
 
@@ -1711,8 +1714,8 @@ pubkey_get_nenc (pubkey_algo_t algo)
     case PUBKEY_ALGO_ECDSA:     return 0;
     case PUBKEY_ALGO_ELGAMAL:   return 2;
     case PUBKEY_ALGO_EDDSA:     return 0;
+    default: return 0;
     }
-  return 0;
 }
 
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list