зеркало из https://github.com/mozilla/gecko-dev.git
Fix for bug 219539 - support GeneralizedTime in NSS tools
This commit is contained in:
Родитель
4f735ced19
Коммит
e608b7e0f4
|
@ -265,6 +265,7 @@ dumpCertificate(CERTCertificate *cert, int num, PRFileDesc *outfile)
|
|||
int64 timeBefore, timeAfter;
|
||||
PRExplodedTime beforePrintable, afterPrintable;
|
||||
char *beforestr, *afterstr;
|
||||
/* needs to be able to handle GeneralizedTime too */
|
||||
DER_UTCTimeToTime(&timeBefore, &cert->validity.notBefore);
|
||||
DER_UTCTimeToTime(&timeAfter, &cert->validity.notAfter);
|
||||
PR_ExplodeTime(timeBefore, PR_GMTParameters, &beforePrintable);
|
||||
|
|
|
@ -935,6 +935,29 @@ SECU_PrintGeneralizedTime(FILE *out, SECItem *t, char *m, int level)
|
|||
secu_PrintTime(out, time, m, level);
|
||||
}
|
||||
|
||||
/*
|
||||
* Format and print the UTC or Generalized Time "t". If the tag message
|
||||
* "m" is not NULL, do indent formatting based on "level" and add a newline
|
||||
* afterward; otherwise just print the formatted time string only.
|
||||
*/
|
||||
void
|
||||
SECU_PrintTimeChoice(FILE *out, SECItem *t, char *m, int level)
|
||||
{
|
||||
switch (t->type) {
|
||||
case siUTCTime:
|
||||
SECU_PrintUTCTime(out, t, m, level);
|
||||
break;
|
||||
|
||||
case siGeneralizedTime:
|
||||
SECU_PrintGeneralizedTime(out, t, m, level);
|
||||
break;
|
||||
|
||||
default:
|
||||
PORT_Assert(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void secu_PrintAny(FILE *out, SECItem *i, char *m, int level);
|
||||
|
||||
void
|
||||
|
|
|
@ -203,6 +203,13 @@ extern void SECU_PrintUTCTime(FILE *out, SECItem *t, char *m, int level);
|
|||
extern void SECU_PrintGeneralizedTime(FILE *out, SECItem *t, char *m,
|
||||
int level);
|
||||
|
||||
/*
|
||||
* Format and print the UTC or Generalized Time "t". If the tag message
|
||||
* "m" is not NULL, do indent formatting based on "level" and add a newline
|
||||
* afterward; otherwise just print the formatted time string only.
|
||||
*/
|
||||
extern void SECU_PrintTimeChoice(FILE *out, SECItem *t, char *m, int level);
|
||||
|
||||
/* callback for listing certs through pkcs11 */
|
||||
extern SECStatus SECU_PrintCertNickname(CERTCertListNode* cert, void *data);
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
/*
|
||||
* p7content -- A command to display pkcs7 content.
|
||||
*
|
||||
* $Id: p7content.c,v 1.8 2003/01/07 22:48:31 bishakhabanerjee%netscape.com Exp $
|
||||
* $Id: p7content.c,v 1.9 2003/09/26 06:18:40 jpierre%netscape.com Exp $
|
||||
*/
|
||||
|
||||
#include "nspr.h"
|
||||
|
@ -175,7 +175,7 @@ DecodeAndPrintFile(FILE *out, PRFileDesc *in, char *progName)
|
|||
|
||||
signing_time = SEC_PKCS7GetSigningTime(cinfo);
|
||||
if (signing_time != NULL) {
|
||||
SECU_PrintUTCTime(out, signing_time, "Signing time", 0);
|
||||
SECU_PrintTimeChoice(out, signing_time, "Signing time", 0);
|
||||
} else {
|
||||
fprintf(out, "No signing time included.\n");
|
||||
}
|
||||
|
|
|
@ -103,18 +103,18 @@ sv_PrintInteger(FILE *out, SECItem *i, char *m)
|
|||
|
||||
|
||||
int
|
||||
sv_PrintUTCTime(FILE *out, SECItem *t, char *m)
|
||||
sv_PrintTime(FILE *out, SECItem *t, char *m)
|
||||
{
|
||||
PRExplodedTime printableTime;
|
||||
int64 time;
|
||||
char *timeString;
|
||||
int rv;
|
||||
|
||||
rv = DER_UTCTimeToTime(&time, t);
|
||||
rv = CERT_DecodeTimeChoice(&time, t);
|
||||
if (rv) return rv;
|
||||
|
||||
/* Converse to local time */
|
||||
PR_ExplodeTime(time, PR_GMTParameters, &printableTime);
|
||||
/* Convert to local time */
|
||||
PR_ExplodeTime(time, PR_LocalTimeParameters, &printableTime);
|
||||
|
||||
timeString = (char *)PORT_Alloc(100);
|
||||
|
||||
|
@ -127,17 +127,16 @@ sv_PrintUTCTime(FILE *out, SECItem *t, char *m)
|
|||
return SECFailure;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
sv_PrintValidity(FILE *out, CERTValidity *v, char *m)
|
||||
{
|
||||
int rv;
|
||||
|
||||
fprintf(out, m);
|
||||
rv = sv_PrintUTCTime(out, &v->notBefore, "notBefore=");
|
||||
rv = sv_PrintTime(out, &v->notBefore, "notBefore=");
|
||||
if (rv) return rv;
|
||||
fprintf(out, m);
|
||||
sv_PrintUTCTime(out, &v->notAfter, "notAfter=");
|
||||
sv_PrintTime(out, &v->notAfter, "notAfter=");
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
@ -200,7 +199,7 @@ sv_PrintAttribute(FILE *out, SEC_PKCS7Attribute *attr, char *m)
|
|||
sv_PrintObjectID(out, value, om);
|
||||
break;
|
||||
case SEC_OID_PKCS9_SIGNING_TIME:
|
||||
sv_PrintUTCTime(out, value, om);
|
||||
sv_PrintTime(out, value, om);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -456,9 +455,9 @@ sv_PrintCRLInfo(FILE *out, CERTCrl *crl, char *m)
|
|||
fprintf(out, m);
|
||||
sv_PrintName(out, &(crl->name), "name=");
|
||||
fprintf(out, m);
|
||||
sv_PrintUTCTime(out, &(crl->lastUpdate), "lastUpdate=");
|
||||
sv_PrintTime(out, &(crl->lastUpdate), "lastUpdate=");
|
||||
fprintf(out, m);
|
||||
sv_PrintUTCTime(out, &(crl->nextUpdate), "nextUpdate=");
|
||||
sv_PrintTime(out, &(crl->nextUpdate), "nextUpdate=");
|
||||
|
||||
if (crl->entries != NULL) {
|
||||
iv = 0;
|
||||
|
@ -466,7 +465,7 @@ sv_PrintCRLInfo(FILE *out, CERTCrl *crl, char *m)
|
|||
fprintf(out, "%sentry[%d].", m, iv);
|
||||
sv_PrintInteger(out, &(entry->serialNumber), "serialNumber=");
|
||||
fprintf(out, "%sentry[%d].", m, iv);
|
||||
sv_PrintUTCTime(out, &(entry->revocationDate), "revocationDate=");
|
||||
sv_PrintTime(out, &(entry->revocationDate), "revocationDate=");
|
||||
sprintf(om, "%sentry[%d].signedCRLEntriesExtensions.", m, iv++);
|
||||
sv_PrintExtensions(out, entry->extensions, om);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче