PORT_Assert( ssl_Have1stHandshakeLock(ss) );
PORT_Assert( ss->opt.noLocks || ssl_Have1stHandshakeLock(ss) );
ssl2_SendCertificateResponseMessage(sslSocket *ss, SECItem *cert,                                     SECItem *encCode){    PRUint8 *msg;    int rv, sendLen;    PORT_Assert( ssl_Have1stHandshakeLock(ss) );    ssl_GetXmitBufLock(ss);    /***************************************/    sendLen = SSL_HL_CLIENT_CERTIFICATE_HBYTES + encCode->len + cert->len;    rv = ssl2_GetSendBuffer(ss, sendLen);    if (rv)     	goto done;    SSL_TRC(3, ("%d: SSL[%d]: sending certificate response",		SSL_GETPID(), ss->fd));    msg = ss->sec.ci.sendBuf.buf;    msg[0] = SSL_MT_CLIENT_CERTIFICATE;    msg[1] = SSL_CT_X509_CERTIFICATE;    msg[2] = MSB(cert->len);    msg[3] = LSB(cert->len);    msg[4] = MSB(encCode->len);    msg[5] = LSB(encCode->len);    PORT_Memcpy(msg + SSL_HL_CLIENT_CERTIFICATE_HBYTES, cert->data, cert->len);    PORT_Memcpy(msg + SSL_HL_CLIENT_CERTIFICATE_HBYTES + cert->len,	      encCode->data, encCode->len);    DUMP_MSG(29, (ss, msg, sendLen));    rv = (*ss->sec.send)(ss, msg, sendLen, 0);    if (rv >= 0) {	rv = SECSuccess;    }done:    ssl_ReleaseXmitBufLock(ss);    /***************************************/    return rv;}