mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 10:47:28 +02:00
use flush instead of invalidate
This commit is contained in:
@ -5593,7 +5593,7 @@ static int _ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key,
|
|||||||
|
|
||||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE(XIL_CAST_U64(key->privKey), key->dp->size);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE(XIL_CAST_U64(key->privKey), key->dp->size);
|
||||||
|
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE(XIL_CAST_U64(key->keyRaw),
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE(XIL_CAST_U64(key->keyRaw),
|
||||||
2 * key->dp->size);
|
2 * key->dp->size);
|
||||||
|
|
||||||
err = XSecure_EllipticGenerateKey(&(key->xSec.cinst),
|
err = XSecure_EllipticGenerateKey(&(key->xSec.cinst),
|
||||||
@ -5605,7 +5605,7 @@ static int _ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key,
|
|||||||
err = WC_HW_E;
|
err = WC_HW_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE(XIL_CAST_U64(key->keyRaw),
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE(XIL_CAST_U64(key->keyRaw),
|
||||||
2 * key->dp->size);
|
2 * key->dp->size);
|
||||||
|
|
||||||
#ifdef WOLFSSL_VALIDATE_ECC_KEYGEN
|
#ifdef WOLFSSL_VALIDATE_ECC_KEYGEN
|
||||||
@ -6316,7 +6316,7 @@ static int wc_ecc_sign_hash_hw(const byte* in, word32 inlen,
|
|||||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE(XIL_CAST_U64(key->privKey), keysize);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE(XIL_CAST_U64(key->privKey), keysize);
|
||||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE(XIL_CAST_U64(K), keysize);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE(XIL_CAST_U64(K), keysize);
|
||||||
|
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE(XIL_CAST_U64(out), keysize * 2);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE(XIL_CAST_U64(out), keysize * 2);
|
||||||
|
|
||||||
err = XSecure_EllipticGenerateSign(&(key->xSec.cinst),
|
err = XSecure_EllipticGenerateSign(&(key->xSec.cinst),
|
||||||
xil_curve_type[key->dp->id],
|
xil_curve_type[key->dp->id],
|
||||||
@ -6329,7 +6329,7 @@ static int wc_ecc_sign_hash_hw(const byte* in, word32 inlen,
|
|||||||
err = WC_HW_E;
|
err = WC_HW_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE(XIL_CAST_U64(out), keysize * 2);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE(XIL_CAST_U64(out), keysize * 2);
|
||||||
mp_reverse(&out[0], keysize);
|
mp_reverse(&out[0], keysize);
|
||||||
mp_reverse(&out[keysize], keysize);
|
mp_reverse(&out[keysize], keysize);
|
||||||
|
|
||||||
|
@ -151,7 +151,7 @@ static WC_INLINE int setup(Aes* aes,
|
|||||||
byte *aad_buf = NULL;
|
byte *aad_buf = NULL;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)aes->keyInit,
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)aes->keyInit,
|
||||||
sizeof(aes->keyInit));
|
sizeof(aes->keyInit));
|
||||||
|
|
||||||
if (XSecure_AesWriteKey(&(aes->xSec.cinst), aes->kup, aes->xKeySize,
|
if (XSecure_AesWriteKey(&(aes->xSec.cinst), aes->kup, aes->xKeySize,
|
||||||
@ -164,7 +164,7 @@ static WC_INLINE int setup(Aes* aes,
|
|||||||
XMEMCPY(iv_, iv, AEAD_NONCE_SZ);
|
XMEMCPY(iv_, iv, AEAD_NONCE_SZ);
|
||||||
piv = iv_;
|
piv = iv_;
|
||||||
}
|
}
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)piv, AEAD_NONCE_SZ);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)piv, AEAD_NONCE_SZ);
|
||||||
|
|
||||||
if (init(&(aes->xSec.cinst), aes->kup, aes->xKeySize, XIL_CAST_U64(piv))) {
|
if (init(&(aes->xSec.cinst), aes->kup, aes->xKeySize, XIL_CAST_U64(piv))) {
|
||||||
WOLFSSL_XIL_MSG("Failed to init");
|
WOLFSSL_XIL_MSG("Failed to init");
|
||||||
@ -195,7 +195,7 @@ static WC_INLINE int setup(Aes* aes,
|
|||||||
XMEMCPY((void* )aad, authIn, authInSz);
|
XMEMCPY((void* )aad, authIn, authInSz);
|
||||||
}
|
}
|
||||||
|
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)aad, authInSz);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)aad, authInSz);
|
||||||
|
|
||||||
if (XSecure_AesUpdateAad(&(aes->xSec.cinst), XIL_CAST_U64(authIn),
|
if (XSecure_AesUpdateAad(&(aes->xSec.cinst), XIL_CAST_U64(authIn),
|
||||||
authInSz)) {
|
authInSz)) {
|
||||||
@ -296,9 +296,9 @@ int wc_AesGcmEncrypt( Aes* aes, byte* out,
|
|||||||
out_aligned = out;
|
out_aligned = out;
|
||||||
}
|
}
|
||||||
|
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)in_aligned, sz);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)in_aligned, sz);
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)out_aligned, sz);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)out_aligned, sz);
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)tag, sizeof(tag));
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)tag, sizeof(tag));
|
||||||
|
|
||||||
if (XSecure_AesEncryptUpdate(&(aes->xSec.cinst), XIL_CAST_U64(in_aligned),
|
if (XSecure_AesEncryptUpdate(&(aes->xSec.cinst), XIL_CAST_U64(in_aligned),
|
||||||
XIL_CAST_U64(out_aligned), sz, TRUE)) {
|
XIL_CAST_U64(out_aligned), sz, TRUE)) {
|
||||||
@ -313,8 +313,8 @@ int wc_AesGcmEncrypt( Aes* aes, byte* out,
|
|||||||
ret = WC_HW_E;
|
ret = WC_HW_E;
|
||||||
ForceZero(authTag, authTagSz);
|
ForceZero(authTag, authTagSz);
|
||||||
} else {
|
} else {
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)out_aligned, sz);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)out_aligned, sz);
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)tag, sizeof(tag));
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)tag, sizeof(tag));
|
||||||
|
|
||||||
if (aes->aadStyle == SW_AAD) {
|
if (aes->aadStyle == SW_AAD) {
|
||||||
ret = handle_aad(aes, out_aligned, sz, iv, authTag, authIn,
|
ret = handle_aad(aes, out_aligned, sz, iv, authTag, authIn,
|
||||||
@ -411,8 +411,8 @@ int wc_AesGcmDecrypt( Aes* aes, byte* out,
|
|||||||
out_aligned = out;
|
out_aligned = out;
|
||||||
}
|
}
|
||||||
|
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)in_aligned, sz);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)in_aligned, sz);
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)out_aligned, sz);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)out_aligned, sz);
|
||||||
|
|
||||||
if (aes->aadStyle == HW_ENGINE_AAD) {
|
if (aes->aadStyle == HW_ENGINE_AAD) {
|
||||||
/* Use the originally provided tag */
|
/* Use the originally provided tag */
|
||||||
@ -441,14 +441,14 @@ int wc_AesGcmDecrypt( Aes* aes, byte* out,
|
|||||||
goto error_out;
|
goto error_out;
|
||||||
}
|
}
|
||||||
|
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)tag, AES_GCM_AUTH_SZ);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)tag, AES_GCM_AUTH_SZ);
|
||||||
|
|
||||||
if (XSecure_AesDecryptFinal(&(aes->xSec.cinst), XIL_CAST_U64(tag))) {
|
if (XSecure_AesDecryptFinal(&(aes->xSec.cinst), XIL_CAST_U64(tag))) {
|
||||||
WOLFSSL_XIL_MSG("DecryptFinal failed");
|
WOLFSSL_XIL_MSG("DecryptFinal failed");
|
||||||
ret = WC_HW_E;
|
ret = WC_HW_E;
|
||||||
} else {
|
} else {
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)out_aligned, sz);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)out_aligned, sz);
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)buf, sizeof(buf));
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)buf, sizeof(buf));
|
||||||
|
|
||||||
if (aes->aadStyle == SW_AAD) {
|
if (aes->aadStyle == SW_AAD) {
|
||||||
if (ConstantCompare(authTag, real_tag, authTagSz) != 0) {
|
if (ConstantCompare(authTag, real_tag, authTagSz) != 0) {
|
||||||
|
@ -74,7 +74,7 @@ int wc_Sha3_384_Update(wc_Sha3* sha, const byte* data, word32 len)
|
|||||||
if (sha == NULL || (data == NULL && len > 0)) {
|
if (sha == NULL || (data == NULL && len > 0)) {
|
||||||
return BAD_FUNC_ARG;
|
return BAD_FUNC_ARG;
|
||||||
}
|
}
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)data, len);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)data, len);
|
||||||
XSecure_Sha3Update(&(sha->xSec.cinst), XIL_CAST_U64(data), len);
|
XSecure_Sha3Update(&(sha->xSec.cinst), XIL_CAST_U64(data), len);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -91,7 +91,7 @@ int wc_Sha3_384_Final(wc_Sha3* sha, byte* out)
|
|||||||
if (sha == NULL || out == NULL) {
|
if (sha == NULL || out == NULL) {
|
||||||
return BAD_FUNC_ARG;
|
return BAD_FUNC_ARG;
|
||||||
}
|
}
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)out, WC_SHA3_384_DIGEST_SIZE);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)out, WC_SHA3_384_DIGEST_SIZE);
|
||||||
XSecure_Sha3Finish(&(sha->xSec.cinst), XIL_CAST_U64(out));
|
XSecure_Sha3Finish(&(sha->xSec.cinst), XIL_CAST_U64(out));
|
||||||
|
|
||||||
return wc_InitSha3_384(sha, NULL, INVALID_DEVID);
|
return wc_InitSha3_384(sha, NULL, INVALID_DEVID);
|
||||||
|
@ -2121,7 +2121,7 @@ static int wc_RsaFunctionSync(const byte* in, word32 inLen, byte* out,
|
|||||||
XIL_CAST_U64(out)) != XST_SUCCESS) {
|
XIL_CAST_U64(out)) != XST_SUCCESS) {
|
||||||
ret = BAD_STATE_E;
|
ret = BAD_STATE_E;
|
||||||
}
|
}
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)out, inLen);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)out, inLen);
|
||||||
#else
|
#else
|
||||||
if (XSecure_RsaPrivateDecrypt(&rsa, (u8*)in, inLen, out) !=
|
if (XSecure_RsaPrivateDecrypt(&rsa, (u8*)in, inLen, out) !=
|
||||||
XST_SUCCESS) {
|
XST_SUCCESS) {
|
||||||
@ -2149,7 +2149,7 @@ static int wc_RsaFunctionSync(const byte* in, word32 inLen, byte* out,
|
|||||||
WOLFSSL_MSG("RSA public operation failed");
|
WOLFSSL_MSG("RSA public operation failed");
|
||||||
ret = BAD_STATE_E;
|
ret = BAD_STATE_E;
|
||||||
}
|
}
|
||||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)out, inLen);
|
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)out, inLen);
|
||||||
#elif defined(WOLFSSL_XILINX_CRYPTO_OLD)
|
#elif defined(WOLFSSL_XILINX_CRYPTO_OLD)
|
||||||
if (XSecure_RsaDecrypt(&(key->xRsa), in, out) != XST_SUCCESS) {
|
if (XSecure_RsaDecrypt(&(key->xRsa), in, out) != XST_SUCCESS) {
|
||||||
ret = BAD_STATE_E;
|
ret = BAD_STATE_E;
|
||||||
|
Reference in New Issue
Block a user