if(ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS ) continue;if(ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) continue;else if(ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY ) continue; else break; } while(1);But sometimes mbedtls_ssl_read returns error MBEDTLS_ERR_SSL_ALLOC_FAILED. I have ...
|| n == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS) { n = 0; } else { fprintf(stderr, "SSL write failed, error %d\n", n); return -2; } } else { err = 0; } } else #elif !defined(NO_SSL) if (ssl != NULL) { ERR_clear_error(); ...
case -(MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS): return( "SSL - A cryptographic operation is in progress. Try again later" ); case -(MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE): return( "SSL - The requested feature is not available" ); case -(MBEDTLS_ERR_SSL_BAD_INPUT_DATA): r...
According to the API doc write() should lead to a reset whenever an error different from WANT_READ, WANT_WRITE, ASYNC_IN, CRYPTO_IN_PROGRESS or CLIENT_RECONNECT is received. So the app was rightfully closing the connection with the new session ticket error. Note that this was both with ...
defined(MBEDTLS_SSL_PROTO_TLS1_2) && \ defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) #define MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED #endif #define MBEDTLS_SSL_INITIAL_HANDSHAKE 0 #define MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS 1 /* In progress */ ...
If a write returnsMBEDTLS_ERR_SSL_WANT_WRITE,ssl->MBEDTLS_PRIVATE(out_left)might be non-zero. (Aside: what aboutMBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESSorMBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS?) Checkingout_lenis used to flag that there is pending data which must be flushed, or else trying to send...
* #MBEDTLS_ERR_ECP_IN_PROGRESS (or, for functions in the SSL module, * #MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) and then be called later again in * order to further progress and eventually complete their operation. This is * controlled through mbedtls_ecp_set_max_ops() which limi...