Loading crypto/asn1/a_time.c +1 −1 Original line number Diff line number Diff line Loading @@ -225,5 +225,5 @@ int ASN1_TIME_diff(int *pday, int *psec, return 0; if (!asn1_time_to_tm(&tm_to, to)) return 0; return OPENSSL_gmtime_diff(&tm_from, &tm_to, pday, psec); return OPENSSL_gmtime_diff(pday, psec, &tm_from, &tm_to); } crypto/asn1/a_utctm.c +20 −33 Original line number Diff line number Diff line Loading @@ -287,39 +287,26 @@ ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t) { struct tm *tm; struct tm data; int offset; int year; #define g2(p) (((p)[0]-'0')*10+(p)[1]-'0') if (s->data[12] == 'Z') offset=0; else { offset = g2(s->data+13)*60+g2(s->data+15); if (s->data[12] == '-') offset = -offset; } t -= offset*60; /* FIXME: may overflow in extreme cases */ tm = OPENSSL_gmtime(&t, &data); #define return_cmp(a,b) if ((a)<(b)) return -1; else if ((a)>(b)) return 1 year = g2(s->data); if (year < 50) year += 100; return_cmp(year, tm->tm_year); return_cmp(g2(s->data+2) - 1, tm->tm_mon); return_cmp(g2(s->data+4), tm->tm_mday); return_cmp(g2(s->data+6), tm->tm_hour); return_cmp(g2(s->data+8), tm->tm_min); return_cmp(g2(s->data+10), tm->tm_sec); #undef g2 #undef return_cmp struct tm stm, ttm; int day, sec; if (!asn1_utctime_to_tm(&stm, s)) return -2; if (!OPENSSL_gmtime(&t, &ttm)) return -2; if (!OPENSSL_gmtime_diff(&day, &sec, &stm, &ttm)) return -2; if (day > 0) return 1; if (day < 0) return -1; if (sec > 0) return 1; if (sec < 0) return -1; return 0; } Loading crypto/o_time.c +4 −3 Original line number Diff line number Diff line Loading @@ -234,7 +234,7 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result) static long date_to_julian(int y, int m, int d); static void julian_to_date(long jd, int *y, int *m, int *d); static int julian_adj(struct tm *tm, int off_day, long offset_sec, static int julian_adj(const struct tm *tm, int off_day, long offset_sec, long *pday, int *psec); int OPENSSL_gmtime_adj(struct tm *tm, int off_day, long offset_sec) Loading Loading @@ -267,7 +267,8 @@ int OPENSSL_gmtime_adj(struct tm *tm, int off_day, long offset_sec) } int OPENSSL_gmtime_diff(struct tm *from, struct tm *to, int *pday, int *psec) int OPENSSL_gmtime_diff(int *pday, int *psec, const struct tm *from, const struct tm *to) { int from_sec, to_sec, diff_sec; long from_jd, to_jd, diff_day; Loading Loading @@ -300,7 +301,7 @@ int OPENSSL_gmtime_diff(struct tm *from, struct tm *to, int *pday, int *psec) /* Convert tm structure and offset into julian day and seconds */ static int julian_adj(struct tm *tm, int off_day, long offset_sec, static int julian_adj(const struct tm *tm, int off_day, long offset_sec, long *pday, int *psec) { int offset_hms, offset_day; Loading crypto/o_time.h +2 −1 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); int OPENSSL_gmtime_diff(struct tm *from, struct tm *to, int *pday, int *psec); int OPENSSL_gmtime_diff(int *pday, int *psec, const struct tm *from, const struct tm *to); #endif Loading
crypto/asn1/a_time.c +1 −1 Original line number Diff line number Diff line Loading @@ -225,5 +225,5 @@ int ASN1_TIME_diff(int *pday, int *psec, return 0; if (!asn1_time_to_tm(&tm_to, to)) return 0; return OPENSSL_gmtime_diff(&tm_from, &tm_to, pday, psec); return OPENSSL_gmtime_diff(pday, psec, &tm_from, &tm_to); }
crypto/asn1/a_utctm.c +20 −33 Original line number Diff line number Diff line Loading @@ -287,39 +287,26 @@ ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t) { struct tm *tm; struct tm data; int offset; int year; #define g2(p) (((p)[0]-'0')*10+(p)[1]-'0') if (s->data[12] == 'Z') offset=0; else { offset = g2(s->data+13)*60+g2(s->data+15); if (s->data[12] == '-') offset = -offset; } t -= offset*60; /* FIXME: may overflow in extreme cases */ tm = OPENSSL_gmtime(&t, &data); #define return_cmp(a,b) if ((a)<(b)) return -1; else if ((a)>(b)) return 1 year = g2(s->data); if (year < 50) year += 100; return_cmp(year, tm->tm_year); return_cmp(g2(s->data+2) - 1, tm->tm_mon); return_cmp(g2(s->data+4), tm->tm_mday); return_cmp(g2(s->data+6), tm->tm_hour); return_cmp(g2(s->data+8), tm->tm_min); return_cmp(g2(s->data+10), tm->tm_sec); #undef g2 #undef return_cmp struct tm stm, ttm; int day, sec; if (!asn1_utctime_to_tm(&stm, s)) return -2; if (!OPENSSL_gmtime(&t, &ttm)) return -2; if (!OPENSSL_gmtime_diff(&day, &sec, &stm, &ttm)) return -2; if (day > 0) return 1; if (day < 0) return -1; if (sec > 0) return 1; if (sec < 0) return -1; return 0; } Loading
crypto/o_time.c +4 −3 Original line number Diff line number Diff line Loading @@ -234,7 +234,7 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result) static long date_to_julian(int y, int m, int d); static void julian_to_date(long jd, int *y, int *m, int *d); static int julian_adj(struct tm *tm, int off_day, long offset_sec, static int julian_adj(const struct tm *tm, int off_day, long offset_sec, long *pday, int *psec); int OPENSSL_gmtime_adj(struct tm *tm, int off_day, long offset_sec) Loading Loading @@ -267,7 +267,8 @@ int OPENSSL_gmtime_adj(struct tm *tm, int off_day, long offset_sec) } int OPENSSL_gmtime_diff(struct tm *from, struct tm *to, int *pday, int *psec) int OPENSSL_gmtime_diff(int *pday, int *psec, const struct tm *from, const struct tm *to) { int from_sec, to_sec, diff_sec; long from_jd, to_jd, diff_day; Loading Loading @@ -300,7 +301,7 @@ int OPENSSL_gmtime_diff(struct tm *from, struct tm *to, int *pday, int *psec) /* Convert tm structure and offset into julian day and seconds */ static int julian_adj(struct tm *tm, int off_day, long offset_sec, static int julian_adj(const struct tm *tm, int off_day, long offset_sec, long *pday, int *psec) { int offset_hms, offset_day; Loading
crypto/o_time.h +2 −1 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); int OPENSSL_gmtime_diff(struct tm *from, struct tm *to, int *pday, int *psec); int OPENSSL_gmtime_diff(int *pday, int *psec, const struct tm *from, const struct tm *to); #endif