ASN1_TIME_SET(3ssl) OpenSSL ASN1_TIME_SET(3ssl) ASN1_TIME_set, ASN1_UTCTIME_set, ASN1_GENERALIZEDTIME_set, ASN1_TIME_adj, ASN1_UTCTIME_adj, ASN1_GENERALIZEDTIME_adj, ASN1_TIME_check, ASN1_UTCTIME_check, ASN1_GENERALIZEDTIME_check, ASN1_TIME_set_string, ASN1_UTCTIME_set_string, ASN1_GENERALIZEDTIME_set_string, ASN1_TIME_set_string_X509, ASN1_TIME_normalize, ASN1_TIME_to_tm, ASN1_TIME_print, ASN1_TIME_print_ex, ASN1_UTCTIME_print, ASN1_GENERALIZEDTIME_print, ASN1_TIME_diff, ASN1_TIME_cmp_time_t, ASN1_UTCTIME_cmp_time_t, ASN1_TIME_compare, ASN1_TIME_to_generalizedtime, ASN1_TIME_dup, ASN1_UTCTIME_dup, ASN1_GENERALIZEDTIME_dup - ASN.1 ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, time_t t); ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, int offset_day, long offset_sec); ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, int offset_day, long offset_sec); ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, time_t t, int offset_day, long offset_sec); int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str); int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); int ASN1_TIME_normalize(ASN1_TIME *s); int ASN1_TIME_check(const ASN1_TIME *t); int ASN1_UTCTIME_check(const ASN1_UTCTIME *t); int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *t); int ASN1_TIME_print(BIO *b, const ASN1_TIME *s); int ASN1_TIME_print_ex(BIO *bp, const ASN1_TIME *tm, unsigned long flags); int ASN1_UTCTIME_print(BIO *b, const ASN1_UTCTIME *s); int ASN1_GENERALIZEDTIME_print(BIO *b, const ASN1_GENERALIZEDTIME *s); int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm); int ASN1_TIME_diff(int *pday, int *psec, const ASN1_TIME *from, const ASN1_TIME *to); int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t); int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b); ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME **out); ASN1_TIME *ASN1_TIME_dup(const ASN1_TIME *t); ASN1_UTCTIME *ASN1_UTCTIME_dup(const ASN1_UTCTIME *t); ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_dup(const ASN1_GENERALIZEDTIME *t); ASN1_TIME_set() ASN1_UTCTIME_set() ASN1_GENERALIZEDTIME_set() s time_t t. s (NULL) . ASN1_TIME_adj() ASN1_UTCTIME_adj() ASN1_GENERALIZEDTIME_adj() s offset_day offset_sec time_t t. offset_day offset_sec t. offset_sec . s (NULL) . ASN1_TIME_set_string() ASN1_UTCTIME_set_string() ASN1_GENERALIZEDTIME_set_string() s str ASN.1 ( YYMMDDHHMMSSZ YYYYMMDDHHMMSSZ). s (NULL) str . str s. ASN1_TIME_set_string_X509() ASN1_TIME s str RFC 5280 YYMMDDHHMMSSZ YYYYMMDDHHMMSSZ ( ) ASN.1 . s (NULL) str . ASN1_TIME_normalize() ASN1_GENERALIZEDTIME ASN1_UTCTIME . ASN1_TIME_set_string() ASN1_TIME_print() ( GMT). ASN1_TIME_check() ASN1_UTCTIME_check() ASN1_GENERALIZEDTIME_check() s. ASN1_TIME_print() ASN1_UTCTIME_print() ASN1_GENERALIZEDTIME_print() s BIO b . MMM DD HH:MM:SS[.s*] YYYY GMT "Feb 3 00:55:52 2015 GMT" . "Bad time value" . . ASN1_TIME_print_ex() flags . ASN1_DTFLGS_RFC822 ASN1_DTFLGS_ISO8601. ASN1_TIME_to_tm() s tm . s (NULL) . GMT. tm_sec tm_min tm_hour tm_mday tm_wday tm_yday tm_mon tm_year tm 0. tm (NULL) s . s Generalized YYYYMMDDHHMMSS.SSSZ s tm. ASN1_TIME_diff() *pday *psec from to. to from ( ) *pday *psec . to from *pday *psec . to from *pday *psec . *pday *psec . *psec . from to (NULL) . ASN1_TIME_cmp_time_t() ASN1_UTCTIME_cmp_time_t() s time_t t. ASN1_TIME_compare() a b. ASN1_TIME_to_generalizedtime() ASN1_TIME ASN1_GENERALIZEDTIME . out *out (NULL) . ASN1_TIME_dup() ASN1_UTCTIME_dup() ASN1_GENERALIZEDTIME_dup() t . ASN1_TIME ASN.1 Time RFC5280 . RFC5280: UTCTime GeneralizedTime. ASN1_TIME ASN1_UTCTIME ASN1_GENERALIZEDTIME ASN1_STRING ASN1_STRING_free(). ASN1_TIME 0000 9999 ( ). ASN1_UTCTIME 1950 2049. time_t ASN1_TIME_set() ( ). time_t . ASN1_TIME_adj() offset_sec offset_day time_t. ASN1_TIME_adj() ASN1_GENERALIZEDTIME ASN1_UTCTIME . ASN1_GENERALIZEDTIME_adj() ASN1_UTCTIME_adj() . ASN1_TIME ASN1_UTCTIME ASN1_GENERALIZEDTIME. ASN1_UTCTIME ASN1_GENERALIZEDTIME . ASN1_TIME . RFC822 ASN1_DTFLGS_RFC822 4 2 RFC822. ASN1_TIME_print() ASN1_UTCTIME_print() ASN1_GENERALIZEDTIME_print() : "GMT" . RFC5280 GMT . ASN1_TIME_print() ASN1_TIME_print_ex() ASN1_UTCTIME_print() ASN1_GENERALIZEDTIME_print() I/O . ASN1_TIME_normalize() GMT. ASN1_TIME_set() ASN1_UTCTIME_set() ASN1_GENERALIZEDTIME_set() ASN1_TIME_adj() ASN1_UTCTIME_adj() ASN1_GENERALIZEDTIME_set() NULL . ASN1_TIME_set_string() ASN1_UTCTIME_set_string() ASN1_GENERALIZEDTIME_set_string() ASN1_TIME_set_string_X509() 1 0 . ASN1_TIME_normalize() 1 0 . ASN1_TIME_check() ASN1_UTCTIME_check ASN1_GENERALIZEDTIME_check() 1 0 . ASN1_TIME_print() ASN1_UTCTIME_print() ASN1_GENERALIZEDTIME_print() 1 0 I/O ( I/O ). ASN1_TIME_to_tm() 1 0 ( ). ASN1_TIME_diff() 1 0 . . ASN1_TIME_cmp_time_t() ASN1_UTCTIME_cmp_time_t() -1 s t 0 s t 1 s t. -2 . ASN1_TIME_compare() -1 a b 0 a b 1 a b. -2 . ASN1_TIME_to_generalizedtime() NULL . ASN1_TIME_dup() ASN1_UTCTIME_dup() ASN1_GENERALIZEDTIME_dup() NULL . : #include #include ASN1_TIME *tm; time_t t; BIO *b; t = time(NULL); tm = ASN1_TIME_adj(NULL, t, 0, 60 * 60); b = BIO_new_fp(stdout, BIO_NOCLOSE); ASN1_TIME_print(b, tm); ASN1_STRING_free(tm); BIO_free(b); : int day, sec; if (!ASN1_TIME_diff(&day, &sec, NULL, to)) /* Invalid time format */ if (day > 0 || sec > 0) printf("Later\n"); else if (day < 0 || sec < 0) printf("Sooner\n"); else printf("Same\n"); ASN1_TIME_to_tm() OpenSSL 1.1.1. ASN1_TIME_set_string_X509() OpenSSL 1.1.1. ASN1_TIME_normalize() OpenSSL 1.1.1. ASN1_TIME_cmp_time_t() OpenSSL 1.1.1. ASN1_TIME_compare() OpenSSL 1.1.1. 2015-2025 OpenSSL. . Apache 2.0 ( ""). . LICENSE . 3 . . : . 3.6.2 7 2026 ASN1_TIME_SET(3ssl)