diff options
Diffstat (limited to 'lib/libcrypto/asn1/a_utctm.c')
-rw-r--r-- | lib/libcrypto/asn1/a_utctm.c | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/lib/libcrypto/asn1/a_utctm.c b/lib/libcrypto/asn1/a_utctm.c index 0e7aca90a71..e75f2ecbb6f 100644 --- a/lib/libcrypto/asn1/a_utctm.c +++ b/lib/libcrypto/asn1/a_utctm.c @@ -64,41 +64,41 @@ #if 0 int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **pp) - { +{ return(i2d_ASN1_bytes((ASN1_STRING *)a,pp, V_ASN1_UTCTIME,V_ASN1_UNIVERSAL)); - } +} ASN1_UTCTIME *d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, unsigned char **pp, long length) - { +{ ASN1_UTCTIME *ret=NULL; ret=(ASN1_UTCTIME *)d2i_ASN1_bytes((ASN1_STRING **)a,pp,length, V_ASN1_UTCTIME,V_ASN1_UNIVERSAL); if (ret == NULL) - { + { ASN1err(ASN1_F_D2I_ASN1_UTCTIME,ERR_R_NESTED_ASN1_ERROR); return(NULL); - } + } if (!ASN1_UTCTIME_check(ret)) - { + { ASN1err(ASN1_F_D2I_ASN1_UTCTIME,ASN1_R_INVALID_TIME_FORMAT); goto err; - } + } return(ret); err: if ((ret != NULL) && ((a == NULL) || (*a != ret))) M_ASN1_UTCTIME_free(ret); return(NULL); - } +} #endif int ASN1_UTCTIME_check(ASN1_UTCTIME *d) - { +{ static const int min[8]={ 0, 1, 1, 0, 0, 0, 0, 0}; static const int max[8]={99,12,31,23,59,59,12,59}; char *a; @@ -111,10 +111,10 @@ int ASN1_UTCTIME_check(ASN1_UTCTIME *d) if (l < 11) goto err; for (i=0; i<6; i++) - { + { if ((i == 5) && ((a[o] == 'Z') || (a[o] == '+') || (a[o] == '-'))) - { i++; break; } + { i++; break; } if ((a[o] < '0') || (a[o] > '9')) goto err; n= a[o]-'0'; if (++o > l) goto err; @@ -124,15 +124,15 @@ int ASN1_UTCTIME_check(ASN1_UTCTIME *d) if (++o > l) goto err; if ((n < min[i]) || (n > max[i])) goto err; - } + } if (a[o] == 'Z') o++; else if ((a[o] == '+') || (a[o] == '-')) - { + { o++; if (o+4 > l) goto err; for (i=6; i<8; i++) - { + { if ((a[o] < '0') || (a[o] > '9')) goto err; n= a[o]-'0'; o++; @@ -140,43 +140,43 @@ int ASN1_UTCTIME_check(ASN1_UTCTIME *d) n=(n*10)+ a[o]-'0'; if ((n < min[i]) || (n > max[i])) goto err; o++; - } } + } return(o == l); err: return(0); - } +} int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str) - { +{ ASN1_UTCTIME t; t.type=V_ASN1_UTCTIME; t.length=strlen(str); t.data=(unsigned char *)str; if (ASN1_UTCTIME_check(&t)) - { + { if (s != NULL) - { + { if (!ASN1_STRING_set((ASN1_STRING *)s, (unsigned char *)str,t.length)) return 0; s->type = V_ASN1_UTCTIME; - } - return(1); } + return(1); + } else return(0); - } +} ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t) - { +{ return ASN1_UTCTIME_adj(s, t, 0, 0); - } +} ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, int offset_day, long offset_sec) - { +{ char *p; struct tm *ts; struct tm data; @@ -192,38 +192,38 @@ ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, return(NULL); if (offset_day || offset_sec) - { + { if (!OPENSSL_gmtime_adj(ts, offset_day, offset_sec)) return NULL; - } + } if((ts->tm_year < 50) || (ts->tm_year >= 150)) return NULL; p=(char *)s->data; if ((p == NULL) || ((size_t)s->length < len)) - { + { p=malloc(len); if (p == NULL) - { + { ASN1err(ASN1_F_ASN1_UTCTIME_ADJ,ERR_R_MALLOC_FAILURE); return(NULL); - } + } if (s->data != NULL) free(s->data); s->data=(unsigned char *)p; - } + } (void) snprintf(p,len,"%02d%02d%02d%02d%02d%02dZ",ts->tm_year%100, ts->tm_mon+1,ts->tm_mday,ts->tm_hour,ts->tm_min,ts->tm_sec); s->length=strlen(p); s->type=V_ASN1_UTCTIME; return(s); - } +} int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t) - { +{ struct tm *tm; struct tm data; int offset; @@ -234,11 +234,11 @@ int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t) if (s->data[12] == 'Z') offset=0; else - { + { offset = g2(s->data+13)*60+g2(s->data+15); if (s->data[12] == '-') offset = -offset; - } + } t -= offset*60; /* FIXME: may overflow in extreme cases */ @@ -258,12 +258,12 @@ int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t) #undef return_cmp return 0; - } +} #if 0 time_t ASN1_UTCTIME_get(const ASN1_UTCTIME *s) - { +{ struct tm tm; int offset; @@ -281,11 +281,11 @@ time_t ASN1_UTCTIME_get(const ASN1_UTCTIME *s) if(s->data[12] == 'Z') offset=0; else - { + { offset=g2(s->data+13)*60+g2(s->data+15); if(s->data[12] == '-') offset= -offset; - } + } #undef g2 return mktime(&tm)-offset*60; /* FIXME: mktime assumes the current timezone @@ -296,5 +296,5 @@ time_t ASN1_UTCTIME_get(const ASN1_UTCTIME *s) * non-standard. * Also time_t is inappropriate for general * UTC times because it may a 32 bit type. */ - } +} #endif |