ASN1_TIME_PARSE(3)

NAME
ASN1_time_parse, ASN1_time_tm_cmp, ASN1_TIME_set_tm - LibreSSL utilities for ASN.1 time types

SYNOPSIS
#include <openssl/asn1.h>
int
ASN1_time_parse(const char *bytes, size_t len, struct tm *tm, int mode);
int
ASN1_time_tm_cmp(struct tm *tm1, struct tm *tm2);
ASN1_TIME *
ASN1_TIME_set_tm(ASN1_TIME *s, struct tm *tm);

DESCRIPTION
The ASN1_time_parse() function parses an ASN.1 time string of len bytes starting at bytes. The resulting time is stored in tm if tm is not NULL.

The mode parameter must be one of

•   0 to parse a time as specified in RFC 5280 for an X509 object, which may be either a UTC time or a Generalized time.

•   V_ASN1_UTCTIME to parse an RFC 5280 format UTC time.

•   V_ASN1_GENERALIZEDTIME to parse an RFC 5280 format Generalized time.

The ASN1_time_tm_cmp() function compares two times in tm1 and tm2.

The function ASN1_TIME_set_tm() sets the ASN1_TIME structure s to the time represented by the struct tm value pointed to by tm. If s is NULL, a new ASN1_TIME structure is allocated and returned.

RETURN VALUES
ASN1_time_parse() returns

•   -1 if the string was invalid for the mode specified.

•   V_ASN1_UTCTIME if the string parsed as a valid UTC time.

•   V_ASN1_GENERALIZEDTIME if the string parsed as a valid Generalized time.

ASN1_time_tm_cmp() returns

•   -1 if tm1 is less than tm2.

•   1 if tm1 is greater than tm2.

•   0 if tm1 is the same as tm2.

ASN1_TIME_set_tm() returns a pointer to an ASN1_TIME structure or NULL if an error occurred.

SEE ALSO
ASN1_TIME_new(3), ASN1_TIME_set(3), X509_cmp_time(3)

HISTORY
ASN1_time_parse() and ASN1_time_tm_cmp() first appeared in OpenBSD 6.1 and ASN1_TIME_set_tm() in OpenBSD 6.2.