scd: Use openpgpdefs.h for constants.

NIIBE Yutaka gniibe at fsij.org
Thu Jul 16 10:41:02 CEST 2015


Hello,

Here is a simple change for better code.

I'm going to commit this to master.  I'll support writing
key attribute for ECC after this change.


    * scd/app-openpgp.c: Include openpgpdefs.h.

diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c
index f5911f3..1c6d6ec 100644
--- a/scd/app-openpgp.c
+++ b/scd/app-openpgp.c
@@ -68,6 +68,7 @@
 #include "app-common.h"
 #include "tlv.h"
 #include "host2net.h"
+#include "openpgpdefs.h"


 /* A table describing the DOs of the card.  */
@@ -748,13 +749,13 @@ static unsigned char
 get_algo_byte (int keynumber, key_type_t key_type)
 {
   if (key_type == KEY_TYPE_ECC && keynumber != 1)
-    return 19;
+    return PUBKEY_ALGO_ECDSA;
   else if (key_type == KEY_TYPE_ECC && keynumber == 1)
-    return 18;
+    return PUBKEY_ALGO_ECDH;
   else if (key_type == KEY_TYPE_EDDSA)
-    return 22;
+    return PUBKEY_ALGO_EDDSA;
   else
-    return 1;  /* RSA */
+    return PUBKEY_ALGO_RSA;
 }

 #define MAX_ARGS_STORE_FPR 3
@@ -977,7 +978,9 @@ send_key_attr (ctrl_t ctrl, app_t app, const char *keyword, int number)
       get_ecc_key_parameters (app->app_local->keyattr[number].ecc.curve,
                               &n_bits, &curve_oid);
       snprintf (buffer, sizeof buffer, "%d %d %u %s",
-                number+1, number==1? 18: 19, n_bits, curve_oid);
+                number+1,
+                number==1? PUBKEY_ALGO_ECDH: PUBKEY_ALGO_ECDSA,
+                n_bits, curve_oid);
     }
   else if (app->app_local->keyattr[number].key_type == KEY_TYPE_EDDSA)
     {
@@ -1071,8 +1074,9 @@ do_getattr (app_t app, ctrl_t ctrl, const char *name)
                 app->app_local->extcap.max_certlen_3,
                 app->app_local->extcap.algo_attr_change,
                 (app->app_local->extcap.sm_supported
-                 ? (app->app_local->extcap.sm_algo == 0? 2 :
-                    (app->app_local->extcap.sm_algo == 1? 7 : 9))
+                 ? (app->app_local->extcap.sm_algo == 0? CIPHER_ALGO_3DES :
+                    (app->app_local->extcap.sm_algo == 1?
+                     CIPHER_ALGO_AES : CIPHER_ALGO_AES256))
                  : 0),
                 app->app_local->status_indicator,
                 app->app_local->extcap.has_decrypt,
@@ -2832,7 +2836,7 @@ change_keyattr (app_t app, int keyno, unsigned int nbits,
   relptr = get_one_do (app, 0xC1+keyno, &buffer, &buflen, NULL);
   if (!relptr)
     return gpg_error (GPG_ERR_CARD);
-  if (buflen < 6 || buffer[0] != 1)
+  if (buflen < 6 || buffer[0] != PUBKEY_ALGO_RSA)
     {
       /* Attriutes too short or not an RSA key.  */
       xfree (relptr);
@@ -2899,8 +2903,8 @@ change_keyattr_from_string (app_t app,
     err = gpg_error (GPG_ERR_INV_DATA);
   else if (keyno < 1 || keyno > 3)
     err = gpg_error (GPG_ERR_INV_ID);
-  else if (algo != 1)
-    err = gpg_error (GPG_ERR_PUBKEY_ALGO); /* Not RSA.  */
+  else if (algo != PUBKEY_ALGO_RSA)
+    err = gpg_error (GPG_ERR_PUBKEY_ALGO);
   else if (nbits < 1024)
     err = gpg_error (GPG_ERR_TOO_SHORT);
   else
@@ -4433,7 +4437,7 @@ parse_algorithm_attribute (app_t app, int keyno)

   if (opt.verbose)
     log_info ("Key-Attr-%s ..: ", desc[keyno]);
-  if (*buffer == 1 && (buflen == 5 || buflen == 6))
+  if (*buffer == PUBKEY_ALGO_RSA && (buflen == 5 || buflen == 6))
     {
       app->app_local->keyattr[keyno].rsa.n_bits = (buffer[1]<<8 | buffer[2]);
       app->app_local->keyattr[keyno].rsa.e_bits = (buffer[3]<<8 | buffer[4]);
@@ -4457,7 +4461,7 @@ parse_algorithm_attribute (app_t app, int keyno)
            app->app_local->keyattr[keyno].rsa.format == RSA_CRT?  "crt"  :
            app->app_local->keyattr[keyno].rsa.format == RSA_CRT_N?"crt+n":"?");
     }
-  else if (*buffer == 18 || *buffer == 19) /* ECDH or ECDSA */
+  else if (*buffer == PUBKEY_ALGO_ECDH || *buffer == PUBKEY_ALGO_ECDSA)
     {
       app->app_local->keyattr[keyno].key_type = KEY_TYPE_ECC;
       app->app_local->keyattr[keyno].ecc.curve
@@ -4467,7 +4471,7 @@ parse_algorithm_attribute (app_t app, int keyno)
           ("ECC, curve=%s\n",
            get_curve_name (app->app_local->keyattr[keyno].ecc.curve));
     }
-  else if (*buffer == 22) /* EdDSA */
+  else if (*buffer == PUBKEY_ALGO_EDDSA)
     {
       app->app_local->keyattr[keyno].key_type = KEY_TYPE_EDDSA;
       app->app_local->keyattr[keyno].eddsa.curve
--



More information about the Gnupg-devel mailing list