diff options
author | Werner Koch <[email protected]> | 2000-12-12 13:31:25 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2000-12-12 13:31:25 +0000 |
commit | edcc338a593d703335a98f39a44ff26307927458 (patch) | |
tree | 3ed5974c2f93de0b46c0962986e85efaeced38fa /tests/t-decrypt.c | |
parent | Okay, it runs at least on Windows 95 (diff) | |
download | gpgme-edcc338a593d703335a98f39a44ff26307927458.tar.gz gpgme-edcc338a593d703335a98f39a44ff26307927458.zip |
Add a passphrase callback and minor changes to the interface
Diffstat (limited to '')
-rw-r--r-- | tests/t-decrypt.c | 43 |
1 files changed, 19 insertions, 24 deletions
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); |