diff options
author | Marcus Brinkmann <[email protected]> | 2001-11-23 11:52:09 +0000 |
---|---|---|
committer | Marcus Brinkmann <[email protected]> | 2001-11-23 11:52:09 +0000 |
commit | 8c3726d6349408ec50448ee9b19f5d1c3333696f (patch) | |
tree | f7eee5ca8915752ac88d84e35a919624525b20a4 | |
parent | signing of mail bodies is working now - buuuuut: I changed the behaviour of t... (diff) | |
download | gpgme-8c3726d6349408ec50448ee9b19f5d1c3333696f.tar.gz gpgme-8c3726d6349408ec50448ee9b19f5d1c3333696f.zip |
2001-11-23 Marcus Brinkmann <[email protected]>
* engine-gpgsm.c (_gpgme_gpgsm_op_sign): Implement it according to
the current protocol definition.
-rw-r--r-- | gpgme/ChangeLog | 5 | ||||
-rw-r--r-- | gpgme/engine-gpgsm.c | 24 |
2 files changed, 27 insertions, 2 deletions
diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index 03a093a6..cb0c7b67 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -1,5 +1,10 @@ 2001-11-23 Marcus Brinkmann <[email protected]> + * engine-gpgsm.c (_gpgme_gpgsm_op_sign): Implement it according to + the current protocol definition. + +2001-11-23 Marcus Brinkmann <[email protected]> + * engine-gpgsm.c (_gpgme_gpgsm_new): Set CLOEXEC flag for parent ends of the pipe. diff --git a/gpgme/engine-gpgsm.c b/gpgme/engine-gpgsm.c index 63f019aa..bf6bf838 100644 --- a/gpgme/engine-gpgsm.c +++ b/gpgme/engine-gpgsm.c @@ -395,8 +395,28 @@ _gpgme_gpgsm_op_sign (GpgsmObject gpgsm, GpgmeData in, GpgmeData out, GpgmeSigMode mode, int use_armor, int use_textmode, GpgmeCtx ctx /* FIXME */) { - /* FIXME */ - return mk_error (Not_Implemented); + AssuanError err; + + if (!gpgsm) + return mk_error (Invalid_Value); + + gpgsm->command = xtrystrdup (mode == GPGME_SIG_MODE_DETACH + ? "VERIFY --detach" : "VERIFY"); + if (!gpgsm->command) + return mk_error (Out_Of_Core); + + gpgsm->input_data = in; + err = gpgsm_set_fd (gpgsm->assuan_ctx, "INPUT", gpgsm->input_fd_server); + if (err) + return mk_error (General_Error); /* FIXME */ + gpgsm->output_data = out; + err = gpgsm_set_fd (gpgsm->assuan_ctx, "OUTPUT", gpgsm->output_fd_server); + if (err) + return mk_error (General_Error); /* FIXME */ + _gpgme_io_close (gpgsm->message_fd); + gpgsm->message_fd = -1; + + return 0; } GpgmeError |