formating and removing white space, also added sanity check on blob arguments

This commit is contained in:
Jacob Barthelmeh
2017-12-21 14:26:22 -07:00
parent 28582ad5d9
commit b3eef2b10e
2 changed files with 56 additions and 54 deletions

View File

@@ -215,7 +215,8 @@ int wc_caamCreateBlob(byte* data, word32 dataSz, byte* out, word32* outSz)
int ret; int ret;
word32 local[2] = {0,0}; word32 local[2] = {0,0};
if (*outSz < dataSz + WC_CAAM_BLOB_SZ) { if (data == NULL || out == NULL || outSz == NULL ||
*outSz < dataSz + WC_CAAM_BLOB_SZ) {
return BAD_FUNC_ARG; return BAD_FUNC_ARG;
} }
@@ -250,7 +251,8 @@ int wc_caamOpenBlob(byte* data, word32 dataSz, byte* out, word32* outSz)
int ret; int ret;
word32 local[2] = {0,0}; word32 local[2] = {0,0};
if (*outSz < dataSz - WC_CAAM_BLOB_SZ) { if (data == NULL || out == NULL || outSz == NULL ||
*outSz < dataSz - WC_CAAM_BLOB_SZ) {
return BAD_FUNC_ARG; return BAD_FUNC_ARG;
} }

View File

