diff options
Diffstat (limited to 'src/lib/krb5/asn.1/asn1_encode.c')
-rw-r--r-- | src/lib/krb5/asn.1/asn1_encode.c | 11 |
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, |