diff options
author | Werner Koch <[email protected]> | 2013-05-22 14:30:12 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2013-05-22 14:31:51 +0000 |
commit | 567e6481d767af60390d649897b897a8b0e7e9a5 (patch) | |
tree | 4ebe710383116afcad1f84e9f974760ffb481243 /src/engine-gpg.c | |
parent | gpgme-tool: Allow for symmetric encryption. (diff) | |
download | gpgme-567e6481d767af60390d649897b897a8b0e7e9a5.tar.gz gpgme-567e6481d767af60390d649897b897a8b0e7e9a5.zip |
Allow symmetric encryption with gpgme_op_encrypt_sign.
* src/encrypt-sign.c (encrypt_sym_status_handler): New.
(encrypt_sign_start): Handle recp == NULL case.
* src/engine-gpg.c (gpg_encrypt_sign): Implement symmetric encryption.
* tests/gpg/t-encrypt-sign.c (main): Add a test case for this.
--
Co-authored-by: Kyle L. Huff <[email protected]>
GnuPG-bug-id: 1440
Diffstat (limited to '')
-rw-r--r-- | src/engine-gpg.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c index 3f025030..65012fab 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -1700,23 +1700,29 @@ gpg_encrypt_sign (void *engine, gpgme_key_t recp[], { engine_gpg_t gpg = engine; gpgme_error_t err; + int symmetric = !recp; + + err = add_arg (gpg, symmetric ? "--symmetric" : "--encrypt"); - err = add_arg (gpg, "--encrypt"); if (!err) err = add_arg (gpg, "--sign"); if (!err && use_armor) err = add_arg (gpg, "--armor"); - /* If we know that all recipients are valid (full or ultimate trust) - we can suppress further checks. */ - if (!err && (flags & GPGME_ENCRYPT_ALWAYS_TRUST)) - err = add_arg (gpg, "--always-trust"); + if (!symmetric) + { + /* If we know that all recipients are valid (full or ultimate trust) + we can suppress further checks. */ + if (!err && (flags & GPGME_ENCRYPT_ALWAYS_TRUST)) + err = add_arg (gpg, "--always-trust"); - if (!err) - err = append_args_from_recipients (gpg, recp); + if (!err) + err = append_args_from_recipients (gpg, recp); + } if (!err) err = append_args_from_signers (gpg, ctx); + if (!err) err = append_args_from_sig_notations (gpg, ctx); |