Skip to content

Commit 6323ee5

Browse files
authored
Merge pull request #44 from dgarske/scan-build
Fixes for async scan-build warnings and ECC Koblitz curves
2 parents 62d123f + aa6903d commit 6323ee5

2 files changed

Lines changed: 29 additions & 14 deletions

File tree

wolfcrypt/src/port/intel/quickassist.c

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@
7070
#include <wolfcrypt/src/misc.c>
7171
#endif
7272

73+
#include <pthread.h>
74+
7375
/* Async enables (1=non-block, 0=block) */
7476
#ifndef QAT_RSA_ASYNC
7577
#define QAT_RSA_ASYNC 1
@@ -802,6 +804,7 @@ static int IntelQaPollBlockRet(WC_ASYNC_DEV* dev, int ret_wait)
802804

803805
do {
804806
ret = IntelQaPoll(dev);
807+
(void)ret; /* not used */
805808

806809
if (dev->qat.ret != ret_wait) {
807810
break;
@@ -1996,9 +1999,10 @@ static int IntelQaSymOpen(WC_ASYNC_DEV* dev, CpaCySymSessionSetupData* setup,
19961999
/* Determine size of session context to allocate - use max size */
19972000
status = cpaCySymSessionCtxGetSize(dev->qat.handle, setup, &sessionCtxSize);
19982001

1999-
if (ctx->symCtxSize > 0 && ctx->symCtxSize > sessionCtxSize) {
2000-
printf("Symmetric context size error! Buf %d, Exp %d\n",
2001-
ctx->symCtxSize, sessionCtxSize);
2002+
if (status != CPA_STATUS_SUCCESS || (ctx->symCtxSize > 0 &&
2003+
ctx->symCtxSize > sessionCtxSize)) {
2004+
printf("Symmetric context size error %d! Buf %d, Exp %d\n",
2005+
status, ctx->symCtxSize, sessionCtxSize);
20022006
return ASYNC_OP_E;
20032007
}
20042008

@@ -3500,7 +3504,14 @@ int IntelQaEccPointMul(WC_ASYNC_DEV* dev, WC_BIGINT* k,
35003504
ret = IntelQaBigIntToFlatBuffer(k, &opData->k);
35013505
ret += IntelQaBigIntToFlatBuffer(xG, &opData->xg);
35023506
ret += IntelQaBigIntToFlatBuffer(yG, &opData->yg);
3503-
ret += IntelQaBigIntToFlatBuffer(a, &opData->a);
3507+
if (a != NULL && a->buf == NULL) {
3508+
/* The Koblitz curves can have a zero param "a" */
3509+
ret += IntelQaAllocFlatBuffer(&opData->a, k->len, dev->heap);
3510+
XMEMSET(opData->a.pData, 0, k->len);
3511+
}
3512+
else {
3513+
ret += IntelQaBigIntToFlatBuffer(a, &opData->a);
3514+
}
35043515
ret += IntelQaBigIntToFlatBuffer(b, &opData->b);
35053516
ret += IntelQaBigIntToFlatBuffer(q, &opData->q);
35063517
if (ret != 0) {
@@ -3682,7 +3693,14 @@ int IntelQaEcdh(WC_ASYNC_DEV* dev, WC_BIGINT* k, WC_BIGINT* xG,
36823693
ret = IntelQaBigIntToFlatBuffer(k, &opData->k);
36833694
ret += IntelQaBigIntToFlatBuffer(xG, &opData->xg);
36843695
ret += IntelQaBigIntToFlatBuffer(yG, &opData->yg);
3685-
ret += IntelQaBigIntToFlatBuffer(a, &opData->a);
3696+
if (a != NULL && a->buf == NULL) {
3697+
/* The Koblitz curves can have a zero param "a" */
3698+
ret += IntelQaAllocFlatBuffer(&opData->a, k->len, dev->heap);
3699+
XMEMSET(opData->a.pData, 0, k->len);
3700+
}
3701+
else {
3702+
ret += IntelQaBigIntToFlatBuffer(a, &opData->a);
3703+
}
36863704
ret += IntelQaBigIntToFlatBuffer(b, &opData->b);
36873705
ret += IntelQaBigIntToFlatBuffer(q, &opData->q);
36883706
if (ret != 0) {
@@ -3797,14 +3815,11 @@ static void IntelQaEcdsaSignCallback(void *pCallbackTag,
37973815
ret = ECC_CURVE_OID_E;
37983816
}
37993817
else {
3800-
/* mark event result */
3801-
ret = 0; /* success */
3802-
}
3803-
3804-
/* populate result */
3805-
ret = IntelQaFlatBufferToBigInt(pR, dev->qat.op.ecc_sign.pR);
3806-
if (ret == 0) {
3807-
ret = IntelQaFlatBufferToBigInt(pS, dev->qat.op.ecc_sign.pS);
3818+
/* success - populate result */
3819+
ret = IntelQaFlatBufferToBigInt(pR, dev->qat.op.ecc_sign.pR);
3820+
if (ret == 0) {
3821+
ret = IntelQaFlatBufferToBigInt(pS, dev->qat.op.ecc_sign.pS);
3822+
}
38083823
}
38093824
}
38103825
(void)opData;

wolfcrypt/src/port/intel/quickassist_mem.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
#include <string.h>
3737

3838
/* use thread local for QAE variables (removing mutex requirement) */
39+
#include <pthread.h> /* for threadId tracking */
3940
#ifdef USE_QAE_THREAD_LS
40-
#include <pthread.h> /* for threadId tracking */
4141
#define QAE_THREAD_LS THREAD_LS_T
4242
#else
4343
#define QAE_THREAD_LS

0 commit comments

Comments
 (0)