int 			serialNumber,
unsigned int 		serialNumber,
MakeV1Cert(	CERTCertDBHandle *	handle, 		CERTCertificateRequest *req,	    	char *			issuerNickName, 		PRBool 			selfsign, 		int 			serialNumber,		int 			warpmonths,                int                     validitylength){    CERTCertificate *issuerCert = NULL;    CERTValidity *validity;    CERTCertificate *cert = NULL;#ifndef NSPR20        PRTime printableTime;    int64 now, after;#else    PRExplodedTime printableTime;    PRTime now, after;#endif               if ( !selfsign ) {	issuerCert = CERT_FindCertByNicknameOrEmailAddr(handle, issuerNickName);	if (!issuerCert) {	    SECU_PrintError(progName, "could not find certificate named \"%s\"",			    issuerNickName);	    return NULL;	}    }    now = PR_Now();#ifndef NSPR20    PR_ExplodeGMTTime (&printableTime, now);#else        PR_ExplodeTime (now, PR_GMTParameters, &printableTime);#endif    if ( warpmonths ) {#ifndef	NSPR20    	printableTime.tm_mon += warpmonths;	now = PR_ImplodeTime (&printableTime, 0, 0);	PR_ExplodeGMTTime (&printableTime, now);#else	printableTime.tm_month += warpmonths;	now = PR_ImplodeTime (&printableTime);	PR_ExplodeTime (now, PR_GMTParameters, &printableTime);#endif    }#ifndef	NSPR20      printableTime.tm_mon += validitylength;      printableTime.tm_mon += 3;    after = PR_ImplodeTime (&printableTime, 0, 0);#else    printableTime.tm_month += validitylength;    printableTime.tm_month += 3;    after = PR_ImplodeTime (&printableTime);#endif        /* note that the time is now in micro-second unit */    validity = CERT_CreateValidity (now, after);    if ( selfsign ) {	cert = CERT_CreateCertificate	    (serialNumber,&(req->subject), validity, req);    } else {	cert = CERT_CreateCertificate	    (serialNumber,&(issuerCert->subject), validity, req);    }        CERT_DestroyValidity(validity);    if ( issuerCert ) {	CERT_DestroyCertificate (issuerCert);    }        return(cert);}