mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-29 18:27:29 +02:00
Merge pull request #6707 from JacobBarthelmeh/xilinx
use flush instead of invalidate
This commit is contained in:
@ -5603,7 +5603,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_INVALIDATE_RANGE(XIL_CAST_U64(key->keyRaw),
|
||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE(XIL_CAST_U64(key->keyRaw),
|
||||
2 * key->dp->size);
|
||||
|
||||
err = XSecure_EllipticGenerateKey(&(key->xSec.cinst),
|
||||
@ -5615,7 +5615,7 @@ static int _ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key,
|
||||
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);
|
||||
|
||||
#ifdef WOLFSSL_VALIDATE_ECC_KEYGEN
|
||||
@ -6326,7 +6326,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(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),
|
||||
xil_curve_type[key->dp->id],
|
||||
@ -6339,7 +6339,7 @@ static int wc_ecc_sign_hash_hw(const byte* in, word32 inlen,
|
||||
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[keysize], keysize);
|
||||
|
||||
|
@ -151,7 +151,7 @@ static WC_INLINE int setup(Aes* aes,
|
||||
byte *aad_buf = NULL;
|
||||
int err;
|
||||
|
||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)aes->keyInit,
|
||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)aes->keyInit,
|
||||
sizeof(aes->keyInit));
|
||||
|
||||
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);
|
||||
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))) {
|
||||
WOLFSSL_XIL_MSG("Failed to init");
|
||||
@ -195,7 +195,7 @@ static WC_INLINE int setup(Aes* aes,
|
||||
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),
|
||||
authInSz)) {
|
||||
@ -296,9 +296,9 @@ int wc_AesGcmEncrypt( Aes* aes, byte* out,
|
||||
out_aligned = out;
|
||||
}
|
||||
|
||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)in_aligned, sz);
|
||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)out_aligned, sz);
|
||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)tag, sizeof(tag));
|
||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)in_aligned, sz);
|
||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)out_aligned, sz);
|
||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)tag, sizeof(tag));
|
||||
|
||||
if (XSecure_AesEncryptUpdate(&(aes->xSec.cinst), XIL_CAST_U64(in_aligned),
|
||||
XIL_CAST_U64(out_aligned), sz, TRUE)) {
|
||||
@ -313,8 +313,8 @@ int wc_AesGcmEncrypt( Aes* aes, byte* out,
|
||||
ret = WC_HW_E;
|
||||
ForceZero(authTag, authTagSz);
|
||||
} else {
|
||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)out_aligned, sz);
|
||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)tag, sizeof(tag));
|
||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)out_aligned, sz);
|
||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)tag, sizeof(tag));
|
||||
|
||||
if (aes->aadStyle == SW_AAD) {
|
||||
ret = handle_aad(aes, out_aligned, sz, iv, authTag, authIn,
|
||||
@ -411,8 +411,8 @@ int wc_AesGcmDecrypt( Aes* aes, byte* out,
|
||||
out_aligned = out;
|
||||
}
|
||||
|
||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)in_aligned, sz);
|
||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)out_aligned, sz);
|
||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)in_aligned, sz);
|
||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)out_aligned, sz);
|
||||
|
||||
if (aes->aadStyle == HW_ENGINE_AAD) {
|
||||
/* Use the originally provided tag */
|
||||
@ -441,14 +441,14 @@ int wc_AesGcmDecrypt( Aes* aes, byte* 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))) {
|
||||
WOLFSSL_XIL_MSG("DecryptFinal failed");
|
||||
ret = WC_HW_E;
|
||||
} else {
|
||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)out_aligned, sz);
|
||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)buf, sizeof(buf));
|
||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)out_aligned, sz);
|
||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)buf, sizeof(buf));
|
||||
|
||||
if (aes->aadStyle == SW_AAD) {
|
||||
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)) {
|
||||
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);
|
||||
|
||||
return 0;
|
||||
@ -91,7 +91,7 @@ int wc_Sha3_384_Final(wc_Sha3* sha, byte* out)
|
||||
if (sha == NULL || out == NULL) {
|
||||
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));
|
||||
|
||||
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) {
|
||||
ret = BAD_STATE_E;
|
||||
}
|
||||
WOLFSSL_XIL_DCACHE_INVALIDATE_RANGE((UINTPTR)out, inLen);
|
||||
WOLFSSL_XIL_DCACHE_FLUSH_RANGE((UINTPTR)out, inLen);
|
||||
#else
|
||||
if (XSecure_RsaPrivateDecrypt(&rsa, (u8*)in, inLen, out) !=
|
||||
XST_SUCCESS) {
|
||||
@ -2149,7 +2149,7 @@ static int wc_RsaFunctionSync(const byte* in, word32 inLen, byte* out,
|
||||
WOLFSSL_MSG("RSA public operation failed");
|
||||
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)
|
||||
if (XSecure_RsaDecrypt(&(key->xRsa), in, out) != XST_SUCCESS) {
|
||||
ret = BAD_STATE_E;
|
||||
|
Reference in New Issue
Block a user