SECU_PrintFingerprints(out, der, "Fingerprint", level+1);
int SECU_PrintSignedData(FILE *out, SECItem *der, char *m,			   int level, SECU_PPFunc inner){    PRArenaPool *arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);    CERTSignedData *sd;    int rv = SEC_ERROR_NO_MEMORY;    if (!arena)	return rv;    /* Strip off the signature */    sd = PORT_ArenaZNew(arena, CERTSignedData);    if (!sd)	goto loser;    rv = SEC_ASN1DecodeItem(arena, sd, SEC_ASN1_GET(CERT_SignedDataTemplate),                             der);    if (rv)	goto loser;    SECU_Indent(out, level); fprintf(out, "%s:\n", m);    rv = (*inner)(out, &sd->data, "Data", level+1);    if (rv) 	goto loser;    SECU_PrintAlgorithmID(out, &sd->signatureAlgorithm, "Signature Algorithm",			  level+1);    DER_ConvertBitString(&sd->signature);    SECU_PrintAsHex(out, &sd->signature, "Signature", level+1);loser:    PORT_FreeArena(arena, PR_FALSE);    SECU_PrintFingerprints(out, der, "Fingerprint", level+1);    return rv;}