summaryrefslogtreecommitdiff
path: root/lib/x509/common.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2015-06-02 11:00:26 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2015-06-02 11:00:26 +0200
commit5d0e6706358132e7cd7c8c9904c7399a2f5b5044 (patch)
treedc6a7a8f179654f7569985870e52ed4ed1138fb7 /lib/x509/common.c
parentb09a79fa336eac47c95788d7fd1d6c2ee0eee2f5 (diff)
downloadgnutls-5d0e6706358132e7cd7c8c9904c7399a2f5b5044.tar.gz
pkcs7 verification: parse the signing time
Diffstat (limited to 'lib/x509/common.c')
-rw-r--r--lib/x509/common.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/lib/x509/common.c b/lib/x509/common.c
index 321fa7d7f4..1a368ea73b 100644
--- a/lib/x509/common.c
+++ b/lib/x509/common.c
@@ -767,7 +767,7 @@ gtime2generalTime(time_t gtime, char *str_time, size_t str_time_size)
* be something like "tbsCertList.thisUpdate".
*/
#define MAX_TIME 64
-time_t _gnutls_x509_get_time(ASN1_TYPE c2, const char *when, int nochoice)
+time_t _gnutls_x509_get_time(ASN1_TYPE c2, const char *where, int nochoice)
{
char ttime[MAX_TIME];
char name[128];
@@ -775,7 +775,7 @@ time_t _gnutls_x509_get_time(ASN1_TYPE c2, const char *when, int nochoice)
int len, result;
len = sizeof(ttime) - 1;
- result = asn1_read_value(c2, when, ttime, &len);
+ result = asn1_read_value(c2, where, ttime, &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return (time_t) (-1);
@@ -784,19 +784,26 @@ time_t _gnutls_x509_get_time(ASN1_TYPE c2, const char *when, int nochoice)
if (nochoice != 0) {
c_time = _gnutls_x509_generalTime2gtime(ttime);
} else {
- _gnutls_str_cpy(name, sizeof(name), when);
+ _gnutls_str_cpy(name, sizeof(name), where);
/* choice */
if (strcmp(ttime, "generalTime") == 0) {
- _gnutls_str_cat(name, sizeof(name),
- ".generalTime");
+ if (name[0] == 0)
+ _gnutls_str_cpy(name, sizeof(name),
+ "generalTime");
+ else
+ _gnutls_str_cat(name, sizeof(name),
+ ".generalTime");
len = sizeof(ttime) - 1;
result = asn1_read_value(c2, name, ttime, &len);
if (result == ASN1_SUCCESS)
c_time =
_gnutls_x509_generalTime2gtime(ttime);
} else { /* UTCTIME */
- _gnutls_str_cat(name, sizeof(name), ".utcTime");
+ if (name[0] == 0)
+ _gnutls_str_cpy(name, sizeof(name), "utcTime");
+ else
+ _gnutls_str_cat(name, sizeof(name), ".utcTime");
len = sizeof(ttime) - 1;
result = asn1_read_value(c2, name, ttime, &len);
if (result == ASN1_SUCCESS)