forked from wolfSSL/wolfssl
Set proper WOLFSSL_ASN1_TIME in thisupd and nextupd in wolfSSL_OCSP_resp_find_status
This commit is contained in:
@@ -509,9 +509,9 @@ int wolfSSL_OCSP_resp_find_status(WOLFSSL_OCSP_BASICRESP *bs,
|
|||||||
if (status != NULL)
|
if (status != NULL)
|
||||||
*status = bs->status->status;
|
*status = bs->status->status;
|
||||||
if (thisupd != NULL)
|
if (thisupd != NULL)
|
||||||
*thisupd = (WOLFSSL_ASN1_TIME*)bs->status->thisDateAsn;
|
*thisupd = &bs->status->thisDateParsed;
|
||||||
if (nextupd != NULL)
|
if (nextupd != NULL)
|
||||||
*nextupd = (WOLFSSL_ASN1_TIME*)bs->status->nextDateAsn;
|
*nextupd = &bs->status->nextDateParsed;
|
||||||
|
|
||||||
/* TODO: Not needed for Nginx. */
|
/* TODO: Not needed for Nginx. */
|
||||||
if (reason != NULL)
|
if (reason != NULL)
|
||||||
|
12
src/ssl.c
12
src/ssl.c
@@ -26510,19 +26510,19 @@ int wolfSSL_ASN1_GENERALIZEDTIME_print(WOLFSSL_BIO* bio,
|
|||||||
}
|
}
|
||||||
p = (const char *)(asnTime->data);
|
p = (const char *)(asnTime->data);
|
||||||
/* GetTimeString not always available. */
|
/* GetTimeString not always available. */
|
||||||
wolfSSL_BIO_write(bio, MonthStr(p + 2), 3);
|
wolfSSL_BIO_write(bio, MonthStr(p + 4), 3);
|
||||||
wolfSSL_BIO_write(bio, " ", 1);
|
wolfSSL_BIO_write(bio, " ", 1);
|
||||||
/* Day */
|
/* Day */
|
||||||
wolfSSL_BIO_write(bio, p + 4, 2);
|
wolfSSL_BIO_write(bio, p + 6, 2);
|
||||||
wolfSSL_BIO_write(bio, " ", 1);
|
wolfSSL_BIO_write(bio, " ", 1);
|
||||||
/* Hour */
|
/* Hour */
|
||||||
wolfSSL_BIO_write(bio, p + 6, 2);
|
|
||||||
wolfSSL_BIO_write(bio, ":", 1);
|
|
||||||
/* Min */
|
|
||||||
wolfSSL_BIO_write(bio, p + 8, 2);
|
wolfSSL_BIO_write(bio, p + 8, 2);
|
||||||
wolfSSL_BIO_write(bio, ":", 1);
|
wolfSSL_BIO_write(bio, ":", 1);
|
||||||
/* Secs */
|
/* Min */
|
||||||
wolfSSL_BIO_write(bio, p + 10, 2);
|
wolfSSL_BIO_write(bio, p + 10, 2);
|
||||||
|
wolfSSL_BIO_write(bio, ":", 1);
|
||||||
|
/* Secs */
|
||||||
|
wolfSSL_BIO_write(bio, p + 12, 2);
|
||||||
wolfSSL_BIO_write(bio, " ", 1);
|
wolfSSL_BIO_write(bio, " ", 1);
|
||||||
wolfSSL_BIO_write(bio, p, 4);
|
wolfSSL_BIO_write(bio, p, 4);
|
||||||
|
|
||||||
|
@@ -14878,6 +14878,14 @@ static int DecodeSingleResponse(byte* source,
|
|||||||
|
|
||||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||||
cs->thisDateAsn = source + idx;
|
cs->thisDateAsn = source + idx;
|
||||||
|
localIdx = 0;
|
||||||
|
if (GetDateInfo(cs->thisDateAsn, &localIdx, NULL,
|
||||||
|
(byte*)&cs->thisDateParsed.type,
|
||||||
|
&cs->thisDateParsed.length, size) < 0)
|
||||||
|
return ASN_PARSE_E;
|
||||||
|
XMEMCPY(cs->thisDateParsed.data,
|
||||||
|
cs->thisDateAsn + localIdx - cs->thisDateParsed.length,
|
||||||
|
cs->thisDateParsed.length);
|
||||||
#endif
|
#endif
|
||||||
if (GetBasicDate(source, &idx, cs->thisDate,
|
if (GetBasicDate(source, &idx, cs->thisDate,
|
||||||
&cs->thisDateFormat, size) < 0)
|
&cs->thisDateFormat, size) < 0)
|
||||||
@@ -14903,6 +14911,14 @@ static int DecodeSingleResponse(byte* source,
|
|||||||
return ASN_PARSE_E;
|
return ASN_PARSE_E;
|
||||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||||
cs->nextDateAsn = source + idx;
|
cs->nextDateAsn = source + idx;
|
||||||
|
localIdx = 0;
|
||||||
|
if (GetDateInfo(cs->nextDateAsn, &localIdx, NULL,
|
||||||
|
(byte*)&cs->nextDateParsed.type,
|
||||||
|
&cs->nextDateParsed.length, size) < 0)
|
||||||
|
return ASN_PARSE_E;
|
||||||
|
XMEMCPY(cs->nextDateParsed.data,
|
||||||
|
cs->nextDateAsn + localIdx - cs->nextDateParsed.length,
|
||||||
|
cs->nextDateParsed.length);
|
||||||
#endif
|
#endif
|
||||||
if (GetBasicDate(source, &idx, cs->nextDate,
|
if (GetBasicDate(source, &idx, cs->nextDate,
|
||||||
&cs->nextDateFormat, size) < 0)
|
&cs->nextDateFormat, size) < 0)
|
||||||
|
@@ -202,13 +202,6 @@ struct WOLFSSL_BASIC_CONSTRAINTS {
|
|||||||
#define WOLFSSL_ASN1_UTCTIME WOLFSSL_ASN1_TIME
|
#define WOLFSSL_ASN1_UTCTIME WOLFSSL_ASN1_TIME
|
||||||
#define WOLFSSL_ASN1_GENERALIZEDTIME WOLFSSL_ASN1_TIME
|
#define WOLFSSL_ASN1_GENERALIZEDTIME WOLFSSL_ASN1_TIME
|
||||||
|
|
||||||
|
|
||||||
struct WOLFSSL_ASN1_TIME {
|
|
||||||
unsigned char data[CTC_DATE_SIZE]; /* date bytes */
|
|
||||||
int length;
|
|
||||||
int type;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct WOLFSSL_ASN1_STRING {
|
struct WOLFSSL_ASN1_STRING {
|
||||||
char strData[CTC_NAME_SIZE];
|
char strData[CTC_NAME_SIZE];
|
||||||
int length;
|
int length;
|
||||||
|
@@ -1226,6 +1226,8 @@ struct CertStatus {
|
|||||||
byte thisDateFormat;
|
byte thisDateFormat;
|
||||||
byte nextDateFormat;
|
byte nextDateFormat;
|
||||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||||
|
WOLFSSL_ASN1_TIME thisDateParsed;
|
||||||
|
WOLFSSL_ASN1_TIME nextDateParsed;
|
||||||
byte* thisDateAsn;
|
byte* thisDateAsn;
|
||||||
byte* nextDateAsn;
|
byte* nextDateAsn;
|
||||||
#endif
|
#endif
|
||||||
|
@@ -166,6 +166,12 @@ typedef struct DerBuffer {
|
|||||||
int dynType; /* DYNAMIC_TYPE_* */
|
int dynType; /* DYNAMIC_TYPE_* */
|
||||||
} DerBuffer;
|
} DerBuffer;
|
||||||
|
|
||||||
|
typedef struct WOLFSSL_ASN1_TIME {
|
||||||
|
unsigned char data[CTC_DATE_SIZE]; /* date bytes */
|
||||||
|
int length;
|
||||||
|
int type;
|
||||||
|
} WOLFSSL_ASN1_TIME;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
IV_SZ = 32, /* max iv sz */
|
IV_SZ = 32, /* max iv sz */
|
||||||
NAME_SZ = 80, /* max one line */
|
NAME_SZ = 80, /* max one line */
|
||||||
|
Reference in New Issue
Block a user