doc: Typo fix in a comment.
[gnupg.git] / g10 / photoid.c
index cca32bc..bcea64f 100644 (file)
@@ -1,11 +1,11 @@
 /* photoid.c - photo ID handling code
- * Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+ * Copyright (C) 2001, 2002, 2005, 2006, 2008, 2011 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
  * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * GnuPG is distributed in the hope that it will be useful,
  * 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, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- * USA.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #include <errno.h>
 #include <stdio.h>
 #include <string.h>
-#ifdef _WIN32 
+#ifdef _WIN32
+# ifdef HAVE_WINSOCK2_H
+#  include <winsock2.h>
+# endif
 # include <windows.h>
 # ifndef VER_PLATFORM_WIN32_WINDOWS
 #  define VER_PLATFORM_WIN32_WINDOWS 1
 #endif
 
 #include "gpg.h"
+#include "../common/util.h"
 #include "packet.h"
-#include "status.h"
+#include "../common/status.h"
 #include "exec.h"
 #include "keydb.h"
-#include "util.h"
-#include "i18n.h"
-#include "iobuf.h"
+#include "../common/i18n.h"
+#include "../common/iobuf.h"
 #include "options.h"
 #include "main.h"
 #include "photoid.h"
-#include "ttyio.h"
+#include "../common/ttyio.h"
+#include "trustdb.h"
 
-/* Generate a new photo id packet, or return NULL if canceled */
+/* Generate a new photo id packet, or return NULL if canceled.
+   FIXME:  Should we add a duplicates check similar to generate_user_id? */
 PKT_user_id *
-generate_photo_id(PKT_public_key *pk,const char *photo_name)
+generate_photo_id (ctrl_t ctrl, PKT_public_key *pk,const char *photo_name)
 {
   PKT_user_id *uid;
   int error=1,i;
@@ -110,18 +113,18 @@ generate_photo_id(PKT_public_key *pk,const char *photo_name)
         {
           iobuf_close (file);
           file = NULL;
-          errno = EPERM;
+          gpg_err_set_errno (EPERM);
         }
       if(!file)
        {
-         log_error(_("unable to open JPEG file `%s': %s\n"),
+         log_error(_("unable to open JPEG file '%s': %s\n"),
                    filename,strerror(errno));
          xfree(filename);
          filename=NULL;
          continue;
        }
 
-      
+
       len=iobuf_get_filelength(file, &overflow);
       if(len>6144 || overflow)
        {
@@ -141,10 +144,9 @@ generate_photo_id(PKT_public_key *pk,const char *photo_name)
       iobuf_close(file);
 
       /* Is it a JPEG? */
-      if(photo[0]!=0xFF || photo[1]!=0xD8 ||
-        photo[6]!='J' || photo[7]!='F' || photo[8]!='I' || photo[9]!='F')
+      if(photo[0]!=0xFF || photo[1]!=0xD8)
        {
-         log_error(_("`%s' is not a JPEG file\n"),filename);
+         log_error(_("'%s' is not a JPEG file\n"),filename);
          xfree(photo);
          photo=NULL;
          xfree(filename);
@@ -161,7 +163,7 @@ generate_photo_id(PKT_public_key *pk,const char *photo_name)
          "user" may not be able to dismiss a viewer window! */
       if(opt.command_fd==-1)
        {
-         show_photos(uid->attribs,uid->numattribs,pk,NULL);
+         show_photos (ctrl, uid->attribs, uid->numattribs, pk, uid);
          switch(cpr_get_answer_yes_no_quit("photoid.jpeg.okay",
                                         _("Is this photo correct (y/N/q)? ")))
            {
@@ -284,23 +286,31 @@ static const char *get_default_photo_command(void)
 }
 #endif
 
-void show_photos(const struct user_attribute *attrs,
-                int count,PKT_public_key *pk,PKT_secret_key *sk)
+
+void
+show_photos (ctrl_t ctrl, const struct user_attribute *attrs, int count,
+             PKT_public_key *pk, PKT_user_id *uid)
 {
-#ifndef DISABLE_PHOTO_VIEWER
+#ifdef DISABLE_PHOTO_VIEWER
+  (void)attrs;
+  (void)count;
+  (void)pk;
+  (void)uid;
+#else /*!DISABLE_PHOTO_VIEWER*/
   int i;
   struct expando_args args;
   u32 len;
   u32 kid[2]={0,0};
 
-  memset(&args,0,sizeof(args));
-  args.pk=pk;
-  args.sk=sk;
+  memset (&args, 0, sizeof(args));
+  args.pk = pk;
+  args.validity_info = get_validity_info (ctrl, NULL, pk, uid);
+  args.validity_string = get_validity_string (ctrl, pk, uid);
+  namehash_from_uid (uid);
+  args.namehash = uid->namehash;
 
-  if(pk)
-    keyid_from_pk(pk,kid);
-  else if(sk)
-    keyid_from_sk(sk,kid);
+  if (pk)
+    keyid_from_pk (pk, kid);
 
   for(i=0;i<count;i++)
     if(attrs[i].type==ATTRIB_IMAGE &&
@@ -368,5 +378,5 @@ void show_photos(const struct user_attribute *attrs,
 
  fail:
   log_error(_("unable to display photo ID!\n"));
-#endif
+#endif /*!DISABLE_PHOTO_VIEWER*/
 }