1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

* call-agent.c (gpgsm_agent_pksign, gpgsm_agent_pkdecrypt)

(gpgsm_agent_genkey, gpgsm_agent_istrusted)
(gpgsm_agent_marktrusted, gpgsm_agent_havekey)
(gpgsm_agent_passwd): Add new arg CTRL and changed all callers.
(start_agent): New arg CTRL.  Send progress item when starting a
new agent.
* sign.c (gpgsm_get_default_cert, get_default_signer): New arg
CTRL to be passed down to the agent function.
* decrypt.c (prepare_decryption): Ditto.
* certreqgen.c (proc_parameters, read_parameters): Ditto.
* certcheck.c (gpgsm_create_cms_signature): Ditto.
This commit is contained in:
Werner Koch 2004-04-26 13:29:09 +00:00
parent 1101deced5
commit 388218891b
13 changed files with 90 additions and 66 deletions

View file

@ -129,9 +129,11 @@ struct reqgen_ctrl_s {
};
static int proc_parameters (struct para_data_s *para,
static int proc_parameters (ctrl_t ctrl,
struct para_data_s *para,
struct reqgen_ctrl_s *outctrl);
static int create_request (struct para_data_s *para,
static int create_request (ctrl_t ctrl,
struct para_data_s *para,
ksba_const_sexp_t public,
struct reqgen_ctrl_s *outctrl);
@ -228,7 +230,7 @@ get_parameter_uint (struct para_data_s *para, enum para_name key)
/* Read the certificate generation parameters from FP and generate
(all) certificate requests. */
static int
read_parameters (FILE *fp, ksba_writer_t writer)
read_parameters (ctrl_t ctrl, FILE *fp, ksba_writer_t writer)
{
static struct {
const char *name;
@ -285,7 +287,7 @@ read_parameters (FILE *fp, ksba_writer_t writer)
outctrl.dryrun = 1;
else if (!ascii_strcasecmp( keyword, "%commit"))
{
rc = proc_parameters (para, &outctrl);
rc = proc_parameters (ctrl, para, &outctrl);
if (rc)
goto leave;
any = 1;
@ -332,7 +334,7 @@ read_parameters (FILE *fp, ksba_writer_t writer)
if (keywords[i].key == pKEYTYPE && para)
{
rc = proc_parameters (para, &outctrl);
rc = proc_parameters (ctrl, para, &outctrl);
if (rc)
goto leave;
any = 1;
@ -375,7 +377,7 @@ read_parameters (FILE *fp, ksba_writer_t writer)
}
else if (para)
{
rc = proc_parameters (para, &outctrl);
rc = proc_parameters (ctrl, para, &outctrl);
if (rc)
goto leave;
any = 1;
@ -414,7 +416,8 @@ has_invalid_email_chars (const char *s)
/* Check that all required parameters are given and perform the action */
static int
proc_parameters (struct para_data_s *para, struct reqgen_ctrl_s *outctrl)
proc_parameters (ctrl_t ctrl,
struct para_data_s *para, struct reqgen_ctrl_s *outctrl)
{
struct para_data_s *r;
const char *s;
@ -484,7 +487,7 @@ proc_parameters (struct para_data_s *para, struct reqgen_ctrl_s *outctrl)
sprintf (numbuf, "%u", nbits);
snprintf (keyparms, DIM (keyparms)-1,
"(6:genkey(3:rsa(5:nbits%d:%s)))", strlen (numbuf), numbuf);
rc = gpgsm_agent_genkey (keyparms, &public);
rc = gpgsm_agent_genkey (ctrl, keyparms, &public);
if (rc)
{
r = get_parameter (para, pKEYTYPE);
@ -493,7 +496,7 @@ proc_parameters (struct para_data_s *para, struct reqgen_ctrl_s *outctrl)
return rc;
}
rc = create_request (para, public, outctrl);
rc = create_request (ctrl, para, public, outctrl);
xfree (public);
return rc;
@ -503,7 +506,8 @@ proc_parameters (struct para_data_s *para, struct reqgen_ctrl_s *outctrl)
/* Parameters are checked, the key pair has been created. Now
generate the request and write it out */
static int
create_request (struct para_data_s *para, ksba_const_sexp_t public,
create_request (ctrl_t ctrl,
struct para_data_s *para, ksba_const_sexp_t public,
struct reqgen_ctrl_s *outctrl)
{
ksba_certreq_t cr;
@ -614,7 +618,7 @@ create_request (struct para_data_s *para, ksba_const_sexp_t public,
for (n=0; n < 20; n++)
sprintf (hexgrip+n*2, "%02X", grip[n]);
rc = gpgsm_agent_pksign (hexgrip, NULL,
rc = gpgsm_agent_pksign (ctrl, hexgrip, NULL,
gcry_md_read(md, GCRY_MD_SHA1),
gcry_md_get_algo_dlen (GCRY_MD_SHA1),
GCRY_MD_SHA1,
@ -650,7 +654,7 @@ create_request (struct para_data_s *para, ksba_const_sexp_t public,
/* Create a new key by reading the parameters from in_fd. Multiple
keys may be created */
int
gpgsm_genkey (CTRL ctrl, int in_fd, FILE *out_fp)
gpgsm_genkey (ctrl_t ctrl, int in_fd, FILE *out_fp)
{
int rc;
FILE *in_fp;
@ -673,7 +677,7 @@ gpgsm_genkey (CTRL ctrl, int in_fd, FILE *out_fp)
goto leave;
}
rc = read_parameters (in_fp, writer);
rc = read_parameters (ctrl, in_fp, writer);
if (rc)
{
log_error ("error creating certificate request: %s\n",