rv = SEC_ASN1DecodeItem(arena, &tmpItem, SEC_BitStringTemplate,
rv = SEC_QuickDERDecodeItem(arena, &tmpItem, SEC_BitStringTemplate,
CERT_FindBitStringExtension (CERTCertExtension **extensions, int tag,			     SECItem *retItem){    SECItem wrapperItem, tmpItem = {siBuffer,0};    SECStatus rv;    PRArenaPool *arena = NULL;        wrapperItem.data = NULL;    tmpItem.data = NULL;        arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);        if ( ! arena ) {	return(SECFailure);    }        rv = cert_FindExtension(extensions, tag, &wrapperItem);    if ( rv != SECSuccess ) {	goto loser;    }    rv = SEC_ASN1DecodeItem(arena, &tmpItem, SEC_BitStringTemplate, 			    &wrapperItem);    if ( rv != SECSuccess ) {	goto loser;    }    retItem->data = (unsigned char *)PORT_Alloc( ( tmpItem.len + 7 ) >> 3 );    if ( retItem->data == NULL ) {	goto loser;    }        PORT_Memcpy(retItem->data, tmpItem.data, ( tmpItem.len + 7 ) >> 3);    retItem->len = tmpItem.len;        rv = SECSuccess;    goto done;    loser:    rv = SECFailure;done:    if ( arena ) {	PORT_FreeArena(arena, PR_FALSE);    }        if ( wrapperItem.data ) {	PORT_Free(wrapperItem.data);    }    return(rv);}