sprintf(p,"%04d%02d%02d%02d%02d%02dZ",ts->tm_year,
sprintf(p,"%04d%02d%02d%02d%02d%02dZ",ts->tm_year + 1900,
ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,	     time_t t)	{	char *p;	struct tm *ts;#if defined(THREADS) && !defined(WIN32)	struct tm data;#endif	if (s == NULL)		s=ASN1_GENERALIZEDTIME_new();	if (s == NULL)		return(NULL);#if defined(THREADS) && !defined(WIN32)	gmtime_r(&t,&data); /* should return &data, but doesn't on some systems, so we don't even look at the return value */	ts=&data;#else	ts=gmtime(&t);#endif	p=(char *)s->data;	if ((p == NULL) || (s->length < 16))		{		p=Malloc(20);		if (p == NULL) return(NULL);		if (s->data != NULL)			Free(s->data);		s->data=(unsigned char *)p;		}	sprintf(p,"%04d%02d%02d%02d%02d%02dZ",ts->tm_year,		ts->tm_mon+1,ts->tm_mday,ts->tm_hour,ts->tm_min,ts->tm_sec);	s->length=strlen(p);	s->type=V_ASN1_GENERALIZEDTIME;	return(s);	}