doc/
authorMarcus Brinkmann <mb@g10code.com>
Fri, 25 Apr 2003 17:08:00 +0000 (17:08 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Fri, 25 Apr 2003 17:08:00 +0000 (17:08 +0000)
2003-04-25  Marcus Brinkmann  <marcus@g10code.de>

* gpgme.texi (Importing Keys): Change GPGME_IMPORT_PRIVATE to
GPGME_IMPORT_SECRET.

gpgme/
2003-04-25  Marcus Brinkmann  <marcus@g10code.de>

* gpgme.h: Change GPGME_IMPORT_PRIVATE to GPGME_IMPORT_SECRET.
* import.c (parse_import_res): Parse unchanged field.

tests/
2003-04-25  Marcus Brinkmann  <marcus@g10code.de>

* gpg/t-import.c: Rewritten.

trunk/doc/ChangeLog
trunk/doc/gpgme.texi
trunk/gpgme/ChangeLog
trunk/gpgme/gpgme.h
trunk/gpgme/import.c
trunk/tests/ChangeLog
trunk/tests/gpg/t-import.c

index 0f8190551c0030285496c58101b575140cbaad10..8cd00e78ac8df58f549410851a59331494ad8365 100644 (file)
@@ -1,5 +1,8 @@
 2003-04-25  Marcus Brinkmann  <marcus@g10code.de>
 
+       * gpgme.texi (Importing Keys): Change GPGME_IMPORT_PRIVATE to
+       GPGME_IMPORT_SECRET.
+
        * gpgme.texi (Importing Keys): Remove note about gpgme_get_op_info.
        (Detailed Results): Remove note about import.
 
index 4f0e852e70b8a786c211f7ad9d47cd6091f858f6..cb923851d9859b1907730d11748a0695e93cf26c 100644 (file)
@@ -2315,8 +2315,8 @@ The key contained new signatures.
 @item GPGME_IMPORT_SUBKEY
 The key contained new sub keys.
 
-@item GPGME_IMPORT_PRIVATE
-The key contained a private key.
+@item GPGME_IMPORT_SECRET
+The key contained a secret key.
 @end table
 @end table
 @end deftp
index 1202ea1b59132951a60143cf37e70e5a042c4715..3949b544fc0e46d03fede543f48c0feae4daec08 100644 (file)
@@ -1,5 +1,8 @@
 2003-04-25  Marcus Brinkmann  <marcus@g10code.de>
 
+       * gpgme.h: Change GPGME_IMPORT_PRIVATE to GPGME_IMPORT_SECRET.
+       * import.c (parse_import_res): Parse unchanged field.
+
        * gpgme.h: New enum for GPGME_IMPORT_NEW, GPGME_IMPORT_UID,
        GPGME_IMPORT_SIG, GPGME_IMPORT_SUBKEY, GPGME_IMPORT_PRIVATE.
        (GpgmeError): GPGME_Unknown_Reason, GPGME_Not_Found,
index 416ae90bd4947e6076f84bf7330ceea173a87c1c..7d92443bf7fcba9975bc5c070ca7c0802fe6936b 100644 (file)
@@ -790,8 +790,8 @@ enum
     /* The key contained new sub keys.  */
     GPGME_IMPORT_SUBKEY        = 8,
 
-    /* The key contained a private key.  */
-    GPGME_IMPORT_PRIVATE = 16
+    /* The key contained a secret key.  */
+    GPGME_IMPORT_SECRET = 16
   };
 
 struct _gpgme_import_status
index c9fff5b5f903edd89cffe943d953085de9f9241f..90a6e360046932362107392f3a533bb7881e1c94 100644 (file)
@@ -160,6 +160,7 @@ parse_import_res (char *args, GpgmeImportResult result)
   PARSE_NEXT (result->no_user_id);
   PARSE_NEXT (result->imported);
   PARSE_NEXT (result->imported_rsa);
+  PARSE_NEXT (result->unchanged);
   PARSE_NEXT (result->new_user_ids);
   PARSE_NEXT (result->new_sub_keys);
   PARSE_NEXT (result->new_signatures);
index 4800f22521c494bef04f2c4184ad4088ce5fe41a..6a60abb82e5aaace918eed23a0c3b4a67e7ae097 100644 (file)
@@ -1,5 +1,7 @@
 2003-04-25  Marcus Brinkmann  <marcus@g10code.de>
 
+       * gpg/t-import.c: Rewritten.
+
        * gpgsm/t-genkey.c: Rewritten.
        * gpgsm/Makefile.am (noinst_PROGRAMS): Add t-genkey.
        * gpg/t-genkey.c: Include <stdlib.h>.
