aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2000-12-12 13:31:25 +0000
committerWerner Koch <[email protected]>2000-12-12 13:31:25 +0000
commitedcc338a593d703335a98f39a44ff26307927458 (patch)
tree3ed5974c2f93de0b46c0962986e85efaeced38fa /tests
parentOkay, it runs at least on Windows 95 (diff)
downloadgpgme-edcc338a593d703335a98f39a44ff26307927458.tar.gz
gpgme-edcc338a593d703335a98f39a44ff26307927458.zip
Add a passphrase callback and minor changes to the interface
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/t-decrypt.c43
-rw-r--r--tests/t-sign.c60
-rw-r--r--tests/t-verify.c7
4 files changed, 80 insertions, 32 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 5e03d459..51d1195a 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -22,7 +22,7 @@ all-local: ./pubring.gpg ./secring.gpg
-gpg --homedir . --import $(srcdir)/pubdemo.asc
./secring.gpg: ./Alpha/Secret.gpg
- -gpg --homedir . --import Alpha/Secret.gpg Zulu/Secret.gpg
+ -gpg --homedir . --allow-secret-key-import --import Alpha/Secret.gpg Zulu/Secret.gpg
./Alpha/Secret.gpg: secdemo.asc
srcdir=$(srcdir) $(srcdir)/mkdemodirs
diff --git a/tests/t-decrypt.c b/tests/t-decrypt.c
index dd646895..677d3822 100644
--- a/tests/t-decrypt.c
+++ b/tests/t-decrypt.c
@@ -57,28 +57,23 @@ print_data ( GpgmeData dh )
}
-static int
-passphrase_cb ( void *opaque, char *buffer, size_t length, size_t *nread )
+static const char *
+passphrase_cb ( void *opaque, const char *desc, void *r_hd )
{
- struct passphrase_cb_info_s *info = opaque;
- const char *desc;
-
- assert (info);
- assert (info->c);
- if ( !buffer || !length || !nread )
- return 0; /* those values are reserved for extensions */
- if ( info->did_it )
- return -1; /* eof */
-
- desc = gpgme_get_prompt (info->c, 1);
- if (desc)
- fprintf (stderr, "Request passphrase for '%s'\n", desc );
- if ( length < 3 )
- return -1; /* FIXME - sending an EOF here is wrong */
- memcpy (buffer, "abc", 3 );
- *nread = 3;
- info->did_it = 1;
- return 0;
+ const char *pass;
+
+ if ( !desc ) {
+ /* cleanup by looking at *r_hd */
+
+
+ return NULL;
+ }
+
+ pass = "abc";
+ fprintf (stderr, "%% requesting passphrase for `%s': ", desc );
+ fprintf (stderr, "sending `%s'\n", pass );
+
+ return pass;
}
@@ -111,10 +106,10 @@ main (int argc, char **argv )
do {
err = gpgme_new (&ctx);
fail_if_err (err);
- if ( 0 && !getenv("GPG_AGENT_INFO") ) {
+ if ( !getenv("GPG_AGENT_INFO") ) {
memset ( &info, 0, sizeof info );
info.c = ctx;
- gpgme_data_new_with_read_cb ( &pwdata, passphrase_cb, &info );
+ gpgme_set_passphrase_cb ( ctx, passphrase_cb, &info );
}
err = gpgme_data_new_from_file ( &in, cipher_1_asc, 1 );
@@ -123,7 +118,7 @@ main (int argc, char **argv )
err = gpgme_data_new ( &out );
fail_if_err (err);
- err = gpgme_op_decrypt (ctx, pwdata, in, out );
+ err = gpgme_op_decrypt (ctx, in, out );
fail_if_err (err);
fflush (NULL);
diff --git a/tests/t-sign.c b/tests/t-sign.c
index c09b2c96..79f6b5cb 100644
--- a/tests/t-sign.c
+++ b/tests/t-sign.c
@@ -47,6 +47,24 @@ print_data ( GpgmeData dh )
fail_if_err (err);
}
+static const char *
+passphrase_cb ( void *opaque, const char *desc, void *r_hd )
+{
+ const char *pass;
+
+ if ( !desc ) {
+ /* cleanup by looking at *r_hd */
+
+
+ return NULL;
+ }
+
+ pass = "abc";
+ fprintf (stderr, "%% requesting passphrase for `%s': ", desc );
+ fprintf (stderr, "sending `%s'\n", pass );
+
+ return pass;
+}
int
@@ -59,25 +77,55 @@ main (int argc, char **argv )
do {
err = gpgme_new (&ctx);
fail_if_err (err);
+ if ( !getenv("GPG_AGENT_INFO") ) {
+ gpgme_set_passphrase_cb ( ctx, passphrase_cb, NULL );
+ }
+
+ gpgme_set_textmode (ctx, 1);
+ gpgme_set_armor (ctx, 1);
err = gpgme_data_new_from_mem ( &in, "Hallo Leute\n", 12, 0 );
fail_if_err (err);
+ /* first a normal signature */
err = gpgme_data_new ( &out );
fail_if_err (err);
-
- gpgme_set_textmode (ctx, 1);
- gpgme_set_armor (ctx, 1);
- err = gpgme_op_sign (ctx, in, out );
+ err = gpgme_op_sign (ctx, in, out, GPGME_SIG_MODE_NORMAL );
+ fail_if_err (err);
+ fflush (NULL);
+ fputs ("Begin Result:\n", stdout );
+ print_data (out);
+ fputs ("End Result.\n", stdout );
+ gpgme_data_release (out);
+ gpgme_data_rewind (in);
+
+ /* now a detached signature */
+ err = gpgme_data_new ( &out );
fail_if_err (err);
+ err = gpgme_op_sign (ctx, in, out, GPGME_SIG_MODE_DETACH );
+ fail_if_err (err);
+ fflush (NULL);
+ fputs ("Begin Result:\n", stdout );
+ print_data (out);
+ fputs ("End Result.\n", stdout );
+ gpgme_data_release (out);
+ gpgme_data_rewind (in);
+
+ /* And finally a cleartext signature */
+ err = gpgme_data_new ( &out );
+ fail_if_err (err);
+ err = gpgme_op_sign (ctx, in, out, GPGME_SIG_MODE_CLEAR );
+ fail_if_err (err);
fflush (NULL);
fputs ("Begin Result:\n", stdout );
print_data (out);
fputs ("End Result.\n", stdout );
-
- gpgme_data_release (in);
gpgme_data_release (out);
+ gpgme_data_rewind (in);
+
+ /* ready */
+ gpgme_data_release (in);
gpgme_release (ctx);
} while ( argc > 1 && !strcmp( argv[1], "--loop" ) );
diff --git a/tests/t-verify.c b/tests/t-verify.c
index ac9e3376..2b91a99a 100644
--- a/tests/t-verify.c
+++ b/tests/t-verify.c
@@ -35,7 +35,7 @@ static const char test_sig1[] =
"ZgIAn0204PBR7yxSdQx6CFxugstNqmRv\n"
"=yku6\n"
"-----END PGP SIGNATURE-----\n"
-#elif 0
+#elif 0
"-----BEGIN PGP SIGNATURE-----\n"
"Version: GnuPG v1.0.4-2 (GNU/Linux)\n"
"Comment: For info see http://www.gnupg.org\n"
@@ -108,14 +108,19 @@ main (int argc, char **argv )
err = gpgme_data_new_from_mem ( &text,
test_text1, strlen (test_text1), 0 );
fail_if_err (err);
+ #if 1
err = gpgme_data_new_from_mem ( &sig,
test_sig1, strlen (test_sig1), 0 );
+ #else
+ err = gpgme_data_new_from_file ( &sig, "xx1", 1 );
+ #endif
fail_if_err (err);
puts ("checking a valid message:\n");
err = gpgme_op_verify (ctx, sig, text, &status );
print_sig_stat ( status );
fail_if_err (err);
+
if ( (nota=gpgme_get_notation (ctx)) )
printf ("---Begin Notation---\n%s---End Notation---\n", nota );