mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-02 12:14:38 +02:00
Merge pull request #5544 from haydenroche5/async_sw
Migrate async names from "test" to "software."
This commit is contained in:
19
configure.ac
19
configure.ac
@@ -6985,6 +6985,17 @@ then
|
|||||||
AC_MSG_ERROR([please use --with-libz if enabling mcapi.])
|
AC_MSG_ERROR([please use --with-libz if enabling mcapi.])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Asynchronous crypto using software (i.e. not hardware). Required for
|
||||||
|
# non-blocking crypto with TLS/DTLS.
|
||||||
|
AC_ARG_ENABLE([asynccrypt-sw],
|
||||||
|
[AS_HELP_STRING([--enable-asynccrypt-sw],[Enable asynchronous software-based crypto (default: disabled)])],
|
||||||
|
[ ENABLED_ASYNCCRYPT_SW=$enableval ],
|
||||||
|
[ ENABLED_ASYNCCRYPT_SW=no ]
|
||||||
|
)
|
||||||
|
if test "$ENABLED_ASYNCCRYPT_SW" = "yes"
|
||||||
|
then
|
||||||
|
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_ASYNC_CRYPT_SW"
|
||||||
|
fi
|
||||||
|
|
||||||
# Asynchronous Crypto
|
# Asynchronous Crypto
|
||||||
AC_ARG_ENABLE([asynccrypt],
|
AC_ARG_ENABLE([asynccrypt],
|
||||||
@@ -6997,11 +7008,13 @@ if test "$ENABLED_ASYNCCRYPT" = "yes"
|
|||||||
then
|
then
|
||||||
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_ASYNC_CRYPT -DHAVE_WOLF_EVENT -DHAVE_WOLF_BIGINT -DWOLFSSL_NO_HASH_RAW"
|
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_ASYNC_CRYPT -DHAVE_WOLF_EVENT -DHAVE_WOLF_BIGINT -DWOLFSSL_NO_HASH_RAW"
|
||||||
|
|
||||||
# if no async hardware then use simulator for testing
|
# If no async backend (hardware or software) has been explicitly enabled,
|
||||||
if test "x$ENABLED_CAVIUM" = "xno" && test "x$ENABLED_INTEL_QA" = "xno"
|
# use the software backend for testing.
|
||||||
|
if test "x$ENABLED_CAVIUM" = "xno" && test "x$ENABLED_INTEL_QA" = "xno" &&
|
||||||
|
test "x$ENABLED_ASYNCCRYPT_SW" = "xno"
|
||||||
then
|
then
|
||||||
# Async threading is Linux specific
|
# Async threading is Linux specific
|
||||||
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_ASYNC_CRYPT_TEST"
|
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_ASYNC_CRYPT_SW"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@@ -4038,13 +4038,13 @@ int wc_AesSetIV(Aes* aes, const byte* iv)
|
|||||||
return IntelQaSymAesCbcEncrypt(&aes->asyncDev, out, in, sz,
|
return IntelQaSymAesCbcEncrypt(&aes->asyncDev, out, in, sz,
|
||||||
(const byte*)aes->devKey, aes->keylen,
|
(const byte*)aes->devKey, aes->keylen,
|
||||||
(byte*)aes->reg, AES_BLOCK_SIZE);
|
(byte*)aes->reg, AES_BLOCK_SIZE);
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_SW */
|
||||||
if (wc_AsyncTestInit(&aes->asyncDev, ASYNC_TEST_AES_CBC_ENCRYPT)) {
|
if (wc_AsyncSwInit(&aes->asyncDev, ASYNC_SW_AES_CBC_ENCRYPT)) {
|
||||||
WC_ASYNC_TEST* testDev = &aes->asyncDev.test;
|
WC_ASYNC_SW* sw = &aes->asyncDev.sw;
|
||||||
testDev->aes.aes = aes;
|
sw->aes.aes = aes;
|
||||||
testDev->aes.out = out;
|
sw->aes.out = out;
|
||||||
testDev->aes.in = in;
|
sw->aes.in = in;
|
||||||
testDev->aes.sz = sz;
|
sw->aes.sz = sz;
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -4163,13 +4163,13 @@ int wc_AesSetIV(Aes* aes, const byte* iv)
|
|||||||
return IntelQaSymAesCbcDecrypt(&aes->asyncDev, out, in, sz,
|
return IntelQaSymAesCbcDecrypt(&aes->asyncDev, out, in, sz,
|
||||||
(const byte*)aes->devKey, aes->keylen,
|
(const byte*)aes->devKey, aes->keylen,
|
||||||
(byte*)aes->reg, AES_BLOCK_SIZE);
|
(byte*)aes->reg, AES_BLOCK_SIZE);
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_SW */
|
||||||
if (wc_AsyncTestInit(&aes->asyncDev, ASYNC_TEST_AES_CBC_DECRYPT)) {
|
if (wc_AsyncSwInit(&aes->asyncDev, ASYNC_SW_AES_CBC_DECRYPT)) {
|
||||||
WC_ASYNC_TEST* testDev = &aes->asyncDev.test;
|
WC_ASYNC_SW* sw = &aes->asyncDev.sw;
|
||||||
testDev->aes.aes = aes;
|
sw->aes.aes = aes;
|
||||||
testDev->aes.out = out;
|
sw->aes.out = out;
|
||||||
testDev->aes.in = in;
|
sw->aes.in = in;
|
||||||
testDev->aes.sz = sz;
|
sw->aes.sz = sz;
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -7825,19 +7825,19 @@ int wc_AesGcmEncrypt(Aes* aes, byte* out, const byte* in, word32 sz,
|
|||||||
return IntelQaSymAesGcmEncrypt(&aes->asyncDev, out, in, sz,
|
return IntelQaSymAesGcmEncrypt(&aes->asyncDev, out, in, sz,
|
||||||
(const byte*)aes->devKey, aes->keylen, iv, ivSz,
|
(const byte*)aes->devKey, aes->keylen, iv, ivSz,
|
||||||
authTag, authTagSz, authIn, authInSz);
|
authTag, authTagSz, authIn, authInSz);
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_SW */
|
||||||
if (wc_AsyncTestInit(&aes->asyncDev, ASYNC_TEST_AES_GCM_ENCRYPT)) {
|
if (wc_AsyncSwInit(&aes->asyncDev, ASYNC_SW_AES_GCM_ENCRYPT)) {
|
||||||
WC_ASYNC_TEST* testDev = &aes->asyncDev.test;
|
WC_ASYNC_SW* sw = &aes->asyncDev.sw;
|
||||||
testDev->aes.aes = aes;
|
sw->aes.aes = aes;
|
||||||
testDev->aes.out = out;
|
sw->aes.out = out;
|
||||||
testDev->aes.in = in;
|
sw->aes.in = in;
|
||||||
testDev->aes.sz = sz;
|
sw->aes.sz = sz;
|
||||||
testDev->aes.iv = iv;
|
sw->aes.iv = iv;
|
||||||
testDev->aes.ivSz = ivSz;
|
sw->aes.ivSz = ivSz;
|
||||||
testDev->aes.authTag = authTag;
|
sw->aes.authTag = authTag;
|
||||||
testDev->aes.authTagSz = authTagSz;
|
sw->aes.authTagSz = authTagSz;
|
||||||
testDev->aes.authIn = authIn;
|
sw->aes.authIn = authIn;
|
||||||
testDev->aes.authInSz = authInSz;
|
sw->aes.authInSz = authInSz;
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -8370,19 +8370,19 @@ int wc_AesGcmDecrypt(Aes* aes, byte* out, const byte* in, word32 sz,
|
|||||||
return IntelQaSymAesGcmDecrypt(&aes->asyncDev, out, in, sz,
|
return IntelQaSymAesGcmDecrypt(&aes->asyncDev, out, in, sz,
|
||||||
(const byte*)aes->devKey, aes->keylen, iv, ivSz,
|
(const byte*)aes->devKey, aes->keylen, iv, ivSz,
|
||||||
authTag, authTagSz, authIn, authInSz);
|
authTag, authTagSz, authIn, authInSz);
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_SW */
|
||||||
if (wc_AsyncTestInit(&aes->asyncDev, ASYNC_TEST_AES_GCM_DECRYPT)) {
|
if (wc_AsyncSwInit(&aes->asyncDev, ASYNC_SW_AES_GCM_DECRYPT)) {
|
||||||
WC_ASYNC_TEST* testDev = &aes->asyncDev.test;
|
WC_ASYNC_SW* sw = &aes->asyncDev.sw;
|
||||||
testDev->aes.aes = aes;
|
sw->aes.aes = aes;
|
||||||
testDev->aes.out = out;
|
sw->aes.out = out;
|
||||||
testDev->aes.in = in;
|
sw->aes.in = in;
|
||||||
testDev->aes.sz = sz;
|
sw->aes.sz = sz;
|
||||||
testDev->aes.iv = iv;
|
sw->aes.iv = iv;
|
||||||
testDev->aes.ivSz = ivSz;
|
sw->aes.ivSz = ivSz;
|
||||||
testDev->aes.authTag = (byte*)authTag;
|
sw->aes.authTag = (byte*)authTag;
|
||||||
testDev->aes.authTagSz = authTagSz;
|
sw->aes.authTagSz = authTagSz;
|
||||||
testDev->aes.authIn = authIn;
|
sw->aes.authIn = authIn;
|
||||||
testDev->aes.authInSz = authInSz;
|
sw->aes.authInSz = authInSz;
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1703,13 +1703,13 @@
|
|||||||
#elif defined(HAVE_INTEL_QA)
|
#elif defined(HAVE_INTEL_QA)
|
||||||
return IntelQaSymDes3CbcEncrypt(&des->asyncDev, out, in, sz,
|
return IntelQaSymDes3CbcEncrypt(&des->asyncDev, out, in, sz,
|
||||||
(const byte*)des->devKey, DES3_KEYLEN, (byte*)des->reg, DES3_IVLEN);
|
(const byte*)des->devKey, DES3_KEYLEN, (byte*)des->reg, DES3_IVLEN);
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_SW */
|
||||||
if (wc_AsyncTestInit(&des->asyncDev, ASYNC_TEST_DES3_CBC_ENCRYPT)) {
|
if (wc_AsyncSwInit(&des->asyncDev, ASYNC_SW_DES3_CBC_ENCRYPT)) {
|
||||||
WC_ASYNC_TEST* testDev = &des->asyncDev.test;
|
WC_ASYNC_SW* sw = &des->asyncDev.sw;
|
||||||
testDev->des.des = des;
|
sw->des.des = des;
|
||||||
testDev->des.out = out;
|
sw->des.out = out;
|
||||||
testDev->des.in = in;
|
sw->des.in = in;
|
||||||
testDev->des.sz = sz;
|
sw->des.sz = sz;
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -1754,13 +1754,13 @@
|
|||||||
#elif defined(HAVE_INTEL_QA)
|
#elif defined(HAVE_INTEL_QA)
|
||||||
return IntelQaSymDes3CbcDecrypt(&des->asyncDev, out, in, sz,
|
return IntelQaSymDes3CbcDecrypt(&des->asyncDev, out, in, sz,
|
||||||
(const byte*)des->devKey, DES3_KEYLEN, (byte*)des->reg, DES3_IVLEN);
|
(const byte*)des->devKey, DES3_KEYLEN, (byte*)des->reg, DES3_IVLEN);
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_SW */
|
||||||
if (wc_AsyncTestInit(&des->asyncDev, ASYNC_TEST_DES3_CBC_DECRYPT)) {
|
if (wc_AsyncSwInit(&des->asyncDev, ASYNC_SW_DES3_CBC_DECRYPT)) {
|
||||||
WC_ASYNC_TEST* testDev = &des->asyncDev.test;
|
WC_ASYNC_SW* sw = &des->asyncDev.sw;
|
||||||
testDev->des.des = des;
|
sw->des.des = des;
|
||||||
testDev->des.out = out;
|
sw->des.out = out;
|
||||||
testDev->des.in = in;
|
sw->des.in = in;
|
||||||
testDev->des.sz = sz;
|
sw->des.sz = sz;
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1434,15 +1434,15 @@ static int wc_DhGenerateKeyPair_Async(DhKey* key, WC_RNG* rng,
|
|||||||
#elif defined(HAVE_CAVIUM)
|
#elif defined(HAVE_CAVIUM)
|
||||||
/* TODO: Not implemented - use software for now */
|
/* TODO: Not implemented - use software for now */
|
||||||
|
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_SW */
|
||||||
if (wc_AsyncTestInit(&key->asyncDev, ASYNC_TEST_DH_GEN)) {
|
if (wc_AsyncSwInit(&key->asyncDev, ASYNC_SW_DH_GEN)) {
|
||||||
WC_ASYNC_TEST* testDev = &key->asyncDev.test;
|
WC_ASYNC_SW* sw = &key->asyncDev.sw;
|
||||||
testDev->dhGen.key = key;
|
sw->dhGen.key = key;
|
||||||
testDev->dhGen.rng = rng;
|
sw->dhGen.rng = rng;
|
||||||
testDev->dhGen.priv = priv;
|
sw->dhGen.priv = priv;
|
||||||
testDev->dhGen.privSz = privSz;
|
sw->dhGen.privSz = privSz;
|
||||||
testDev->dhGen.pub = pub;
|
sw->dhGen.pub = pub;
|
||||||
testDev->dhGen.pubSz = pubSz;
|
sw->dhGen.pubSz = pubSz;
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -2187,16 +2187,16 @@ static int wc_DhAgree_Async(DhKey* key, byte* agree, word32* agreeSz,
|
|||||||
#elif defined(HAVE_CAVIUM)
|
#elif defined(HAVE_CAVIUM)
|
||||||
/* TODO: Not implemented - use software for now */
|
/* TODO: Not implemented - use software for now */
|
||||||
|
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_SW */
|
||||||
if (wc_AsyncTestInit(&key->asyncDev, ASYNC_TEST_DH_AGREE)) {
|
if (wc_AsyncSwInit(&key->asyncDev, ASYNC_SW_DH_AGREE)) {
|
||||||
WC_ASYNC_TEST* testDev = &key->asyncDev.test;
|
WC_ASYNC_SW* sw = &key->asyncDev.sw;
|
||||||
testDev->dhAgree.key = key;
|
sw->dhAgree.key = key;
|
||||||
testDev->dhAgree.agree = agree;
|
sw->dhAgree.agree = agree;
|
||||||
testDev->dhAgree.agreeSz = agreeSz;
|
sw->dhAgree.agreeSz = agreeSz;
|
||||||
testDev->dhAgree.priv = priv;
|
sw->dhAgree.priv = priv;
|
||||||
testDev->dhAgree.privSz = privSz;
|
sw->dhAgree.privSz = privSz;
|
||||||
testDev->dhAgree.otherPub = otherPub;
|
sw->dhAgree.otherPub = otherPub;
|
||||||
testDev->dhAgree.pubSz = pubSz;
|
sw->dhAgree.pubSz = pubSz;
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -4609,13 +4609,13 @@ static int wc_ecc_shared_secret_gen_async(ecc_key* private_key,
|
|||||||
FREE_CURVE_SPECS();
|
FREE_CURVE_SPECS();
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
#elif defined(WOLFSSL_ASYNC_CRYPT_TEST)
|
#elif defined(WOLFSSL_ASYNC_CRYPT_SW)
|
||||||
if (wc_AsyncTestInit(&private_key->asyncDev, ASYNC_TEST_ECC_SHARED_SEC)) {
|
if (wc_AsyncSwInit(&private_key->asyncDev, ASYNC_SW_ECC_SHARED_SEC)) {
|
||||||
WC_ASYNC_TEST* testDev = &private_key->asyncDev.test;
|
WC_ASYNC_SW* sw = &private_key->asyncDev.sw;
|
||||||
testDev->eccSharedSec.private_key = private_key;
|
sw->eccSharedSec.private_key = private_key;
|
||||||
testDev->eccSharedSec.public_point = point;
|
sw->eccSharedSec.public_point = point;
|
||||||
testDev->eccSharedSec.out = out;
|
sw->eccSharedSec.out = out;
|
||||||
testDev->eccSharedSec.outLen = outlen;
|
sw->eccSharedSec.outLen = outlen;
|
||||||
wc_ecc_curve_free(curve);
|
wc_ecc_curve_free(curve);
|
||||||
FREE_CURVE_SPECS();
|
FREE_CURVE_SPECS();
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
@@ -5188,12 +5188,12 @@ static int _ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key,
|
|||||||
#elif defined(HAVE_INTEL_QA)
|
#elif defined(HAVE_INTEL_QA)
|
||||||
/* Implemented in ecc_make_pub_ex for the pub calc */
|
/* Implemented in ecc_make_pub_ex for the pub calc */
|
||||||
#else
|
#else
|
||||||
if (wc_AsyncTestInit(&key->asyncDev, ASYNC_TEST_ECC_MAKE)) {
|
if (wc_AsyncSwInit(&key->asyncDev, ASYNC_SW_ECC_MAKE)) {
|
||||||
WC_ASYNC_TEST* testDev = &key->asyncDev.test;
|
WC_ASYNC_SW* sw = &key->asyncDev.sw;
|
||||||
testDev->eccMake.rng = rng;
|
sw->eccMake.rng = rng;
|
||||||
testDev->eccMake.key = key;
|
sw->eccMake.key = key;
|
||||||
testDev->eccMake.size = keysize;
|
sw->eccMake.size = keysize;
|
||||||
testDev->eccMake.curve_id = curve_id;
|
sw->eccMake.curve_id = curve_id;
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -5912,8 +5912,8 @@ static int wc_ecc_sign_hash_async(const byte* in, word32 inlen, byte* out,
|
|||||||
/* Nitrox requires r and s in sep buffer, so split it */
|
/* Nitrox requires r and s in sep buffer, so split it */
|
||||||
NitroxEccRsSplit(key, &r->raw, &s->raw);
|
NitroxEccRsSplit(key, &r->raw, &s->raw);
|
||||||
#endif
|
#endif
|
||||||
#ifndef WOLFSSL_ASYNC_CRYPT_TEST
|
#ifndef WOLFSSL_ASYNC_CRYPT_SW
|
||||||
/* only do this if not simulator, since it overwrites result */
|
/* only do this if not software, since it overwrites result */
|
||||||
wc_bigint_to_mp(&r->raw, r);
|
wc_bigint_to_mp(&r->raw, r);
|
||||||
wc_bigint_to_mp(&s->raw, s);
|
wc_bigint_to_mp(&s->raw, s);
|
||||||
#endif
|
#endif
|
||||||
@@ -6495,16 +6495,16 @@ int wc_ecc_sign_hash_ex(const byte* in, word32 inlen, WC_RNG* rng,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_ECC) && \
|
#if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_ECC) && \
|
||||||
defined(WOLFSSL_ASYNC_CRYPT_TEST)
|
defined(WOLFSSL_ASYNC_CRYPT_SW)
|
||||||
if (key->asyncDev.marker == WOLFSSL_ASYNC_MARKER_ECC) {
|
if (key->asyncDev.marker == WOLFSSL_ASYNC_MARKER_ECC) {
|
||||||
if (wc_AsyncTestInit(&key->asyncDev, ASYNC_TEST_ECC_SIGN)) {
|
if (wc_AsyncSwInit(&key->asyncDev, ASYNC_SW_ECC_SIGN)) {
|
||||||
WC_ASYNC_TEST* testDev = &key->asyncDev.test;
|
WC_ASYNC_SW* sw = &key->asyncDev.sw;
|
||||||
testDev->eccSign.in = in;
|
sw->eccSign.in = in;
|
||||||
testDev->eccSign.inSz = inlen;
|
sw->eccSign.inSz = inlen;
|
||||||
testDev->eccSign.rng = rng;
|
sw->eccSign.rng = rng;
|
||||||
testDev->eccSign.key = key;
|
sw->eccSign.key = key;
|
||||||
testDev->eccSign.r = r;
|
sw->eccSign.r = r;
|
||||||
testDev->eccSign.s = s;
|
sw->eccSign.s = s;
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7893,16 +7893,16 @@ int wc_ecc_verify_hash_ex(mp_int *r, mp_int *s, const byte* hash,
|
|||||||
keySz = key->dp->size;
|
keySz = key->dp->size;
|
||||||
|
|
||||||
#if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_ECC) && \
|
#if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_ECC) && \
|
||||||
defined(WOLFSSL_ASYNC_CRYPT_TEST)
|
defined(WOLFSSL_ASYNC_CRYPT_SW)
|
||||||
if (key->asyncDev.marker == WOLFSSL_ASYNC_MARKER_ECC) {
|
if (key->asyncDev.marker == WOLFSSL_ASYNC_MARKER_ECC) {
|
||||||
if (wc_AsyncTestInit(&key->asyncDev, ASYNC_TEST_ECC_VERIFY)) {
|
if (wc_AsyncSwInit(&key->asyncDev, ASYNC_SW_ECC_VERIFY)) {
|
||||||
WC_ASYNC_TEST* testDev = &key->asyncDev.test;
|
WC_ASYNC_SW* sw = &key->asyncDev.sw;
|
||||||
testDev->eccVerify.r = r;
|
sw->eccVerify.r = r;
|
||||||
testDev->eccVerify.s = s;
|
sw->eccVerify.s = s;
|
||||||
testDev->eccVerify.hash = hash;
|
sw->eccVerify.hash = hash;
|
||||||
testDev->eccVerify.hashlen = hashlen;
|
sw->eccVerify.hashlen = hashlen;
|
||||||
testDev->eccVerify.stat = res;
|
sw->eccVerify.stat = res;
|
||||||
testDev->eccVerify.key = key;
|
sw->eccVerify.key = key;
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2754,19 +2754,19 @@ static int wc_RsaFunctionAsync(const byte* in, word32 inLen, byte* out,
|
|||||||
|
|
||||||
(void)rng;
|
(void)rng;
|
||||||
|
|
||||||
#ifdef WOLFSSL_ASYNC_CRYPT_TEST
|
#ifdef WOLFSSL_ASYNC_CRYPT_SW
|
||||||
if (wc_AsyncTestInit(&key->asyncDev, ASYNC_TEST_RSA_FUNC)) {
|
if (wc_AsyncSwInit(&key->asyncDev, ASYNC_SW_RSA_FUNC)) {
|
||||||
WC_ASYNC_TEST* testDev = &key->asyncDev.test;
|
WC_ASYNC_SW* sw = &key->asyncDev.sw;
|
||||||
testDev->rsaFunc.in = in;
|
sw->rsaFunc.in = in;
|
||||||
testDev->rsaFunc.inSz = inLen;
|
sw->rsaFunc.inSz = inLen;
|
||||||
testDev->rsaFunc.out = out;
|
sw->rsaFunc.out = out;
|
||||||
testDev->rsaFunc.outSz = outLen;
|
sw->rsaFunc.outSz = outLen;
|
||||||
testDev->rsaFunc.type = type;
|
sw->rsaFunc.type = type;
|
||||||
testDev->rsaFunc.key = key;
|
sw->rsaFunc.key = key;
|
||||||
testDev->rsaFunc.rng = rng;
|
sw->rsaFunc.rng = rng;
|
||||||
return WC_PENDING_E;
|
return WC_PENDING_E;
|
||||||
}
|
}
|
||||||
#endif /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#endif /* WOLFSSL_ASYNC_CRYPT_SW */
|
||||||
|
|
||||||
switch(type) {
|
switch(type) {
|
||||||
#ifndef WOLFSSL_RSA_PUBLIC_ONLY
|
#ifndef WOLFSSL_RSA_PUBLIC_ONLY
|
||||||
@@ -2790,7 +2790,7 @@ static int wc_RsaFunctionAsync(const byte* in, word32 inLen, byte* out,
|
|||||||
&key->u.raw,
|
&key->u.raw,
|
||||||
out, outLen);
|
out, outLen);
|
||||||
#endif
|
#endif
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_SW */
|
||||||
ret = wc_RsaFunctionSync(in, inLen, out, outLen, type, key, rng);
|
ret = wc_RsaFunctionSync(in, inLen, out, outLen, type, key, rng);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
@@ -2808,7 +2808,7 @@ static int wc_RsaFunctionAsync(const byte* in, word32 inLen, byte* out,
|
|||||||
ret = IntelQaRsaPublic(&key->asyncDev, in, inLen,
|
ret = IntelQaRsaPublic(&key->asyncDev, in, inLen,
|
||||||
&key->e.raw, &key->n.raw,
|
&key->e.raw, &key->n.raw,
|
||||||
out, outLen);
|
out, outLen);
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_SW */
|
||||||
ret = wc_RsaFunctionSync(in, inLen, out, outLen, type, key, rng);
|
ret = wc_RsaFunctionSync(in, inLen, out, outLen, type, key, rng);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
@@ -4649,12 +4649,12 @@ int wc_MakeRsaKey(RsaKey* key, int size, long e, WC_RNG* rng)
|
|||||||
err = IntelQaRsaKeyGen(&key->asyncDev, key, size, e, rng);
|
err = IntelQaRsaKeyGen(&key->asyncDev, key, size, e, rng);
|
||||||
goto out;
|
goto out;
|
||||||
#else
|
#else
|
||||||
if (wc_AsyncTestInit(&key->asyncDev, ASYNC_TEST_RSA_MAKE)) {
|
if (wc_AsyncSwInit(&key->asyncDev, ASYNC_SW_RSA_MAKE)) {
|
||||||
WC_ASYNC_TEST* testDev = &key->asyncDev.test;
|
WC_ASYNC_SW* sw = &key->asyncDev.sw;
|
||||||
testDev->rsaMake.rng = rng;
|
sw->rsaMake.rng = rng;
|
||||||
testDev->rsaMake.key = key;
|
sw->rsaMake.key = key;
|
||||||
testDev->rsaMake.size = size;
|
sw->rsaMake.size = size;
|
||||||
testDev->rsaMake.e = e;
|
sw->rsaMake.e = e;
|
||||||
err = WC_PENDING_E;
|
err = WC_PENDING_E;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@@ -2241,21 +2241,21 @@ extern void uITRON4_free(void *p) ;
|
|||||||
|
|
||||||
/* Asynchronous Crypto */
|
/* Asynchronous Crypto */
|
||||||
#ifdef WOLFSSL_ASYNC_CRYPT
|
#ifdef WOLFSSL_ASYNC_CRYPT
|
||||||
|
#if !defined(HAVE_CAVIUM) && !defined(HAVE_INTEL_QA) && \
|
||||||
|
!defined(WOLFSSL_ASYNC_CRYPT_SW)
|
||||||
|
#error No async backend defined with WOLFSSL_ASYNC_CRYPT!
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Make sure wolf events are enabled */
|
/* Make sure wolf events are enabled */
|
||||||
#undef HAVE_WOLF_EVENT
|
#undef HAVE_WOLF_EVENT
|
||||||
#define HAVE_WOLF_EVENT
|
#define HAVE_WOLF_EVENT
|
||||||
|
|
||||||
#ifdef WOLFSSL_ASYNC_CRYPT_TEST
|
#ifdef WOLFSSL_ASYNC_CRYPT_SW
|
||||||
#define WC_ASYNC_DEV_SIZE 168
|
#define WC_ASYNC_DEV_SIZE 168
|
||||||
#else
|
#else
|
||||||
#define WC_ASYNC_DEV_SIZE 336
|
#define WC_ASYNC_DEV_SIZE 336
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(HAVE_CAVIUM) && !defined(HAVE_INTEL_QA) && \
|
|
||||||
!defined(WOLFSSL_ASYNC_CRYPT_TEST)
|
|
||||||
#error No async hardware defined with WOLFSSL_ASYNC_CRYPT!
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Enable ECC_CACHE_CURVE for ASYNC */
|
/* Enable ECC_CACHE_CURVE for ASYNC */
|
||||||
#if !defined(ECC_CACHE_CURVE)
|
#if !defined(ECC_CACHE_CURVE)
|
||||||
#define ECC_CACHE_CURVE
|
#define ECC_CACHE_CURVE
|
||||||
|
Reference in New Issue
Block a user