mirror of
git://git.gnupg.org/gnupg.git
synced 2025-02-21 19:48:05 +01:00
gpgsm: New option --input-size-hint.
* sm/gpgsm.c (oInputSizeHint): New. (opts): Add "--input-size-hint". (main): Set option. * sm/server.c (option_handler): Add option "input-size-hint". * sm/gpgsm.h (struct server_control_s): Add field input_size_hint. * sm/encrypt.c (gpgsm_encrypt): Set the toatl file size. * sm/decrypt.c (gpgsm_decrypt): Ditto. * sm/sign.c (gpgsm_sign): Ditto. * sm/verify.c (gpgsm_verify): Ditto. -- This option allows to set a value for the progress output line. Note that as of now there is no other way to set the file size. GnuPG-bug-id: 6534
This commit is contained in:
parent
ce0d3238f0
commit
bd545346b5
3
NEWS
3
NEWS
@ -19,7 +19,8 @@ Noteworthy changes in version 2.2.42 (unreleased)
|
||||
|
||||
* gpgsm: Support ECC certificates. [T6253]
|
||||
|
||||
* gpg: Make progress work for large files on Windows. [T6534]
|
||||
* gpgsm: Print PROGRESS status lines. Add new --input-size-hint.
|
||||
[T6534]
|
||||
|
||||
* gpgsm: Also announce AES256-CBC in signatures. [rGaa397fdcdb21]
|
||||
|
||||
|
@ -536,6 +536,13 @@ Assume the input data is plain base-64 encoded.
|
||||
@opindex assume-binary
|
||||
Assume the input data is binary encoded.
|
||||
|
||||
@item --input-size-hint @var{n}
|
||||
@opindex input-size-hint
|
||||
This option can be used to tell GPGSM the size of the input data in
|
||||
bytes. @var{n} must be a positive base-10 number. It is used by the
|
||||
@option{--status-fd} line ``PROGRESS'' to provide a value for
|
||||
``total'' if that is not available by other means.
|
||||
|
||||
@anchor{option --p12-charset}
|
||||
@item --p12-charset @var{name}
|
||||
@opindex p12-charset
|
||||
@ -1702,6 +1709,9 @@ If @var{value} is true or @var{value} is not given all network access
|
||||
is disabled for this session. This is the same as the command line
|
||||
option @option{--disable-dirmngr}.
|
||||
|
||||
@item input-size-hint
|
||||
This is the same as the @option{--input-size-hint} command line option.
|
||||
|
||||
@end table
|
||||
|
||||
@mansect see also
|
||||
|
@ -1117,6 +1117,8 @@ gpgsm_decrypt (ctrl_t ctrl, int in_fd, estream_t out_fp)
|
||||
}
|
||||
|
||||
gnupg_ksba_set_progress_cb (b64writer, gpgsm_progress_cb, ctrl);
|
||||
if (ctrl->input_size_hint)
|
||||
gnupg_ksba_set_total (b64writer, ctrl->input_size_hint);
|
||||
|
||||
rc = ksba_cms_new (&cms);
|
||||
if (rc)
|
||||
|
@ -673,6 +673,8 @@ gpgsm_encrypt (ctrl_t ctrl, certlist_t recplist, int data_fd, estream_t out_fp)
|
||||
}
|
||||
|
||||
gnupg_ksba_set_progress_cb (b64writer, gpgsm_progress_cb, ctrl);
|
||||
if (ctrl->input_size_hint)
|
||||
gnupg_ksba_set_total (b64writer, ctrl->input_size_hint);
|
||||
|
||||
err = ksba_cms_new (&cms);
|
||||
if (err)
|
||||
|
@ -134,6 +134,7 @@ enum cmd_and_opt_values {
|
||||
oAssumeArmor,
|
||||
oAssumeBase64,
|
||||
oAssumeBinary,
|
||||
oInputSizeHint,
|
||||
|
||||
oBase64,
|
||||
oNoArmor,
|
||||
@ -310,6 +311,7 @@ static ARGPARSE_OPTS opts[] = {
|
||||
N_("assume input is in base-64 format")),
|
||||
ARGPARSE_s_n (oAssumeBinary, "assume-binary",
|
||||
N_("assume input is in binary format")),
|
||||
ARGPARSE_s_s (oInputSizeHint, "input-size-hint", "@"),
|
||||
|
||||
|
||||
ARGPARSE_header ("Output", N_("Options controlling the output")),
|
||||
@ -1148,6 +1150,10 @@ main ( int argc, char **argv)
|
||||
ctrl.is_base64 = 0;
|
||||
break;
|
||||
|
||||
case oInputSizeHint:
|
||||
ctrl.input_size_hint = string_to_u64 (pargs.r.ret_str);
|
||||
break;
|
||||
|
||||
case oDisableCRLChecks:
|
||||
opt.no_crl_check = 1;
|
||||
break;
|
||||
|
@ -211,6 +211,11 @@ struct server_control_s
|
||||
int is_pem; /* Is in PEM format */
|
||||
int is_base64; /* is in plain base-64 format */
|
||||
|
||||
/* If > 0 a hint with the expected number of input data bytes. This
|
||||
* is not necessary an exact number but intended to be used for
|
||||
* progress info and to decide on how to allocate buffers. */
|
||||
uint64_t input_size_hint;
|
||||
|
||||
int create_base64; /* Create base64 encoded output */
|
||||
int create_pem; /* create PEM output */
|
||||
const char *pem_name; /* PEM name to use */
|
||||
|
@ -301,6 +301,10 @@ option_handler (assuan_context_t ctx, const char *key, const char *value)
|
||||
opt.request_origin = i;
|
||||
}
|
||||
}
|
||||
else if (!strcmp (key, "input-size-hint"))
|
||||
{
|
||||
ctrl->input_size_hint = string_to_u64 (value);
|
||||
}
|
||||
else
|
||||
err = gpg_error (GPG_ERR_UNKNOWN_OPTION);
|
||||
|
||||
|
@ -362,6 +362,8 @@ gpgsm_sign (ctrl_t ctrl, certlist_t signerlist,
|
||||
}
|
||||
|
||||
gnupg_ksba_set_progress_cb (b64writer, gpgsm_progress_cb, ctrl);
|
||||
if (ctrl->input_size_hint)
|
||||
gnupg_ksba_set_total (b64writer, ctrl->input_size_hint);
|
||||
|
||||
err = ksba_cms_new (&cms);
|
||||
if (err)
|
||||
|
@ -154,6 +154,8 @@ gpgsm_verify (ctrl_t ctrl, int in_fd, int data_fd, estream_t out_fp)
|
||||
}
|
||||
|
||||
gnupg_ksba_set_progress_cb (b64writer, gpgsm_progress_cb, ctrl);
|
||||
if (ctrl->input_size_hint)
|
||||
gnupg_ksba_set_total (b64writer, ctrl->input_size_hint);
|
||||
|
||||
rc = ksba_cms_new (&cms);
|
||||
if (rc)
|
||||
|
Loading…
x
Reference in New Issue
Block a user