summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/asn.1/asn1_encode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/krb5/asn.1/asn1_encode.c')
-rw-r--r--src/lib/krb5/asn.1/asn1_encode.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/krb5/asn.1/asn1_encode.c b/src/lib/krb5/asn.1/asn1_encode.c
index d26d95de88..cbf290b861 100644
--- a/src/lib/krb5/asn.1/asn1_encode.c
+++ b/src/lib/krb5/asn.1/asn1_encode.c
@@ -183,16 +183,25 @@ asn1_error_code asn1_encode_ia5string(buf, len, val, retlen)
return 0;
}
+#ifdef _MACINTOSH
+#define EPOCH ((66 * 365 * 24 * 60 * 60) + (17 * 24 * 60 * 60) + (getTimeZoneOffset() * 60 * 60))
+#else
+#define EPOCH (0)
+#endif
+
asn1_error_code asn1_encode_generaltime(buf, val, retlen)
asn1buf * buf;
const time_t val;
int * retlen;
{
asn1_error_code retval;
- struct tm *gtime = gmtime(&val);
+ struct tm *gtime;
char s[16];
int length, sum=0;
+ val += EPOCH;
+ gtime = gmtime(&val);
+
/* Time encoding: YYYYMMDDhhmmssZ */
sprintf(s, "%04d%02d%02d%02d%02d%02dZ",
1900+gtime->tm_year, gtime->tm_mon+1, gtime->tm_mday,