rv = SEC_ASN1DecodeItem(arena, derName, SEC_CertSubjectTemplate, &sd.data);
rv = SEC_QuickDERDecodeItem(arena, derName, SEC_CertSubjectTemplate, &sd.data);
CERT_NameFromDERCert(SECItem *derCert, SECItem *derName){    int rv;    PRArenaPool *arena;    CERTSignedData sd;    void *tmpptr;        arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);        if ( ! arena ) {	return(SECFailure);    }       PORT_Memset(&sd, 0, sizeof(CERTSignedData));    rv = SEC_ASN1DecodeItem(arena, &sd, CERT_SignedDataTemplate, derCert);        if ( rv ) {	goto loser;    }        PORT_Memset(derName, 0, sizeof(SECItem));    rv = SEC_ASN1DecodeItem(arena, derName, SEC_CertSubjectTemplate, &sd.data);    if ( rv ) {	goto loser;    }    tmpptr = derName->data;    derName->data = (unsigned char*)PORT_Alloc(derName->len);    if ( derName->data == NULL ) {	goto loser;    }        PORT_Memcpy(derName->data, tmpptr, derName->len);        PORT_FreeArena(arena, PR_FALSE);    return(SECSuccess);loser:    PORT_FreeArena(arena, PR_FALSE);    return(SECFailure);}