void SECU_PrintPrivKeyUsagePeriodExtension(FILE *out, SECItem *value, char *msg, int level) { CERTPrivKeyUsagePeriod * prd; PLArenaPool * arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE); if ( !arena ) { goto loser; } prd = CERT_DecodePrivKeyUsagePeriodExtension(arena, value); if (!prd) { goto loser; } if (prd->notBefore.data) { SECU_PrintGeneralizedTime(out, &prd->notBefore, "Not Before", level); } if (prd->notAfter.data) { SECU_PrintGeneralizedTime(out, &prd->notAfter, "Not After ", level); } if (!prd->notBefore.data && !prd->notAfter.data) { SECU_Indent(out, level); fprintf(out, "Error: notBefore or notAfter MUST be present.\n"); loser: SECU_PrintAny(out, value, msg, level); } if (arena) { PORT_FreeArena(arena, PR_FALSE); } }
static void print_response_data (FILE *out_file, ocspResponseData *responseData, int level) { SECU_Indent (out_file, level); fprintf (out_file, "Response Data:\n"); level++; print_ocsp_version (out_file, &(responseData->version), level); print_responder_id (out_file, responseData->responderID, level); SECU_PrintGeneralizedTime (out_file, &(responseData->producedAt), "Produced At", level); if (responseData->responses != NULL) { int i; for (i = 0; responseData->responses[i] != NULL; i++) { SECU_Indent (out_file, level); fprintf (out_file, "Response %d:\n", i); print_single_response (out_file, responseData->responses[i], level + 1); } } else { fprintf (out_file, "Response list is empty.\n"); } print_ocsp_extensions (out_file, responseData->responseExtensions, "Response Extensions", level); }
static void print_single_response (FILE *out_file, CERTOCSPSingleResponse *single, int level) { print_ocsp_cert_id (out_file, single->certID, level); print_cert_status (out_file, single->certStatus, level); SECU_PrintGeneralizedTime (out_file, &(single->thisUpdate), "This Update", level); if (single->nextUpdate != NULL) { SECU_PrintGeneralizedTime (out_file, single->nextUpdate, "Next Update", level); } else { SECU_Indent (out_file, level); fprintf (out_file, "No Next Update\n"); } print_ocsp_extensions (out_file, single->singleExtensions, "Single Response Extensions", level); }
static void print_revoked_info (FILE *out_file, ocspRevokedInfo *revoked_info, int level) { SECU_PrintGeneralizedTime (out_file, &(revoked_info->revocationTime), "Revocation Time", level); if (revoked_info->revocationReason != NULL) { SECU_PrintAsHex (out_file, revoked_info->revocationReason, "Revocation Reason", level); } else { SECU_Indent (out_file, level); fprintf (out_file, "No Revocation Reason.\n"); } }
static int prettyPrintTime(FILE *out, const unsigned char *str, unsigned int len, unsigned int level, PRBool raw, PRBool utc) { SECItem time_item; int rv; rv = prettyPrintStringStart(out, str, len, level); if (rv < 0) return rv; time_item.data = (unsigned char *)str; time_item.len = len; rv = fprintf(out, " ("); if (rv < 0) { PORT_SetError(SEC_ERROR_IO); return rv; } if (utc) SECU_PrintUTCTime(out, &time_item, NULL, 0); else SECU_PrintGeneralizedTime(out, &time_item, NULL, 0); rv = fprintf(out, ")"); if (rv < 0) { PORT_SetError(SEC_ERROR_IO); return rv; } rv = prettyNewline(out); if (rv < 0) return rv; if (raw) { rv = prettyPrintLeaf(out, str, len, level); if (rv < 0) return rv; } return 0; }