diff options
| author | Werner Koch <[email protected]> | 2021-06-14 17:51:28 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2021-06-14 17:51:28 +0000 | 
| commit | fde20940b5ca6986dc12215209e8858601bb0c2e (patch) | |
| tree | c6f91404915bac0ccd6308fa8cce7c0c50bd68aa /tests | |
| parent | core: Also detect AuthEnvelopedData (AEAD for CMS) (diff) | |
| download | gpgme-fde20940b5ca6986dc12215209e8858601bb0c2e.tar.gz gpgme-fde20940b5ca6986dc12215209e8858601bb0c2e.zip | |
core: New data flags "io-buffer-size" and "sensitive".
* src/data.c (_gpgme_data_release): Free buffers.
(gpgme_data_seek): Adjust from renamed fields.
(gpgme_data_set_flag): Implement new flags.
(_gpgme_data_inbound_handler): Allow the use of a malloced buffer.
(_gpgme_data_outbound_handler): Ditto.
* src/data.h (BUFFER_SIZE): Move out of the struct definition.
(struct gpgme_data): Remove pending filed and introduce inbound and
outbound fields.
* src/conversion.c (_gpgme_wipememory): New.  Taken from GnuPG.
* src/cJSON.c (wipememory): Use this here too.
* tests/run-decrypt.c (main): Add options "--large-buffers" and
"--sensitive".
--
GnuPG-bug-id: 5478
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/run-decrypt.c | 34 | 
1 files changed, 34 insertions, 0 deletions
| diff --git a/tests/run-decrypt.c b/tests/run-decrypt.c index f1a9fcc0..cf719925 100644 --- a/tests/run-decrypt.c +++ b/tests/run-decrypt.c @@ -89,6 +89,8 @@ show_usage (int ex)           "  --no-symkey-cache               disable the use of that cache\n"           "  --ignore-mdc-error              allow decryption of legacy data\n"           "  --unwrap         remove only the encryption layer\n" +         "  --large-buffers  use large I/O buffer\n" +         "  --sensitive      mark data objects as sensitive\n"           "  --diagnostics    print diagnostics\n"           , stderr);    exit (ex); @@ -114,6 +116,8 @@ main (int argc, char **argv)    int no_symkey_cache = 0;    int ignore_mdc_error = 0;    int raw_output = 0; +  int large_buffers = 0; +  int sensitive = 0;    int diagnostics = 0;    if (argc) @@ -185,6 +189,16 @@ main (int argc, char **argv)            diagnostics = 1;            argc--; argv++;          } +      else if (!strcmp (*argv, "--large-buffers")) +        { +          large_buffers = 1; +          argc--; argv++; +        } +      else if (!strcmp (*argv, "--sensitive")) +        { +          sensitive = 1; +          argc--; argv++; +        }        else if (!strcmp (*argv, "--unwrap"))          {            flags |= GPGME_DECRYPT_UNWRAP; @@ -288,6 +302,26 @@ main (int argc, char **argv)                 gpgme_strerror (err));        exit (1);      } +  if (large_buffers) +    { +      err = gpgme_data_set_flag (out, "io-buffer-size", "1000000"); +      if (err) +        { +          fprintf (stderr, PGM ": error setting io-buffer-size (out): %s\n", +                   gpgme_strerror (err)); +          exit (1); +        } +    } +  if (sensitive) +    { +      err = gpgme_data_set_flag (out, "sensitive", "1"); +      if (err) +        { +          fprintf (stderr, PGM ": error setting sensitive flag (out): %s\n", +                   gpgme_strerror (err)); +          exit (1); +        } +    }    err = gpgme_op_decrypt_ext (ctx, flags, in, out);    result = gpgme_op_decrypt_result (ctx); | 