index 7bf212441482e700e877f524c668b3b57dda9c85..13d1f39cb10e04876986eb06b0caf50b858e37ec 100644 (file)
 /* t-import.c  - regression test
- *     Copyright (C) 2000 Werner Koch (dd9jn)
- *      Copyright (C) 2001 g10 Code GmbH
- *
- * This file is part of GPGME.
- *
- * GPGME 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
- * (at your option) any later version.
- *
- * GPGME is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
+   Copyright (C) 2000 Werner Koch (dd9jn)
+   Copyright (C) 2001, 2003 g10 Code GmbH
+
+   This file is part of GPGME.
+   GPGME 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
+   (at your option) any later version.
+   GPGME is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+   You should have received a copy of the GNU General Public License
+   along with GPGME; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
-#include <stdio.h>
 #include <stdlib.h>
+#include <stdio.h>
 #include <string.h>
-#include <assert.h>
 #include <errno.h>
 
 #include <gpgme.h>
 
 
-#define fail_if_err(a) do { if(a) { int my_errno = errno; \
-            fprintf (stderr, "%s:%d: GpgmeError %s\n", \
-                 __FILE__, __LINE__, gpgme_strerror(a));   \
-            if ((a) == GPGME_File_Error)                       \
-                   fprintf (stderr, "\terrno=`%s'\n", strerror (my_errno)); \
-                   exit (1); }                               \
-                             } while(0)
+#define fail_if_err(err)                                       \
+  do                                                           \
+    {                                                          \
+      if (err)                                                 \
+        {                                                      \
+          fprintf (stderr, "%s:%d: GpgmeError %s\n",           \
+                   __FILE__, __LINE__, gpgme_strerror (err));   \
+          exit (1);                                            \
+        }                                                      \
+    }                                                          \
+  while (0)
 
 
 static char *
-mk_fname ( const char *fname )
+mk_fname (const char *fname)
 {
-    const char *srcdir = getenv ("srcdir");
-    char *buf;
-
-    if (!srcdir)
-        srcdir = ".";
-    buf = malloc (strlen(srcdir) + strlen(fname) + 2 );
-    if (!buf 
-        exit (8);
-    strcpy (buf, srcdir);
-    strcat (buf, "/");
-    strcat (buf, fname );
-    return buf;
+  const char *srcdir = getenv ("srcdir");
+  char *buf;
+
+  if (!srcdir)
+    srcdir = ".";
+  buf = malloc (strlen(srcdir) + strlen(fname) + 2);
+  if (!buf
+    exit (8);
+  strcpy (buf, srcdir);
+  strcat (buf, "/");
+  strcat (buf, fname);
+  return buf;
 }
 
 
-static void
-print_op_info (GpgmeCtx c)
+void
+check_result (GpgmeImportResult result, char *fpr, int secret)
 {
-  char *s = gpgme_get_op_info (c, 0);
-
-  if (!s)
-    puts ("<!-- no operation info available -->");
-  else {
-    puts (s);
-    free (s);
-  }
+  if (result->considered != 1)
+    {
+      fprintf (stderr, "Unexpected number of considered keys %i\n",
+              result->considered);
+      exit (1);
+    }
+  if (result->no_user_id != 0)
+    {
+      fprintf (stderr, "Unexpected number of user ids %i\n",
+              result->no_user_id);
+      exit (1);
+    }
+  if ((secret && result->imported != 0)
+      || (!secret && (result->imported != 0 && result->imported != 1)))
+    {
+      fprintf (stderr, "Unexpected number of imported keys %i\n",
+              result->imported);
+      exit (1);
+    }
+  if (result->imported_rsa != 0)
+    {
+      fprintf (stderr, "Unexpected number of imported RSA keys %i\n",
+              result->imported_rsa);
+      exit (1);
+    }
+  if ((secret && result->unchanged != 0)
+      || (!secret && ((result->imported == 0 && result->unchanged != 1)
+                     || (result->imported == 1 && result->unchanged != 0))))
+    {
+      fprintf (stderr, "Unexpected number of unchanged keys %i\n",
+              result->unchanged);
+      exit (1);
+    }
+  if (result->new_user_ids != 0)
+    {
+      fprintf (stderr, "Unexpected number of new user IDs %i\n",
+              result->new_user_ids);
+      exit (1);
+    }
+  if (result->new_sub_keys != 0)
+    {
+      fprintf (stderr, "Unexpected number of new sub keys %i\n",
+              result->new_sub_keys);
+      exit (1);
+    }
+  if (result->new_signatures != 0)
+    {
+      fprintf (stderr, "Unexpected number of new signatures %i\n",
+              result->new_signatures);
+      exit (1);
+    }
+  if (result->new_revocations != 0)
+    {
+      fprintf (stderr, "Unexpected number of new revocations %i\n",
+              result->new_revocations);
+      exit (1);
+    }
+  if ((secret && result->secret_read != 1)
+      || (!secret && result->secret_read != 0))
+    {
+      fprintf (stderr, "Unexpected number of secret keys read %i\n",
+              result->secret_read);
+      exit (1);
+    }
+  if ((secret && result->secret_imported != 0 && result->secret_imported != 1)
+      || (!secret && result->secret_imported != 0))
+    {
+      fprintf (stderr, "Unexpected number of secret keys imported %i\n",
+              result->secret_imported);
+      exit (1);
+    }
+  if ((secret
+       && ((result->secret_imported == 0 && result->secret_unchanged != 1)
+          || (result->secret_imported == 1 && result->secret_unchanged != 0)))
+      || (!secret && result->secret_unchanged != 0))
+    {
+      fprintf (stderr, "Unexpected number of secret keys unchanged %i\n",
+              result->secret_unchanged);
+      exit (1);
+    }
+  if (result->not_imported != 0)
+    {
+      fprintf (stderr, "Unexpected number of secret keys not imported %i\n",
+              result->not_imported);
+      exit (1);
+    }
+  if (!result->imports || result->imports->next)
+    {
+      fprintf (stderr, "Unexpected number of status reports\n");
+      exit (1);
+    }
+  if (strcmp ("ADAB7FCC1F4DE2616ECFA402AF82244F9CD9FD55", result->imports->fpr))
+    {
+      fprintf (stderr, "Unexpected fingerprint %s\n",
+              result->imports->fpr);
+      exit (1);
+    }
+  if (result->imports->result != 0)
+    {
+      fprintf (stderr, "Unexpected status result %s\n",
+              gpgme_strerror (result->imports->result));
+      exit (1);
+    }
+  if ((secret
+       && ((result->secret_imported == 0
+           && result->imports->status != GPGME_IMPORT_SECRET)
+          || (result->secret_imported == 1
+              && result->imports->status != (GPGME_IMPORT_SECRET | GPGME_IMPORT_NEW))))
+      || (!secret
+         && ((result->imported == 0 && result->imports->status != 0)
+             || (result->imported == 1
+                 && result->imports->status != GPGME_IMPORT_NEW))))
+    {
+      fprintf (stderr, "Unexpected status %i\n",
+              result->imports->status);
+      exit (1);
+    }
 }
 
 
 int 
-main (int argc, char **argv )
+main (int argc, char **argv)
 {
-    GpgmeCtx ctx;
-    GpgmeError err;
-    GpgmeData in;
-    const char *pubkey_1_asc = mk_fname ("pubkey-1.asc");
-    const char *seckey_1_asc = mk_fname ("seckey-1.asc");
-
-  do {
-    err = gpgme_new (&ctx);
-    fail_if_err (err);
-
-    err = gpgme_data_new_from_file ( &in, pubkey_1_asc, 1 );
-    fail_if_err (err);
-
-    err = gpgme_op_import (ctx, in );
-    fail_if_err (err);
-    print_op_info (ctx);
-
-    gpgme_data_release (in);
-
-    err = gpgme_data_new_from_file ( &in, seckey_1_asc, 1 );
-    fail_if_err (err);
-
-    err = gpgme_op_import (ctx, in );
-    fail_if_err (err);
-    print_op_info (ctx);
-
-    gpgme_data_release (in);
-    gpgme_release (ctx);
-  } while ( argc > 1 && !strcmp( argv[1], "--loop" ) );
-   
-    return 0;
+  GpgmeCtx ctx;
+  GpgmeError err;
+  GpgmeData in;
+  GpgmeImportResult result;
+  const char *pubkey_1_asc = mk_fname ("pubkey-1.asc");
+  const char *seckey_1_asc = mk_fname ("seckey-1.asc");
+
+  err = gpgme_new (&ctx);
+  fail_if_err (err);
+
+  err = gpgme_data_new_from_file (&in, pubkey_1_asc, 1);
+  fail_if_err (err);
+
+  err = gpgme_op_import (ctx, in);
+  fail_if_err (err);
+  result = gpgme_op_import_result (ctx);
+  check_result (result, "ADAB7FCC1F4DE2616ECFA402AF82244F9CD9FD55", 0);
+  gpgme_data_release (in);
+
+  err = gpgme_data_new_from_file (&in, seckey_1_asc, 1);
+  fail_if_err (err);
+
+  err = gpgme_op_import (ctx, in);
+  fail_if_err (err);
+  result = gpgme_op_import_result (ctx);
+  check_result (result, "ADAB7FCC1F4DE2616ECFA402AF82244F9CD9FD55", 1);
+  gpgme_data_release (in);
+
+  gpgme_release (ctx);
+  return 0;
 }
-
-