diff options
Diffstat (limited to 'sm')
-rw-r--r-- | sm/ChangeLog | 6 | ||||
-rw-r--r-- | sm/export.c | 11 | ||||
-rw-r--r-- | sm/gpgsm.c | 11 | ||||
-rw-r--r-- | sm/gpgsm.h | 4 |
4 files changed, 30 insertions, 2 deletions
diff --git a/sm/ChangeLog b/sm/ChangeLog index f666af5c3..32663041a 100644 --- a/sm/ChangeLog +++ b/sm/ChangeLog @@ -1,3 +1,9 @@ +2007-03-20 Werner Koch <[email protected]> + + * gpgsm.c: Add option --p12-charset. + * gpgsm.h (struct opt): Add p12_charset. + * export.c (popen_protect_tool): Use new option. + 2007-03-19 Werner Koch <[email protected]> Changes to let export and key listing use estream to help systems diff --git a/sm/export.c b/sm/export.c index a87499f94..ec8a764c3 100644 --- a/sm/export.c +++ b/sm/export.c @@ -416,6 +416,12 @@ gpgsm_p12_export (ctrl_t ctrl, const char *name, FILE *fp) putc ('\n', fp); } + if (opt.p12_charset) + { + fprintf (fp, "The passphrase is %s encoded.\n\n", + opt.p12_charset); + } + ctrl->pem_name = "PKCS12"; rc = gpgsm_create_writer (&b64writer, ctrl, fp, NULL, &writer); if (rc) @@ -567,6 +573,11 @@ popen_protect_tool (const char *pgmname, argv[i++] = "--prompt"; argv[i++] = prompt?prompt:""; argv[i++] = "--enable-status-msg"; + if (opt.p12_charset) + { + argv[i++] = "--p12-charset"; + argv[i++] = opt.p12_charset; + } argv[i++] = "--", argv[i++] = keygrip, argv[i] = NULL; diff --git a/sm/gpgsm.c b/sm/gpgsm.c index 415a7cafa..9abd0636e 100644 --- a/sm/gpgsm.c +++ b/sm/gpgsm.c @@ -131,6 +131,7 @@ enum cmd_and_opt_values { oBase64, oNoArmor, + oP12Charset, oDisableCRLChecks, oEnableCRLChecks, @@ -280,6 +281,8 @@ static ARGPARSE_OPTS opts[] = { { oArmor, "armor", 0, N_("create ascii armored output")}, { oArmor, "armour", 0, "@" }, { oBase64, "base64", 0, N_("create base-64 encoded output")}, + + { oP12Charset, "p12-charset", 2, "@" }, { oAssumeArmor, "assume-armor", 0, N_("assume input is in PEM format")}, { oAssumeBase64, "assume-base64", 0, @@ -955,7 +958,7 @@ main ( int argc, char **argv) set_cmd (&cmd, pargs.r_opt); break; - /* output encoding selection */ + /* Output encoding selection. */ case oArmor: ctrl.create_pem = 1; break; @@ -968,7 +971,11 @@ main ( int argc, char **argv) ctrl.create_base64 = 0; break; - /* Input encoding selection */ + case oP12Charset: + opt.p12_charset = pargs.r.ret_str; + break; + + /* Input encoding selection. */ case oAssumeArmor: ctrl.autodetect_encoding = 0; ctrl.is_pem = 1; diff --git a/sm/gpgsm.h b/sm/gpgsm.h index a52e9e653..727b1cf98 100644 --- a/sm/gpgsm.h +++ b/sm/gpgsm.h @@ -74,6 +74,10 @@ struct int armor; /* force base64 armoring (see also ctrl.with_base64) */ int no_armor; /* don't try to figure out whether data is base64 armored*/ + const char *p12_charset; /* Use this charset for encoding the + pkcs#12 passphrase. */ + + const char *def_cipher_algoid; /* cipher algorithm to use if nothing else is specified */ |