@@ -4428,17 +4428,22 @@ int wc_ecc_shared_secret(ecc_key* private_key, ecc_key* public_key, byte* out,
44284428 }
44294429
44304430#ifdef WOLF_CRYPTO_CB
4431- err = wc_CryptoCb_Ecdh(private_key, public_key, out, outlen);
4432- #ifndef WOLF_CRYPTO_CB_ONLY_ECC
4433- if (err != CRYPTOCB_UNAVAILABLE)
4434- return err;
4435- /* fall-through when unavailable */
4431+ #ifndef WOLF_CRYPTO_CB_FIND
4432+ if (private_key->devId != INVALID_DEVID)
44364433 #endif
4437- #ifdef WOLF_CRYPTO_CB_ONLY_ECC
4438- if (err == CRYPTOCB_UNAVAILABLE) {
4439- err = NO_VALID_DEVID;
4434+ {
4435+ err = wc_CryptoCb_Ecdh(private_key, public_key, out, outlen);
4436+ #ifndef WOLF_CRYPTO_CB_ONLY_ECC
4437+ if (err != CRYPTOCB_UNAVAILABLE)
4438+ return err;
4439+ /* fall-through when unavailable */
4440+ #endif
4441+ #ifdef WOLF_CRYPTO_CB_ONLY_ECC
4442+ if (err == CRYPTOCB_UNAVAILABLE) {
4443+ err = NO_VALID_DEVID;
4444+ }
4445+ #endif
44404446 }
4441- #endif
44424447#endif
44434448
44444449#ifndef WOLF_CRYPTO_CB_ONLY_ECC
@@ -5324,18 +5329,23 @@ static int _ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key,
53245329 key->flags = (byte)flags;
53255330
53265331#ifdef WOLF_CRYPTO_CB
5327- err = wc_CryptoCb_MakeEccKey(rng, keysize, key, curve_id);
5328- #ifndef WOLF_CRYPTO_CB_ONLY_ECC
5329- if (err != CRYPTOCB_UNAVAILABLE)
5330- return err;
5331- /* fall-through when unavailable */
5332+ #ifndef WOLF_CRYPTO_CB_FIND
5333+ if (key->devId != INVALID_DEVID)
53325334 #endif
5333- #ifdef WOLF_CRYPTO_CB_ONLY_ECC
5334- if (err == CRYPTOCB_UNAVAILABLE) {
5335- return NO_VALID_DEVID;
5335+ {
5336+ err = wc_CryptoCb_MakeEccKey(rng, keysize, key, curve_id);
5337+ #ifndef WOLF_CRYPTO_CB_ONLY_ECC
5338+ if (err != CRYPTOCB_UNAVAILABLE)
5339+ return err;
5340+ /* fall-through when unavailable */
5341+ #endif
5342+ #ifdef WOLF_CRYPTO_CB_ONLY_ECC
5343+ if (err == CRYPTOCB_UNAVAILABLE) {
5344+ return NO_VALID_DEVID;
5345+ }
5346+ return err;
5347+ #endif
53365348 }
5337- return err;
5338- #endif
53395349#endif
53405350
53415351#ifndef WOLF_CRYPTO_CB_ONLY_ECC
@@ -6311,17 +6321,22 @@ int wc_ecc_sign_hash(const byte* in, word32 inlen, byte* out, word32 *outlen,
63116321 }
63126322
63136323#ifdef WOLF_CRYPTO_CB
6314- err = wc_CryptoCb_EccSign(in, inlen, out, outlen, rng, key);
6315- #ifndef WOLF_CRYPTO_CB_ONLY_ECC
6316- if (err != CRYPTOCB_UNAVAILABLE)
6317- return err;
6318- /* fall-through when unavailable */
6324+ #ifndef WOLF_CRYPTO_CB_FIND
6325+ if (key->devId != INVALID_DEVID)
63196326 #endif
6320- #ifdef WOLF_CRYPTO_CB_ONLY_ECC
6321- if (err == CRYPTOCB_UNAVAILABLE) {
6322- err = NO_VALID_DEVID;
6327+ {
6328+ err = wc_CryptoCb_EccSign(in, inlen, out, outlen, rng, key);
6329+ #ifndef WOLF_CRYPTO_CB_ONLY_ECC
6330+ if (err != CRYPTOCB_UNAVAILABLE)
6331+ return err;
6332+ /* fall-through when unavailable */
6333+ #endif
6334+ #ifdef WOLF_CRYPTO_CB_ONLY_ECC
6335+ if (err == CRYPTOCB_UNAVAILABLE) {
6336+ err = NO_VALID_DEVID;
6337+ }
6338+ #endif
63236339 }
6324- #endif
63256340#endif
63266341
63276342#ifndef WOLF_CRYPTO_CB_ONLY_ECC
@@ -8009,17 +8024,22 @@ int wc_ecc_verify_hash(const byte* sig, word32 siglen, const byte* hash,
80098024 }
80108025
80118026#ifdef WOLF_CRYPTO_CB
8012- err = wc_CryptoCb_EccVerify(sig, siglen, hash, hashlen, res, key);
8013- #ifndef WOLF_CRYPTO_CB_ONLY_ECC
8014- if (err != CRYPTOCB_UNAVAILABLE)
8015- return err;
8016- /* fall-through when unavailable */
8027+ #ifndef WOLF_CRYPTO_CB_FIND
8028+ if (key->devId != INVALID_DEVID)
80178029 #endif
8018- #ifdef WOLF_CRYPTO_CB_ONLY_ECC
8019- if (err == CRYPTOCB_UNAVAILABLE) {
8020- err = NO_VALID_DEVID;
8030+ {
8031+ err = wc_CryptoCb_EccVerify(sig, siglen, hash, hashlen, res, key);
8032+ #ifndef WOLF_CRYPTO_CB_ONLY_ECC
8033+ if (err != CRYPTOCB_UNAVAILABLE)
8034+ return err;
8035+ /* fall-through when unavailable */
8036+ #endif
8037+ #ifdef WOLF_CRYPTO_CB_ONLY_ECC
8038+ if (err == CRYPTOCB_UNAVAILABLE) {
8039+ err = NO_VALID_DEVID;
8040+ }
8041+ #endif
80218042 }
8022- #endif
80238043#endif
80248044
80258045#ifndef WOLF_CRYPTO_CB_ONLY_ECC
0 commit comments