mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-31 11:17:29 +02:00
Fix wolfSSL_ASN1_TIME_to_generalizedtime with UTC time
This commit is contained in:
@ -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. */
|
||||||
|
Reference in New Issue
Block a user