PORT_Assert( ssl_Have1stHandshakeLock(ss) );
PORT_Assert( ss->opt.noLocks || ssl_Have1stHandshakeLock(ss) );
ssl2_TryToFinish(sslSocket *ss){    SECStatus        rv;    char             e, ef;    PORT_Assert( ssl_Have1stHandshakeLock(ss) );    e = ss->sec.ci.elements;    ef = e | CIS_HAVE_FINISHED;    if ((ef & ss->sec.ci.requiredElements) == ss->sec.ci.requiredElements) {	if (ss->sec.isServer) {	    /* Send server finished message if we already didn't */	    rv = ssl2_SendServerFinishedMessage(ss);	} else {	    /* Send client finished message if we already didn't */	    rv = ssl2_SendClientFinishedMessage(ss);	}	if (rv != SECSuccess) {	    return rv;	}	if ((e & ss->sec.ci.requiredElements) == ss->sec.ci.requiredElements) {	    /* Totally finished */	    ss->handshake = 0;	    return SECSuccess;	}    }    return SECSuccess;}