sm: Move qualified.txt from datadir into sysconfdir
[gnupg.git] / sm / qualified.c
index d0db481..6a7b473 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #include <errno.h>
 
 #include "gpgsm.h"
-#include "i18n.h"
+#include "../common/i18n.h"
 #include <ksba.h>
 
 
 /* We open the file only once and keep the open file pointer as well
    as the name of the file here.  Note that, a listname not equal to
-   NULL indicates that this module has been intialized and if the
+   NULL indicates that this module has been initialized and if the
    LISTFP is also NULL, no list of qualified signatures exists. */
 static char *listname;
 static FILE *listfp;
@@ -58,12 +58,12 @@ read_list (char *key, char *country, int *lnr)
 
   if (!listname)
     {
-      listname = make_filename (gnupg_datadir (), "qualified.txt", NULL);
+      listname = make_filename (gnupg_sysconfdir (), "qualified.txt", NULL);
       listfp = fopen (listname, "r");
       if (!listfp && errno != ENOENT)
         {
           err = gpg_error_from_syserror ();
-          log_error (_("can't open `%s': %s\n"), listname, gpg_strerror (err));
+          log_error (_("can't open '%s': %s\n"), listname, gpg_strerror (err));
           return err;
         }
     }
@@ -89,20 +89,20 @@ read_list (char *key, char *country, int *lnr)
                                  : GPG_ERR_INCOMPLETE_LINE);
         }
       ++*lnr;
-      
+
       /* Allow for empty lines and spaces */
       for (p=line; spacep (p); p++)
         ;
     }
   while (!*p || *p == '\n' || *p == '#');
-  
+
   for (i=j=0; (p[i] == ':' || hexdigitp (p+i)) && j < 40; i++)
     if ( p[i] != ':' )
       key[j++] = p[i] >= 'a'? (p[i] & 0xdf): p[i];
   key[j] = 0;
   if (j != 40 || !(spacep (p+i) || p[i] == '\n'))
     {
-      log_error (_("invalid formatted fingerprint in `%s', line %d\n"),
+      log_error (_("invalid formatted fingerprint in '%s', line %d\n"),
                  listname, *lnr);
       return gpg_error (GPG_ERR_BAD_DATA);
     }
@@ -110,8 +110,8 @@ read_list (char *key, char *country, int *lnr)
   i++;
   while (spacep (p+i))
     i++;
-  if ( p[i] >= 'a' && p[i] <= 'z' 
-       && p[i+1] >= 'a' && p[i+1] <= 'z' 
+  if ( p[i] >= 'a' && p[i] <= 'z'
+       && p[i+1] >= 'a' && p[i+1] <= 'z'
        && (spacep (p+i+2) || p[i+2] == '\n'))
     {
       country[0] = p[i];
@@ -120,7 +120,7 @@ read_list (char *key, char *country, int *lnr)
     }
   else
     {
-      log_error (_("invalid country code in `%s', line %d\n"), listname, *lnr);
+      log_error (_("invalid country code in '%s', line %d\n"), listname, *lnr);
       return gpg_error (GPG_ERR_BAD_DATA);
     }
 
@@ -135,7 +135,7 @@ read_list (char *key, char *country, int *lnr)
    as maintained by gpg-agent and includes fingerprints of root
    certificates to be used for qualified (legally binding like
    handwritten) signatures.  We keep this list system wide and not
-   per user because it is not a decision of the user. 
+   per user because it is not a decision of the user.
 
    Returns: 0 if the certificate is included.  GPG_ERR_NOT_FOUND if it
    is not in the list or any other error (e.g. if no list of
@@ -161,7 +161,11 @@ gpgsm_is_in_qualified_list (ctrl_t ctrl, ksba_cert_t cert, char *country)
     return gpg_error (GPG_ERR_GENERAL);
 
   if (listfp)
-    rewind (listfp);
+    {
+      /* W32ce has no rewind, thus we use the equivalent code.  */
+      fseek (listfp, 0, SEEK_SET);
+      clearerr (listfp);
+    }
   while (!(err = read_list (key, mycountry, &lnr)))
     {
       if (!strcmp (key, fpr))
@@ -180,7 +184,7 @@ gpgsm_is_in_qualified_list (ctrl_t ctrl, ksba_cert_t cert, char *country)
 
 /* We know that CERT is a qualified certificate.  Ask the user for
    consent to actually create a signature using this certificate.
-   Returns: 0 for yes, GPG_ERR_CANCEL for no or any otehr error
+   Returns: 0 for yes, GPG_ERR_CANCEL for no or any other error
    code. */
 gpg_error_t
 gpgsm_qualified_consent (ctrl_t ctrl, ksba_cert_t cert)
@@ -206,7 +210,7 @@ gpgsm_qualified_consent (ctrl_t ctrl, ksba_cert_t cert)
                   "equated to a handwritten signature.\n\n%s%s"
                   "Are you really sure that you want to do this?"),
                 subject? subject:"?",
-                opt.qualsig_approval? 
+                opt.qualsig_approval?
                 "":
                 _("Note, that this software is not officially approved "
                   "to create or verify such signatures.\n"),
@@ -242,7 +246,7 @@ gpgsm_qualified_consent (ctrl_t ctrl, ksba_cert_t cert)
         *p++ = *s;
     }
   *p = 0;
-  free (name); 
+  free (name);
 
 
   err = gpgsm_agent_get_confirmation (ctrl, buffer);
@@ -311,7 +315,7 @@ gpgsm_not_qualified_warning (ctrl_t ctrl, ksba_cert_t cert)
         *p++ = *s;
     }
   *p = 0;
-  free (name); 
+  free (name);
 
 
   err = gpgsm_agent_get_confirmation (ctrl, buffer);