Lines Matching full:backend
478 struct schannel_ssl_backend_data *backend = in schannel_acquire_credential_handle() local
479 (struct schannel_ssl_backend_data *)(connssl->backend); in schannel_acquire_credential_handle()
481 DEBUGASSERT(backend); in schannel_acquire_credential_handle()
485 if(backend->use_manual_cred_validation) in schannel_acquire_credential_handle()
754 backend->cred = (struct Curl_schannel_cred *) in schannel_acquire_credential_handle()
756 if(!backend->cred) { in schannel_acquire_credential_handle()
768 backend->cred->refcount = 1; in schannel_acquire_credential_handle()
774 backend->cred->client_cert_store = client_cert_store; in schannel_acquire_credential_handle()
985 &backend->cred->cred_handle, in schannel_acquire_credential_handle()
986 &backend->cred->time_stamp); in schannel_acquire_credential_handle()
1032 &backend->cred->cred_handle, in schannel_acquire_credential_handle()
1033 &backend->cred->time_stamp); in schannel_acquire_credential_handle()
1045 Curl_safefree(backend->cred); in schannel_acquire_credential_handle()
1067 struct schannel_ssl_backend_data *backend = in schannel_connect_step1() local
1068 (struct schannel_ssl_backend_data *)connssl->backend; in schannel_connect_step1()
1082 DEBUGASSERT(backend); in schannel_connect_step1()
1098 backend->use_alpn = connssl->alpn && in schannel_connect_step1()
1104 backend->use_alpn = FALSE; in schannel_connect_step1()
1111 backend->use_manual_cred_validation = TRUE; in schannel_connect_step1()
1120 backend->use_manual_cred_validation = TRUE; in schannel_connect_step1()
1129 backend->use_manual_cred_validation = FALSE; in schannel_connect_step1()
1138 backend->cred = NULL; in schannel_connect_step1()
1145 backend->cred = old_cred; in schannel_connect_step1()
1149 backend->cred->refcount++; in schannel_connect_step1()
1152 backend->cred->refcount)); in schannel_connect_step1()
1157 if(!backend->cred) { in schannel_connect_step1()
1162 /* schannel_acquire_credential_handle() sets backend->cred accordingly or in schannel_connect_step1()
1168 backend->cred->sni_hostname = curlx_convert_UTF8_to_tchar(snihost); in schannel_connect_step1()
1169 if(!backend->cred->sni_hostname) in schannel_connect_step1()
1179 if(backend->use_alpn) { in schannel_connect_step1()
1236 backend->req_flags = ISC_REQ_SEQUENCE_DETECT | ISC_REQ_REPLAY_DETECT | in schannel_connect_step1()
1241 backend->req_flags |= ISC_REQ_USE_SUPPLIED_CREDS; in schannel_connect_step1()
1245 backend->ctxt = (struct Curl_schannel_ctxt *) in schannel_connect_step1()
1247 if(!backend->ctxt) { in schannel_connect_step1()
1260 &backend->cred->cred_handle, NULL, backend->cred->sni_hostname, in schannel_connect_step1()
1261 backend->req_flags, 0, 0, in schannel_connect_step1()
1262 (backend->use_alpn ? &inbuf_desc : NULL), in schannel_connect_step1()
1263 0, &backend->ctxt->ctxt_handle, in schannel_connect_step1()
1264 &outbuf_desc, &backend->ret_flags, &backend->ctxt->time_stamp); in schannel_connect_step1()
1268 Curl_safefree(backend->ctxt); in schannel_connect_step1()
1313 backend->recv_unrecoverable_err = CURLE_OK; in schannel_connect_step1()
1314 backend->recv_sspi_close_notify = FALSE; in schannel_connect_step1()
1315 backend->recv_connection_closed = FALSE; in schannel_connect_step1()
1316 backend->recv_renegotiating = FALSE; in schannel_connect_step1()
1317 backend->encdata_is_incomplete = FALSE; in schannel_connect_step1()
1329 struct schannel_ssl_backend_data *backend = in schannel_connect_step2() local
1330 (struct schannel_ssl_backend_data *)connssl->backend; in schannel_connect_step2()
1344 DEBUGASSERT(backend); in schannel_connect_step2()
1353 if(!backend->cred || !backend->ctxt) in schannel_connect_step2()
1357 if(!backend->decdata_buffer) { in schannel_connect_step2()
1358 backend->decdata_offset = 0; in schannel_connect_step2()
1359 backend->decdata_length = CURL_SCHANNEL_BUFFER_INIT_SIZE; in schannel_connect_step2()
1360 backend->decdata_buffer = malloc(backend->decdata_length); in schannel_connect_step2()
1361 if(!backend->decdata_buffer) { in schannel_connect_step2()
1368 if(!backend->encdata_buffer) { in schannel_connect_step2()
1369 backend->encdata_is_incomplete = FALSE; in schannel_connect_step2()
1370 backend->encdata_offset = 0; in schannel_connect_step2()
1371 backend->encdata_length = CURL_SCHANNEL_BUFFER_INIT_SIZE; in schannel_connect_step2()
1372 backend->encdata_buffer = malloc(backend->encdata_length); in schannel_connect_step2()
1373 if(!backend->encdata_buffer) { in schannel_connect_step2()
1380 if(backend->encdata_length - backend->encdata_offset < in schannel_connect_step2()
1383 size_t reallocated_length = backend->encdata_offset + in schannel_connect_step2()
1385 reallocated_buffer = realloc(backend->encdata_buffer, in schannel_connect_step2()
1393 backend->encdata_buffer = reallocated_buffer; in schannel_connect_step2()
1394 backend->encdata_length = reallocated_length; in schannel_connect_step2()
1402 (char *) (backend->encdata_buffer + in schannel_connect_step2()
1403 backend->encdata_offset), in schannel_connect_step2()
1404 backend->encdata_length - in schannel_connect_step2()
1405 backend->encdata_offset, in schannel_connect_step2()
1420 backend->encdata_offset += nread; in schannel_connect_step2()
1421 backend->encdata_is_incomplete = FALSE; in schannel_connect_step2()
1427 backend->encdata_offset, backend->encdata_length)); in schannel_connect_step2()
1430 InitSecBuffer(&inbuf[0], SECBUFFER_TOKEN, malloc(backend->encdata_offset), in schannel_connect_step2()
1431 curlx_uztoul(backend->encdata_offset)); in schannel_connect_step2()
1447 memcpy(inbuf[0].pvBuffer, backend->encdata_buffer, in schannel_connect_step2()
1448 backend->encdata_offset); in schannel_connect_step2()
1451 &backend->cred->cred_handle, &backend->ctxt->ctxt_handle, in schannel_connect_step2()
1452 backend->cred->sni_hostname, backend->req_flags, in schannel_connect_step2()
1454 &outbuf_desc, &backend->ret_flags, &backend->ctxt->time_stamp); in schannel_connect_step2()
1461 backend->encdata_is_incomplete = TRUE; in schannel_connect_step2()
1472 !(backend->req_flags & ISC_REQ_USE_SUPPLIED_CREDS)) { in schannel_connect_step2()
1473 backend->req_flags |= ISC_REQ_USE_SUPPLIED_CREDS; in schannel_connect_step2()
1555 if(backend->encdata_offset > inbuf[1].cbBuffer) { in schannel_connect_step2()
1556 memmove(backend->encdata_buffer, in schannel_connect_step2()
1557 (backend->encdata_buffer + backend->encdata_offset) - in schannel_connect_step2()
1559 backend->encdata_offset = inbuf[1].cbBuffer; in schannel_connect_step2()
1567 backend->encdata_offset = 0; in schannel_connect_step2()
1600 if(conn_config->verifypeer && backend->use_manual_cred_validation) { in schannel_connect_step2()
1715 struct schannel_ssl_backend_data *backend = in schannel_connect_step3() local
1716 (struct schannel_ssl_backend_data *)connssl->backend; in schannel_connect_step3()
1726 DEBUGASSERT(backend); in schannel_connect_step3()
1732 if(!backend->cred) in schannel_connect_step3()
1736 if(backend->ret_flags != backend->req_flags) { in schannel_connect_step3()
1737 if(!(backend->ret_flags & ISC_RET_SEQUENCE_DETECT)) in schannel_connect_step3()
1739 if(!(backend->ret_flags & ISC_RET_REPLAY_DETECT)) in schannel_connect_step3()
1741 if(!(backend->ret_flags & ISC_RET_CONFIDENTIALITY)) in schannel_connect_step3()
1743 if(!(backend->ret_flags & ISC_RET_ALLOCATED_MEMORY)) in schannel_connect_step3()
1745 if(!(backend->ret_flags & ISC_RET_STREAM)) in schannel_connect_step3()
1751 if(backend->use_alpn) { in schannel_connect_step3()
1753 Curl_pSecFn->QueryContextAttributes(&backend->ctxt->ctxt_handle, in schannel_connect_step3()
1768 if(backend->recv_renegotiating) { in schannel_connect_step3()
1779 if(!backend->recv_renegotiating) in schannel_connect_step3()
1789 backend->cred->refcount++; in schannel_connect_step3()
1791 backend->cred, in schannel_connect_step3()
1802 Curl_pSecFn->QueryContextAttributes(&backend->ctxt->ctxt_handle, in schannel_connect_step3()
1933 struct schannel_ssl_backend_data *backend = in schannel_connect_common() local
1934 (struct schannel_ssl_backend_data *)connssl->backend; in schannel_connect_common()
1935 DEBUGASSERT(backend); in schannel_connect_common()
1936 cf->conn->sslContext = &backend->ctxt->ctxt_handle; in schannel_connect_common()
1963 struct schannel_ssl_backend_data *backend = in schannel_send() local
1964 (struct schannel_ssl_backend_data *)connssl->backend; in schannel_send()
1966 DEBUGASSERT(backend); in schannel_send()
1969 if(backend->stream_sizes.cbMaximumMessage == 0) { in schannel_send()
1971 &backend->ctxt->ctxt_handle, in schannel_send()
1973 &backend->stream_sizes); in schannel_send()
1981 if(len > backend->stream_sizes.cbMaximumMessage) { in schannel_send()
1982 len = backend->stream_sizes.cbMaximumMessage; in schannel_send()
1986 data_len = backend->stream_sizes.cbHeader + len + in schannel_send()
1987 backend->stream_sizes.cbTrailer; in schannel_send()
1996 ptr, backend->stream_sizes.cbHeader); in schannel_send()
1998 ptr + backend->stream_sizes.cbHeader, curlx_uztoul(len)); in schannel_send()
2000 ptr + backend->stream_sizes.cbHeader + len, in schannel_send()
2001 backend->stream_sizes.cbTrailer); in schannel_send()
2009 sspi_status = Curl_pSecFn->EncryptMessage(&backend->ctxt->ctxt_handle, 0, in schannel_send()
2114 struct schannel_ssl_backend_data *backend = in schannel_recv() local
2115 (struct schannel_ssl_backend_data *)connssl->backend; in schannel_recv()
2117 DEBUGASSERT(backend); in schannel_recv()
2120 * Do not return or set backend->recv_unrecoverable_err unless in the in schannel_recv()
2138 if(len && len <= backend->decdata_offset) { in schannel_recv()
2143 else if(backend->recv_unrecoverable_err) { in schannel_recv()
2144 *err = backend->recv_unrecoverable_err; in schannel_recv()
2148 else if(backend->recv_sspi_close_notify) { in schannel_recv()
2157 else if(len && !backend->recv_connection_closed) { in schannel_recv()
2159 size = backend->encdata_length - backend->encdata_offset; in schannel_recv()
2161 backend->encdata_length < min_encdata_length) { in schannel_recv()
2162 reallocated_length = backend->encdata_offset + in schannel_recv()
2167 reallocated_buffer = realloc(backend->encdata_buffer, in schannel_recv()
2175 backend->encdata_buffer = reallocated_buffer; in schannel_recv()
2176 backend->encdata_length = reallocated_length; in schannel_recv()
2177 size = backend->encdata_length - backend->encdata_offset; in schannel_recv()
2179 backend->encdata_length)); in schannel_recv()
2184 backend->encdata_offset, backend->encdata_length)); in schannel_recv()
2188 (char *)(backend->encdata_buffer + in schannel_recv()
2189 backend->encdata_offset), in schannel_recv()
2201 backend->recv_connection_closed = TRUE; in schannel_recv()
2205 backend->encdata_offset += (size_t)nread; in schannel_recv()
2206 backend->encdata_is_incomplete = FALSE; in schannel_recv()
2212 backend->encdata_offset, backend->encdata_length)); in schannel_recv()
2215 while(backend->encdata_offset > 0 && sspi_status == SEC_E_OK && in schannel_recv()
2216 (!len || backend->decdata_offset < len || in schannel_recv()
2217 backend->recv_connection_closed)) { in schannel_recv()
2219 InitSecBuffer(&inbuf[0], SECBUFFER_DATA, backend->encdata_buffer, in schannel_recv()
2220 curlx_uztoul(backend->encdata_offset)); in schannel_recv()
2230 sspi_status = Curl_pSecFn->DecryptMessage(&backend->ctxt->ctxt_handle, in schannel_recv()
2246 if(backend->decdata_length - backend->decdata_offset < size || in schannel_recv()
2247 backend->decdata_length < len) { in schannel_recv()
2249 reallocated_length = backend->decdata_offset + size; in schannel_recv()
2254 reallocated_buffer = realloc(backend->decdata_buffer, in schannel_recv()
2261 backend->decdata_buffer = reallocated_buffer; in schannel_recv()
2262 backend->decdata_length = reallocated_length; in schannel_recv()
2268 memcpy(backend->decdata_buffer + backend->decdata_offset, in schannel_recv()
2270 backend->decdata_offset += size; in schannel_recv()
2276 backend->decdata_offset, backend->decdata_length)); in schannel_recv()
2287 if(backend->encdata_offset > inbuf[3].cbBuffer) { in schannel_recv()
2290 memmove(backend->encdata_buffer, in schannel_recv()
2291 (backend->encdata_buffer + backend->encdata_offset) - in schannel_recv()
2293 backend->encdata_offset = inbuf[3].cbBuffer; in schannel_recv()
2298 backend->encdata_offset, backend->encdata_length)); in schannel_recv()
2302 backend->encdata_offset = 0; in schannel_recv()
2318 backend->recv_renegotiating = TRUE; in schannel_recv()
2320 backend->recv_renegotiating = FALSE; in schannel_recv()
2334 backend->recv_sspi_close_notify = TRUE; in schannel_recv()
2335 if(!backend->recv_connection_closed) in schannel_recv()
2336 backend->recv_connection_closed = TRUE; in schannel_recv()
2348 backend->encdata_is_incomplete = TRUE; in schannel_recv()
2366 backend->encdata_offset, backend->encdata_length)); in schannel_recv()
2369 backend->decdata_offset, backend->decdata_length)); in schannel_recv()
2386 if(len && !backend->decdata_offset && backend->recv_connection_closed && in schannel_recv()
2387 !backend->recv_sspi_close_notify) { in schannel_recv()
2392 backend->recv_sspi_close_notify = TRUE; in schannel_recv()
2401 backend->recv_unrecoverable_err = *err; in schannel_recv()
2403 size = len < backend->decdata_offset ? len : backend->decdata_offset; in schannel_recv()
2405 memcpy(buf, backend->decdata_buffer, size); in schannel_recv()
2406 memmove(backend->decdata_buffer, backend->decdata_buffer + size, in schannel_recv()
2407 backend->decdata_offset - size); in schannel_recv()
2408 backend->decdata_offset -= size; in schannel_recv()
2412 backend->decdata_offset, backend->decdata_length)); in schannel_recv()
2417 if(!*err && !backend->recv_connection_closed) in schannel_recv()
2456 struct schannel_ssl_backend_data *backend = in schannel_data_pending() local
2457 (struct schannel_ssl_backend_data *)connssl->backend; in schannel_data_pending()
2460 DEBUGASSERT(backend); in schannel_data_pending()
2462 if(backend->ctxt) /* SSL/TLS is in use */ in schannel_data_pending()
2463 return (backend->decdata_offset > 0 || in schannel_data_pending()
2464 (backend->encdata_offset > 0 && !backend->encdata_is_incomplete) || in schannel_data_pending()
2465 backend->recv_connection_closed || in schannel_data_pending()
2466 backend->recv_sspi_close_notify || in schannel_data_pending()
2467 backend->recv_unrecoverable_err); in schannel_data_pending()
2483 struct schannel_ssl_backend_data *backend = in schannel_shutdown() local
2484 (struct schannel_ssl_backend_data *)connssl->backend; in schannel_shutdown()
2493 DEBUGASSERT(backend); in schannel_shutdown()
2499 if(backend->ctxt) { in schannel_shutdown()
2504 if(!backend->ctxt || cf->shutdown) { in schannel_shutdown()
2509 if(backend->cred && backend->ctxt && !backend->sent_shutdown) { in schannel_shutdown()
2520 sspi_status = Curl_pSecFn->ApplyControlToken(&backend->ctxt->ctxt_handle, in schannel_shutdown()
2536 &backend->cred->cred_handle, in schannel_shutdown()
2537 &backend->ctxt->ctxt_handle, in schannel_shutdown()
2538 backend->cred->sni_hostname, in schannel_shutdown()
2539 backend->req_flags, in schannel_shutdown()
2544 &backend->ctxt->ctxt_handle, in schannel_shutdown()
2546 &backend->ret_flags, in schannel_shutdown()
2547 &backend->ctxt->time_stamp); in schannel_shutdown()
2563 backend->sent_shutdown = TRUE; in schannel_shutdown()
2572 if(!backend->recv_connection_closed) { in schannel_shutdown()
2587 if(backend->cred && backend->ctxt && in schannel_shutdown()
2588 !backend->recv_sspi_close_notify && !backend->recv_connection_closed) { in schannel_shutdown()
2598 backend->recv_connection_closed = TRUE; in schannel_shutdown()
2618 struct schannel_ssl_backend_data *backend = in schannel_close() local
2619 (struct schannel_ssl_backend_data *)connssl->backend; in schannel_close()
2622 DEBUGASSERT(backend); in schannel_close()
2625 if(backend->ctxt) { in schannel_close()
2627 Curl_pSecFn->DeleteSecurityContext(&backend->ctxt->ctxt_handle); in schannel_close()
2628 Curl_safefree(backend->ctxt); in schannel_close()
2632 if(backend->cred) { in schannel_close()
2634 schannel_session_free(backend->cred, 0); in schannel_close()
2636 backend->cred = NULL; in schannel_close()
2640 if(backend->encdata_buffer) { in schannel_close()
2641 Curl_safefree(backend->encdata_buffer); in schannel_close()
2642 backend->encdata_length = 0; in schannel_close()
2643 backend->encdata_offset = 0; in schannel_close()
2644 backend->encdata_is_incomplete = FALSE; in schannel_close()
2648 if(backend->decdata_buffer) { in schannel_close()
2649 Curl_safefree(backend->decdata_buffer); in schannel_close()
2650 backend->decdata_length = 0; in schannel_close()
2651 backend->decdata_offset = 0; in schannel_close()
2683 struct schannel_ssl_backend_data *backend = in schannel_pkp_pin_peer_pubkey() local
2684 (struct schannel_ssl_backend_data *)connssl->backend; in schannel_pkp_pin_peer_pubkey()
2690 DEBUGASSERT(backend); in schannel_pkp_pin_peer_pubkey()
2704 Curl_pSecFn->QueryContextAttributes(&backend->ctxt->ctxt_handle, in schannel_pkp_pin_peer_pubkey()
2817 struct schannel_ssl_backend_data *backend = in schannel_get_internals() local
2818 (struct schannel_ssl_backend_data *)connssl->backend; in schannel_get_internals()
2820 DEBUGASSERT(backend); in schannel_get_internals()
2821 return &backend->ctxt->ctxt_handle; in schannel_get_internals()