Lines Matching refs:backend
163 #define BACKEND connssl->backend
262 BACKEND->use_alpn = conn->bits.tls_enable_alpn &&
268 BACKEND->use_alpn = false;
271 BACKEND->cred = NULL;
277 BACKEND->cred = old_cred;
281 BACKEND->cred->refcount++;
283 BACKEND->cred->refcount);
288 if(!BACKEND->cred) {
358 BACKEND->cred = (struct curl_schannel_cred *)
360 if(!BACKEND->cred) {
364 memset(BACKEND->cred, 0, sizeof(struct curl_schannel_cred));
365 BACKEND->cred->refcount = 1;
373 &BACKEND->cred->cred_handle,
374 &BACKEND->cred->time_stamp);
383 Curl_safefree(BACKEND->cred);
398 if(BACKEND->use_alpn) {
456 BACKEND->req_flags = ISC_REQ_SEQUENCE_DETECT | ISC_REQ_REPLAY_DETECT |
461 BACKEND->ctxt = (struct curl_schannel_ctxt *)
463 if(!BACKEND->ctxt) {
467 memset(BACKEND->ctxt, 0, sizeof(struct curl_schannel_ctxt));
481 &BACKEND->cred->cred_handle, NULL, host_name, BACKEND->req_flags, 0, 0,
482 (BACKEND->use_alpn ? &inbuf_desc : NULL),
483 0, &BACKEND->ctxt->ctxt_handle,
484 BACKEND->ret_flags, &BACKEND->ctxt->time_stamp);
495 Curl_safefree(BACKEND->ctxt);
515 BACKEND->recv_unrecoverable_err = CURLE_OK;
516 BACKEND->recv_sspi_close_notify = false;
517 BACKEND->recv_connection_closed = false;
518 BACKEND->encdata_is_incomplete = false;
551 if(!BACKEND->cred || !BACKEND->ctxt)
555 if(BACKEND->decdata_buffer == NULL) {
556 BACKEND->decdata_offset = 0;
557 BACKEND->decdata_length = CURL_SCHANNEL_BUFFER_INIT_SIZE;
558 BACKEND->decdata_buffer = malloc(BACKEND->decdata_length);
559 if(BACKEND->decdata_buffer == NULL) {
566 if(BACKEND->encdata_buffer == NULL) {
567 BACKEND->encdata_is_incomplete = false;
568 BACKEND->encdata_offset = 0;
569 BACKEND->encdata_length = CURL_SCHANNEL_BUFFER_INIT_SIZE;
570 BACKEND->encdata_buffer = malloc(BACKEND->encdata_length);
571 if(BACKEND->encdata_buffer == NULL) {
578 if(BACKEND->encdata_length - BACKEND->encdata_offset <
581 reallocated_length = BACKEND->encdata_offset +
583 reallocated_buffer = realloc(BACKEND->encdata_buffer,
591 BACKEND->encdata_buffer = reallocated_buffer;
592 BACKEND->encdata_length = reallocated_length;
600 (char *) (BACKEND->encdata_buffer +
601 BACKEND->encdata_offset),
602 BACKEND->encdata_length -
603 BACKEND->encdata_offset,
619 BACKEND->encdata_offset += nread;
620 BACKEND->encdata_is_incomplete = false;
625 BACKEND->encdata_offset, BACKEND->encdata_length);
628 InitSecBuffer(&inbuf[0], SECBUFFER_TOKEN, malloc(BACKEND->encdata_offset),
629 curlx_uztoul(BACKEND->encdata_offset));
645 memcpy(inbuf[0].pvBuffer, BACKEND->encdata_buffer,
646 BACKEND->encdata_offset);
655 &BACKEND->cred->cred_handle, &BACKEND->ctxt->ctxt_handle,
656 host_name, BACKEND->req_flags, 0, 0, &inbuf_desc, 0, NULL,
657 &outbuf_desc, &BACKEND->ret_flags, &BACKEND->ctxt->time_stamp);
666 BACKEND->encdata_is_incomplete = true;
676 !(BACKEND->req_flags & ISC_REQ_USE_SUPPLIED_CREDS)) {
677 BACKEND->req_flags |= ISC_REQ_USE_SUPPLIED_CREDS;
735 if(BACKEND->encdata_offset > inbuf[1].cbBuffer) {
736 memmove(BACKEND->encdata_buffer,
737 (BACKEND->encdata_buffer + BACKEND->encdata_offset) -
739 BACKEND->encdata_offset = inbuf[1].cbBuffer;
747 BACKEND->encdata_offset = 0;
795 if(!BACKEND->cred)
799 if(BACKEND->ret_flags != BACKEND->req_flags) {
800 if(!(BACKEND->ret_flags & ISC_RET_SEQUENCE_DETECT))
802 if(!(BACKEND->ret_flags & ISC_RET_REPLAY_DETECT))
804 if(!(BACKEND->ret_flags & ISC_RET_CONFIDENTIALITY))
806 if(!(BACKEND->ret_flags & ISC_RET_ALLOCATED_MEMORY))
808 if(!(BACKEND->ret_flags & ISC_RET_STREAM))
814 if(BACKEND->use_alpn) {
815 sspi_status = s_pSecFn->QueryContextAttributes(&BACKEND->ctxt->ctxt_handle,
857 if(old_cred != BACKEND->cred) {
865 result = Curl_ssl_addsessionid(conn, (void *)BACKEND->cred,
875 BACKEND->cred->refcount++;
883 sspi_status = s_pSecFn->QueryContextAttributes(&BACKEND->ctxt->ctxt_handle,
1037 if(BACKEND->stream_sizes.cbMaximumMessage == 0) {
1039 &BACKEND->ctxt->ctxt_handle,
1041 &BACKEND->stream_sizes);
1049 if(len > BACKEND->stream_sizes.cbMaximumMessage) {
1050 len = BACKEND->stream_sizes.cbMaximumMessage;
1054 data_len = BACKEND->stream_sizes.cbHeader + len +
1055 BACKEND->stream_sizes.cbTrailer;
1064 data, BACKEND->stream_sizes.cbHeader);
1066 data + BACKEND->stream_sizes.cbHeader, curlx_uztoul(len));
1068 data + BACKEND->stream_sizes.cbHeader + len,
1069 BACKEND->stream_sizes.cbTrailer);
1077 sspi_status = s_pSecFn->EncryptMessage(&BACKEND->ctxt->ctxt_handle, 0,
1187 * Don't return or set BACKEND->recv_unrecoverable_err unless in the cleanup.
1199 if(len && len <= BACKEND->decdata_offset) {
1203 else if(BACKEND->recv_unrecoverable_err) {
1204 *err = BACKEND->recv_unrecoverable_err;
1208 else if(BACKEND->recv_sspi_close_notify) {
1220 else if(!BACKEND->recv_connection_closed) {
1222 size = BACKEND->encdata_length - BACKEND->encdata_offset;
1224 BACKEND->encdata_length < min_encdata_length) {
1225 reallocated_length = BACKEND->encdata_offset +
1230 reallocated_buffer = realloc(BACKEND->encdata_buffer,
1238 BACKEND->encdata_buffer = reallocated_buffer;
1239 BACKEND->encdata_length = reallocated_length;
1240 size = BACKEND->encdata_length - BACKEND->encdata_offset;
1242 BACKEND->encdata_length);
1246 BACKEND->encdata_offset, BACKEND->encdata_length);
1250 (char *)(BACKEND->encdata_buffer +
1251 BACKEND->encdata_offset),
1263 BACKEND->recv_connection_closed = true;
1267 BACKEND->encdata_offset += (size_t)nread;
1268 BACKEND->encdata_is_incomplete = false;
1274 BACKEND->encdata_offset, BACKEND->encdata_length);
1277 while(BACKEND->encdata_offset > 0 && sspi_status == SEC_E_OK &&
1278 (!len || BACKEND->decdata_offset < len ||
1279 BACKEND->recv_connection_closed)) {
1281 InitSecBuffer(&inbuf[0], SECBUFFER_DATA, BACKEND->encdata_buffer,
1282 curlx_uztoul(BACKEND->encdata_offset));
1292 sspi_status = s_pSecFn->DecryptMessage(&BACKEND->ctxt->ctxt_handle,
1308 if(BACKEND->decdata_length - BACKEND->decdata_offset < size ||
1309 BACKEND->decdata_length < len) {
1311 reallocated_length = BACKEND->decdata_offset + size;
1316 reallocated_buffer = realloc(BACKEND->decdata_buffer,
1323 BACKEND->decdata_buffer = reallocated_buffer;
1324 BACKEND->decdata_length = reallocated_length;
1330 memcpy(BACKEND->decdata_buffer + BACKEND->decdata_offset,
1332 BACKEND->decdata_offset += size;
1337 BACKEND->decdata_offset, BACKEND->decdata_length);
1348 if(BACKEND->encdata_offset > inbuf[3].cbBuffer) {
1351 memmove(BACKEND->encdata_buffer,
1352 (BACKEND->encdata_buffer + BACKEND->encdata_offset) -
1354 BACKEND->encdata_offset = inbuf[3].cbBuffer;
1358 BACKEND->encdata_offset, BACKEND->encdata_length);
1362 BACKEND->encdata_offset = 0;
1372 if(BACKEND->encdata_offset) {
1396 BACKEND->recv_sspi_close_notify = true;
1397 if(!BACKEND->recv_connection_closed) {
1398 BACKEND->recv_connection_closed = true;
1405 BACKEND->encdata_is_incomplete = true;
1420 BACKEND->encdata_offset, BACKEND->encdata_length);
1423 BACKEND->decdata_offset, BACKEND->decdata_length);
1437 if(len && !BACKEND->decdata_offset && BACKEND->recv_connection_closed &&
1438 !BACKEND->recv_sspi_close_notify) {
1443 BACKEND->recv_sspi_close_notify = true;
1452 BACKEND->recv_unrecoverable_err = *err;
1454 size = len < BACKEND->decdata_offset ? len : BACKEND->decdata_offset;
1456 memcpy(buf, BACKEND->decdata_buffer, size);
1457 memmove(BACKEND->decdata_buffer, BACKEND->decdata_buffer + size,
1458 BACKEND->decdata_offset - size);
1459 BACKEND->decdata_offset -= size;
1463 BACKEND->decdata_offset, BACKEND->decdata_length);
1468 if(!*err && !BACKEND->recv_connection_closed)
1506 return (BACKEND->decdata_offset > 0 ||
1507 (BACKEND->encdata_offset > 0 && !BACKEND->encdata_is_incomplete));
1544 if(BACKEND->cred && BACKEND->ctxt) {
1557 sspi_status = s_pSecFn->ApplyControlToken(&BACKEND->ctxt->ctxt_handle,
1573 &BACKEND->cred->cred_handle,
1574 &BACKEND->ctxt->ctxt_handle,
1576 BACKEND->req_flags,
1581 &BACKEND->ctxt->ctxt_handle,
1583 &BACKEND->ret_flags,
1584 &BACKEND->ctxt->time_stamp);
1603 if(BACKEND->ctxt) {
1605 s_pSecFn->DeleteSecurityContext(&BACKEND->ctxt->ctxt_handle);
1606 Curl_safefree(BACKEND->ctxt);
1610 if(BACKEND->cred) {
1612 Curl_schannel_session_free(BACKEND->cred);
1614 BACKEND->cred = NULL;
1618 if(BACKEND->encdata_buffer != NULL) {
1619 Curl_safefree(BACKEND->encdata_buffer);
1620 BACKEND->encdata_length = 0;
1621 BACKEND->encdata_offset = 0;
1622 BACKEND->encdata_is_incomplete = false;
1626 if(BACKEND->decdata_buffer != NULL) {
1627 Curl_safefree(BACKEND->decdata_buffer);
1628 BACKEND->decdata_length = 0;
1629 BACKEND->decdata_offset = 0;
1685 status = s_pSecFn->QueryContextAttributes(&BACKEND->ctxt->ctxt_handle,
1816 return &BACKEND->ctxt->ctxt_handle;