diff --git a/wolfcrypt/src/port/intel/quickassist_sync.c b/wolfcrypt/src/port/intel/quickassist_sync.c index a020677ba9..91cb76ae8b 100644 --- a/wolfcrypt/src/port/intel/quickassist_sync.c +++ b/wolfcrypt/src/port/intel/quickassist_sync.c @@ -969,9 +969,7 @@ static int IntelQaSymCipher(IntelQaDev* dev, byte* out, const byte* in, flatBuffer = &dev->op.cipher.flatBuffer; metaBuf = XMALLOC(metaSize, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA); dataBuf = XMALLOC(dataLen, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA); - XMEMCPY(dataBuf, in, inOutSz); ivBuf = XMALLOC(WC_AES_BLOCK_SIZE, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA); - XMEMCPY(ivBuf, iv, ivSz); authTagBuf = XMALLOC(authTagSz, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA); /* check allocations */ @@ -980,6 +978,9 @@ static int IntelQaSymCipher(IntelQaDev* dev, byte* out, const byte* in, ret = MEMORY_E; goto exit; } + XMEMCPY(dataBuf, in, inOutSz); + XMEMCPY(ivBuf, iv, ivSz); + /* AAD */ if (authIn && authInSz > 0) { /* make sure AAD is block aligned */ @@ -990,10 +991,10 @@ static int IntelQaSymCipher(IntelQaDev* dev, byte* out, const byte* in, authInBuf = XMALLOC(authInSzAligned, dev->heap, DYNAMIC_TYPE_ASYNC_NUMA); - XMEMCPY(authInBuf, authIn, authInSz); if (authInBuf == NULL) { ret = MEMORY_E; goto exit; } + XMEMCPY(authInBuf, authIn, authInSz); /* clear remainder */ XMEMSET(authInBuf + authInSz, 0, authInSzAligned - authInSz); }