aboutsummaryrefslogtreecommitdiffstats
path: root/sm
diff options
context:
space:
mode:
Diffstat (limited to 'sm')
-rw-r--r--sm/ChangeLog6
-rw-r--r--sm/certchain.c2
-rw-r--r--sm/certpath.c2
-rw-r--r--sm/gpgsm.c18
-rw-r--r--sm/sign.c2
5 files changed, 24 insertions, 6 deletions
diff --git a/sm/ChangeLog b/sm/ChangeLog
index 7ab2f9a1f..25b88d915 100644
--- a/sm/ChangeLog
+++ b/sm/ChangeLog
@@ -1,3 +1,9 @@
+2002-05-14 Werner Koch <[email protected]>
+
+ * gpgsm.c: New option --faked-system-time
+ * sign.c (gpgsm_sign): And use it here.
+ * certpath.c (gpgsm_validate_path): Ditto.
+
2002-05-03 Werner Koch <[email protected]>
* certpath.c (gpgsm_validate_path): Added EXPTIME arg and changed
diff --git a/sm/certchain.c b/sm/certchain.c
index 1283ce46d..28c0be52f 100644
--- a/sm/certchain.c
+++ b/sm/certchain.c
@@ -315,7 +315,7 @@ gpgsm_validate_path (KsbaCert cert, time_t *r_exptime)
char *subject = NULL;
KEYDB_HANDLE kh = keydb_new (0);
KsbaCert subject_cert = NULL, issuer_cert = NULL;
- time_t current_time = time (NULL);
+ time_t current_time = gnupg_get_time ();
time_t exptime = 0;
if (r_exptime)
diff --git a/sm/certpath.c b/sm/certpath.c
index 1283ce46d..28c0be52f 100644
--- a/sm/certpath.c
+++ b/sm/certpath.c
@@ -315,7 +315,7 @@ gpgsm_validate_path (KsbaCert cert, time_t *r_exptime)
char *subject = NULL;
KEYDB_HANDLE kh = keydb_new (0);
KsbaCert subject_cert = NULL, issuer_cert = NULL;
- time_t current_time = time (NULL);
+ time_t current_time = gnupg_get_time ();
time_t exptime = 0;
if (r_exptime)
diff --git a/sm/gpgsm.c b/sm/gpgsm.c
index cb2c3bdf7..b5b144afe 100644
--- a/sm/gpgsm.c
+++ b/sm/gpgsm.c
@@ -92,8 +92,7 @@ enum cmd_and_opt_values {
oLCmessages,
oDirmngrProgram,
-
-
+ oFakedSystemTime,
oAssumeArmor,
@@ -111,7 +110,7 @@ enum cmd_and_opt_values {
oDisablePolicyChecks,
oEnablePolicyChecks,
-
+
oTextmode,
oFingerprint,
@@ -353,6 +352,8 @@ static ARGPARSE_OPTS opts[] = {
{ oLCctype, "lc-ctype", 2, "@" },
{ oLCmessages, "lc-messages", 2, "@" },
{ oDirmngrProgram, "dirmngr-program", 2 , "@" },
+ { oFakedSystemTime, "faked-system-time", 4, "@" }, /* (epoch time) */
+
{ oNoBatch, "no-batch", 0, "@" },
{ oWithColons, "with-colons", 0, "@"},
@@ -861,6 +862,10 @@ main ( int argc, char **argv)
case oLCmessages: opt.lc_messages = xstrdup (pargs.r.ret_str); break;
case oDirmngrProgram: opt.dirmngr_program = pargs.r.ret_str; break;
+ case oFakedSystemTime:
+ gnupg_set_time ( (time_t)pargs.r.ret_ulong, 0);
+ break;
+
case oNoDefKeyring: default_keyring = 0; break;
case oNoGreeting: nogreeting = 1; break;
@@ -975,6 +980,13 @@ main ( int argc, char **argv)
if (may_coredump && !opt.quiet)
log_info (_("WARNING: program may create a core file!\n"));
+
+ if (gnupg_faked_time_p ())
+ {
+ log_info (_("WARNING: running with faked system time: "));
+ gpgsm_dump_time (gnupg_get_time ());
+ log_printf ("\n");
+ }
/*FIXME if (opt.batch) */
/* tty_batchmode (1); */
diff --git a/sm/sign.c b/sm/sign.c
index 2781baa84..46fa170ba 100644
--- a/sm/sign.c
+++ b/sm/sign.c
@@ -393,7 +393,7 @@ gpgsm_sign (CTRL ctrl, int data_fd, int detached, FILE *out_fp)
}
}
- signed_at = time (NULL);
+ signed_at = gnupg_get_time ();
err = ksba_cms_set_signing_time (cms, signer, signed_at);
if (err)
{