diff options
author | Marcus Brinkmann <[email protected]> | 2003-04-24 17:16:28 +0000 |
---|---|---|
committer | Marcus Brinkmann <[email protected]> | 2003-04-24 17:16:28 +0000 |
commit | 671edce1ae7716d2099a7f502dc560abc024f8ae (patch) | |
tree | 22dca8eb449f95fed151680fbc1d91c759e444e4 /tests | |
parent | 2003-04-24 Marcus Brinkmann <[email protected]> (diff) | |
download | gpgme-671edce1ae7716d2099a7f502dc560abc024f8ae.tar.gz gpgme-671edce1ae7716d2099a7f502dc560abc024f8ae.zip |
doc/
2003-04-24 Marcus Brinkmann <[email protected]>
* gpgme.texi (Generating Keys): Document changed gpgme_op_genkey
and new gpgme_op_genkey_result function. Document
GpgmeGenKeyResult data type.
gpgme/
2003-04-24 Marcus Brinkmann <[email protected]>
* gpgme.h (struct _gpgme_op_genkey_result): New structure.
(GpgmeGenKeyResult): New type.
(gpgme_op_genkey): Drop last argument.
(gpgme_op_genkey_result): New function.
* genkey.c: Do not include "util.h", but "gpgme.h".
(struct genkey_result): Replace with ...
(op_data_t): ... this new type.
(release_genkey_result): Replace with ...
(release_op_data): ... this new function.
(gpgme_op_genkey_result): New function.
(genkey_status_handler): Rewritten using new op_data_t type.
(get_key_parameter): New function.
(_gpgme_op_genkey_start): Renamed to
(genkey_start): ... this and rewritten.
(gpgme_op_genkey_start): Use genkey_start instead
_gpgme_op_genkey_start.
(gpgme_op_genkey): Rewritten. Remove FPR argument.
tests/
2003-04-24 Marcus Brinkmann <[email protected]>
* gpg/t-genkey.c: Rewritten to match new semantics.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ChangeLog | 4 | ||||
-rw-r--r-- | tests/gpg/t-genkey.c | 163 |
2 files changed, 104 insertions, 63 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog index 37d6d11c..407d0cf0 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2003-04-24 Marcus Brinkmann <[email protected]> + + * gpg/t-genkey.c: Rewritten to match new semantics. + 2003-02-06 Marcus Brinkmann <[email protected]> * gpg/t-decrypt.c (passphrase_cb): Fix to new prototype. diff --git a/tests/gpg/t-genkey.c b/tests/gpg/t-genkey.c index 4bb59b2d..75ef4212 100644 --- a/tests/gpg/t-genkey.c +++ b/tests/gpg/t-genkey.c @@ -1,84 +1,121 @@ /* t-genkey.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 <string.h> -#include <assert.h> #include <gpgme.h> -#define fail_if_err(a) do { if(a) { \ - fprintf (stderr, "%s:%d: GpgmeError %s\n", \ - __FILE__, __LINE__, gpgme_strerror(a)); \ - 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) +/* True if progress function printed something on the screen. */ +int progress_called; static void -progress ( void *self, const char *what, int type, int current, int total) +progress (void *self, const char *what, int type, int current, int total) { - fprintf (stderr, "progress `%s' %d %d %d\n", what, type, current, total); + if (!strcmp (what, "primegen") && !current && !total + && (type == '.' || type == '+' || type == '!' + || type == '^' || type == '<' || type == '>')) + { + printf ("%c", type); + fflush (stdout); + progress_called = 1; + } + else + { + fprintf (stderr, "unknown progress `%s' %d %d %d\n", what, type, + current, total); + exit (1); + } } int -main (int argc, char **argv ) +main (int argc, char **argv) { - GpgmeCtx ctx; - GpgmeError err; - const char *format; - char *parms; - int count = 0; - - do { - err = gpgme_new (&ctx); - fail_if_err (err); + GpgmeCtx ctx; + GpgmeError err; + const char *parms = "<GnupgKeyParms format=\"internal\">\n" + "Key-Type: DSA\n" + "Key-Length: 1024\n" + "Subkey-Type: ELG-E\n" + "Subkey-Length: 1024\n" + "Name-Real: Joe Tester\n" + "Name-Comment: (pp=abc)\n" + "Name-Email: [email protected]\n" + "Expire-Date: 0\n" + "Passphrase: abc\n" + "</GnupgKeyParms>\n"; + GpgmeGenKeyResult result; - gpgme_set_progress_cb (ctx, progress, NULL); + err = gpgme_new (&ctx); + fail_if_err (err); - format = "<GnupgKeyParms format=\"internal\">\n" - "Key-Type: DSA\n" - "Key-Length: 1024\n" - "Subkey-Type: ELG-E\n" - "Subkey-Length: 1024\n" - "Name-Real: Joe Tester\n" - "Name-Comment: (pp=abc,try=%d)\n" - "Name-Email: [email protected]\n" - "Expire-Date: 0\n" - "Passphrase: abc\n" - "</GnupgKeyParms>\n"; - parms = malloc ( strlen (format) + 1 + 20 ); - if (!parms) - exit (8); - sprintf (parms, format, ++count ); - err = gpgme_op_genkey (ctx, parms, NULL, NULL, NULL); - fail_if_err (err); - free (parms); - - gpgme_release (ctx); - } while ( argc > 1 && !strcmp( argv[1], "--loop" ) ); - - return 0; -} + gpgme_set_progress_cb (ctx, progress, NULL); + + err = gpgme_op_genkey (ctx, parms, NULL, NULL); + fail_if_err (err); + result = gpgme_op_genkey_result (ctx); + if (!result) + { + fprintf (stderr, "%s:%d: gpgme_op_genkey_result returns NULL\n", + __FILE__, __LINE__); + exit (1); + } + if (progress_called) + printf ("\n"); + printf ("Generated key: %s (%s)\n", result->fpr ? result->fpr : "none", + result->primary ? (result->sub ? "primary, sub" : "primary") + : (result->sub ? "sub" : "none")); + if (strlen (result->fpr) != 40) + { + fprintf (stderr, "%s:%d: generated key has unexpected fingerprint\n", + __FILE__, __LINE__); + exit (1); + } + if (!result->primary) + { + fprintf (stderr, "%s:%d: primary key was not generated\n", + __FILE__, __LINE__); + exit (1); + } + if (!result->sub) + { + fprintf (stderr, "%s:%d: sub key was not generated\n", + __FILE__, __LINE__); + exit (1); + } + gpgme_release (ctx); + return 0; +} |