@@ -64,7 +64,7 @@
****************************************************************************/ ****************************************************************************/
static int _InitSha(wc_Sha* sha, void* heap, int devId, word32 digestSz, static int _InitSha(wc_Sha* sha, void* heap, int devId, word32 digestSz,
word32 type) word32 type)
{ {
Buffer buf[1]; Buffer buf[1];
word32 arg[4]; word32 arg[4];
@@ -90,7 +90,7 @@ static int _InitSha(wc_Sha* sha, void* heap, int devId, word32 digestSz,
if ((ret = wc_caamAddAndWait(buf, arg, type)) != 0) { if ((ret = wc_caamAddAndWait(buf, arg, type)) != 0) {
WOLFSSL_MSG("Error with CAAM SHA init"); WOLFSSL_MSG("Error with CAAM SHA init");
return ret; return ret;
} }
return 0; return 0;
@@ -98,7 +98,7 @@ static int _InitSha(wc_Sha* sha, void* heap, int devId, word32 digestSz,
static int _ShaUpdate(wc_Sha* sha, const byte* data, word32 len, word32 digestSz, static int _ShaUpdate(wc_Sha* sha, const byte* data, word32 len, word32 digestSz,
word32 type) word32 type)
{ {
Buffer buf[2]; Buffer buf[2];
word32 arg[4]; word32 arg[4];
@@ -115,70 +115,70 @@ static int _ShaUpdate(wc_Sha* sha, const byte* data, word32 len, word32 digestSz
/* check for filling out existing buffer */ /* check for filling out existing buffer */
if (sha->buffLen > 0) { if (sha->buffLen > 0) {
word32 add = min(len, WC_CAAM_HASH_BLOCK - sha->buffLen); word32 add = min(len, WC_CAAM_HASH_BLOCK - sha->buffLen);
XMEMCPY(&local[sha->buffLen], data, add); XMEMCPY(&local[sha->buffLen], data, add);
sha->buffLen += add; sha->buffLen += add;
data += add; data += add;
len -= add; len -= add;
if (sha->buffLen == WC_CAAM_HASH_BLOCK) { if (sha->buffLen == WC_CAAM_HASH_BLOCK) {
/* Set buffer for context */ /* Set buffer for context */
buf[0].BufferType = DataBuffer; buf[0].BufferType = DataBuffer;
buf[0].TheAddress = (Address)sha->ctx; buf[0].TheAddress = (Address)sha->ctx;
buf[0].Length = digestSz + WC_CAAM_CTXLEN; buf[0].Length = digestSz + WC_CAAM_CTXLEN;
buf[0].Transferred = 0; buf[0].Transferred = 0;
/* data to update with */ /* data to update with */
buf[1].BufferType = DataBuffer | LastBuffer; buf[1].BufferType = DataBuffer | LastBuffer;
buf[1].TheAddress = (Address)sha->buffer; buf[1].TheAddress = (Address)sha->buffer;
buf[1].Length = sha->buffLen; buf[1].Length = sha->buffLen;
buf[1].Transferred = 0; buf[1].Transferred = 0;
arg[0] = CAAM_ALG_UPDATE; arg[0] = CAAM_ALG_UPDATE;
arg[1] = digestSz + WC_CAAM_CTXLEN; arg[1] = digestSz + WC_CAAM_CTXLEN;
if ((ret = wc_caamAddAndWait(buf, arg, type)) != 0) { if ((ret = wc_caamAddAndWait(buf, arg, type)) != 0) {
WOLFSSL_MSG("Error with CAAM SHA update"); WOLFSSL_MSG("Error with CAAM SHA update");
return ret; return ret;
} }
sha->buffLen = 0; /* cleared out buffer */ sha->buffLen = 0; /* cleared out buffer */
} }
} }
/* check if multiple full blocks can be done */ /* check if multiple full blocks can be done */
if (len >= WC_CAAM_HASH_BLOCK) { if (len >= WC_CAAM_HASH_BLOCK) {
word32 sz = len / WC_CAAM_HASH_BLOCK; word32 sz = len / WC_CAAM_HASH_BLOCK;
sz = sz * WC_CAAM_HASH_BLOCK; sz = sz * WC_CAAM_HASH_BLOCK;
/* Set buffer for context */ /* Set buffer for context */
buf[0].BufferType = DataBuffer; buf[0].BufferType = DataBuffer;
buf[0].TheAddress = (Address)sha->ctx; buf[0].TheAddress = (Address)sha->ctx;
buf[0].Length = digestSz + WC_CAAM_CTXLEN; buf[0].Length = digestSz + WC_CAAM_CTXLEN;
buf[0].Transferred = 0; buf[0].Transferred = 0;
/* data to update with */ /* data to update with */
buf[1].BufferType = DataBuffer | LastBuffer; buf[1].BufferType = DataBuffer | LastBuffer;
buf[1].TheAddress = (Address)data; buf[1].TheAddress = (Address)data;
buf[1].Length = sz; buf[1].Length = sz;
buf[1].Transferred = 0; buf[1].Transferred = 0;
arg[0] = CAAM_ALG_UPDATE; arg[0] = CAAM_ALG_UPDATE;
arg[1] = digestSz + WC_CAAM_CTXLEN; arg[1] = digestSz + WC_CAAM_CTXLEN;
if ((ret = wc_caamAddAndWait(buf, arg, type)) != 0) { if ((ret = wc_caamAddAndWait(buf, arg, type)) != 0) {
WOLFSSL_MSG("Error with CAAM SHA update"); WOLFSSL_MSG("Error with CAAM SHA update");
return ret; return ret;
} }
len -= sz; len -= sz;
data += sz; data += sz;
} }
/* check for left overs */ /* check for left overs */
if (len > 0) { if (len > 0) {
word32 add = min(len, WC_CAAM_HASH_BLOCK - sha->buffLen); word32 add = min(len, WC_CAAM_HASH_BLOCK - sha->buffLen);
XMEMCPY(&local[sha->buffLen], data, add); XMEMCPY(&local[sha->buffLen], data, add);
sha->buffLen += add; sha->buffLen += add;
} }
return 0; return 0;
@@ -186,7 +186,7 @@ static int _ShaUpdate(wc_Sha* sha, const byte* data, word32 len, word32 digestSz
static int _ShaFinal(wc_Sha* sha, byte* out, word32 digestSz, static int _ShaFinal(wc_Sha* sha, byte* out, word32 digestSz,
word32 type) word32 type)
{ {
Buffer buf[2]; Buffer buf[2];
word32 arg[4]; word32 arg[4];
@@ -212,8 +212,8 @@ static int _ShaFinal(wc_Sha* sha, byte* out, word32 digestSz,
arg[1] = digestSz + WC_CAAM_CTXLEN; arg[1] = digestSz + WC_CAAM_CTXLEN;
if ((ret = wc_caamAddAndWait(buf, arg, type)) != 0) { if ((ret = wc_caamAddAndWait(buf, arg, type)) != 0) {
WOLFSSL_MSG("Error with CAAM SHA init"); WOLFSSL_MSG("Error with CAAM SHA init");
return ret; return ret;
} }
return 0; return 0;