cert = CERT_FindCertBySubjKeyID(certdb, sid->id.subjectKeyID);
NSS_CMSSignerInfo_GetSigningCertificate(NSSCMSSignerInfo *signerinfo, CERTCertDBHandle *certdb){    CERTCertificate *cert;    if (signerinfo->cert != NULL)	return signerinfo->cert;    /* no certdb, and cert hasn't been set yet? */    if (certdb == NULL)	return NULL;    /*     * This cert will also need to be freed, but since we save it     * in signerinfo for later, we do not want to destroy it when     * we leave this function -- we let the clean-up of the entire     * cinfo structure later do the destroy of this cert.     */    switch (signerinfo->signerIdentifier.identifierType) {    case NSSCMSSignerID_IssuerSN:	cert = CERT_FindCertByIssuerAndSN(certdb, signerinfo->signerIdentifier.id.issuerAndSN);	break;    case NSSCMSSignerID_SubjectKeyID:#if 0 /* not yet implemented */	cert = CERT_FindCertBySubjectKeyID(certdb, signerinfo->signerIdentifier.id.subjectKeyID);#else	cert = NULL;#endif	break;    default:	cert = NULL;	break;    }    /* cert can be NULL at that point */    signerinfo->cert = cert;	/* earmark it */    return cert;}