Fix wolfSSL_ASN1_TIME_to_generalizedtime with UTC time

This commit is contained in:
Eric Blankenhorn
2024-06-18 15:08:01 -05:00
parent 5efa82a239
commit d4a90e8a71

View File

@ -3510,14 +3510,17 @@ WOLFSSL_ASN1_TIME* wolfSSL_ASN1_TIME_to_generalizedtime(WOLFSSL_ASN1_TIME *t,
if (ret != NULL) { if (ret != NULL) {
/* Set the ASN.1 type and length of string. */ /* Set the ASN.1 type and length of string. */
ret->type = V_ASN1_GENERALIZEDTIME; ret->type = V_ASN1_GENERALIZEDTIME;
ret->length = ASN_GENERALIZED_TIME_SIZE;
if (t->type == V_ASN1_GENERALIZEDTIME) { if (t->type == V_ASN1_GENERALIZEDTIME) {
ret->length = ASN_GENERALIZED_TIME_SIZE;
/* Just copy as data already appropriately formatted. */ /* Just copy as data already appropriately formatted. */
XMEMCPY(ret->data, t->data, ASN_GENERALIZED_TIME_SIZE); XMEMCPY(ret->data, t->data, ASN_GENERALIZED_TIME_SIZE);
} }
else { else {
/* Convert UTC TIME to GENERALIZED TIME. */ /* Convert UTC TIME to GENERALIZED TIME. */
ret->length = t->length + 2; /* Add two extra year digits */
if (t->data[0] >= '5') { if (t->data[0] >= '5') {
/* >= 50 is 1900s. */ /* >= 50 is 1900s. */
ret->data[0] = '1'; ret->data[1] = '9'; ret->data[0] = '1'; ret->data[1] = '9';
@ -3527,7 +3530,7 @@ WOLFSSL_ASN1_TIME* wolfSSL_ASN1_TIME_to_generalizedtime(WOLFSSL_ASN1_TIME *t,
ret->data[0] = '2'; ret->data[1] = '0'; ret->data[0] = '2'; ret->data[1] = '0';
} }
/* Append rest of the data as it is the same. */ /* Append rest of the data as it is the same. */
XMEMCPY(&ret->data[2], t->data, ASN_UTC_TIME_SIZE); XMEMCPY(&ret->data[2], t->data, t->length);
} }
/* Check for pointer to return result through. */ /* Check for pointer to return result through. */