Initial support for Certificate Policies extension: print out works but setting
[oweals/openssl.git] / crypto / asn1 / a_utctm.c
index cc3c692fc9af614d4e10906354972af3138b669b..ddd1a4016b9cf0e340ea05f4db627b96e183e897 100644 (file)
@@ -1,5 +1,5 @@
 /* crypto/asn1/a_utctm.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -85,7 +85,7 @@ long length;
                V_ASN1_UTCTIME,V_ASN1_UNIVERSAL);
        if (ret == NULL)
                {
-               ASN1err(ASN1_F_D2I_ASN1_UTCTIME,ASN1_R_ERROR_STACK);
+               ASN1err(ASN1_F_D2I_ASN1_UTCTIME,ERR_R_NESTED_ASN1_ERROR);
                return(NULL);
                }
        if (!ASN1_UTCTIME_check(ret))
@@ -152,13 +152,35 @@ err:
        return(0);
        }
 
+int ASN1_UTCTIME_set_string(s,str)
+ASN1_UTCTIME *s;
+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)
+                       {
+                       ASN1_STRING_set((ASN1_STRING *)s,
+                               (unsigned char *)str,t.length);
+                       }
+               return(1);
+               }
+       else
+               return(0);
+       }
+
 ASN1_UTCTIME *ASN1_UTCTIME_set(s, t)
 ASN1_UTCTIME *s;
 time_t t;
        {
        char *p;
        struct tm *ts;
-#if defined(THREADS)
+#if defined(THREADS) && !defined(WIN32)
        struct tm data;
 #endif
 
@@ -167,7 +189,7 @@ time_t t;
        if (s == NULL)
                return(NULL);
 
-#if defined(THREADS)
+#if defined(THREADS) && !defined(WIN32)
        ts=(struct tm *)gmtime_r(&t,&data);
 #else
        ts=(struct tm *)gmtime(&t);