SECItem *identifier = NULL;
nss3certificate_getIssuerIdentifier(nssDecodedCert *dc){    CERTCertificate *c = (CERTCertificate *)dc->data;    CERTAuthKeyID *cAuthKeyID;    PRArenaPool *tmpArena = NULL;    SECItem issuerCertKey;    SECItem *identifier = NULL;    NSSItem *rvID = NULL;    SECStatus secrv;    tmpArena = PORT_NewArena(512);    cAuthKeyID = CERT_FindAuthKeyIDExten(tmpArena, c);    if (cAuthKeyID) {	if (cAuthKeyID->keyID.data) {	    identifier = &cAuthKeyID->keyID;	} else if (cAuthKeyID->authCertIssuer) {	    SECItem *caName;	    caName = (SECItem *)CERT_GetGeneralNameByType(	                                        cAuthKeyID->authCertIssuer,						certDirectoryName, PR_TRUE);	    if (caName) {		secrv = CERT_KeyFromIssuerAndSN(tmpArena, caName,		                           &cAuthKeyID->authCertSerialNumber,		                           &issuerCertKey);		if (secrv == SECSuccess) {		    identifier = &issuerCertKey;		}	    }	}    }    if (identifier) {	rvID = nssItem_Create(NULL, NULL, identifier->len, identifier->data);    }    if (tmpArena) PORT_FreeArena(tmpArena, PR_FALSE);    return rvID;}