Merge pull request #2352 from dgarske/async_v4.1

Fixes for Asynchronous support in v4.1
This commit is contained in:
JacobBarthelmeh
2019-07-16 17:32:18 -06:00
committed by GitHub
2 changed files with 19 additions and 9 deletions

View File

@@ -3369,9 +3369,11 @@ int RsaSign(WOLFSSL* ssl, const byte* in, word32 inSz, byte* out,
#ifdef WOLFSSL_ASYNC_CRYPT
/* initialize event */
ret = wolfSSL_AsyncInit(ssl, &key->asyncDev, WC_ASYNC_FLAG_CALL_AGAIN);
if (ret != 0)
return ret;
if (key) {
ret = wolfSSL_AsyncInit(ssl, &key->asyncDev, WC_ASYNC_FLAG_CALL_AGAIN);
if (ret != 0)
return ret;
}
#endif
#if defined(WC_RSA_PSS)
@@ -3411,7 +3413,7 @@ int RsaSign(WOLFSSL* ssl, const byte* in, word32 inSz, byte* out,
/* Handle async pending response */
#ifdef WOLFSSL_ASYNC_CRYPT
if (ret == WC_PENDING_E) {
if (key && ret == WC_PENDING_E) {
ret = wolfSSL_AsyncPush(ssl, &key->asyncDev);
}
#endif /* WOLFSSL_ASYNC_CRYPT */
@@ -3762,9 +3764,11 @@ int EccSign(WOLFSSL* ssl, const byte* in, word32 inSz, byte* out,
#ifdef WOLFSSL_ASYNC_CRYPT
/* initialize event */
ret = wolfSSL_AsyncInit(ssl, &key->asyncDev, WC_ASYNC_FLAG_CALL_AGAIN);
if (ret != 0)
return ret;
if (key) {
ret = wolfSSL_AsyncInit(ssl, &key->asyncDev, WC_ASYNC_FLAG_CALL_AGAIN);
if (ret != 0)
return ret;
}
#endif
#if defined(HAVE_PK_CALLBACKS)
@@ -3781,7 +3785,7 @@ int EccSign(WOLFSSL* ssl, const byte* in, word32 inSz, byte* out,
/* Handle async pending response */
#ifdef WOLFSSL_ASYNC_CRYPT
if (ret == WC_PENDING_E) {
if (key && ret == WC_PENDING_E) {
ret = wolfSSL_AsyncPush(ssl, &key->asyncDev);
}
#endif /* WOLFSSL_ASYNC_CRYPT */
@@ -24723,6 +24727,12 @@ static int DoSessionTicket(WOLFSSL* ssl, const byte* input, word32* inOutIdx,
}
#endif /* HAVE_ED25519 && !NO_ED25519_CLIENT_AUTH */
#ifdef WOLFSSL_ASYNC_CRYPT
/* handle async pending */
if (ret == WC_PENDING_E)
goto exit_dcv;
#endif
/* Check for error */
if (ret != 0) {
ret = SIG_VERIFY_E;