|
70 | 70 | #include <wolfcrypt/src/misc.c> |
71 | 71 | #endif |
72 | 72 |
|
| 73 | +#include <pthread.h> |
| 74 | + |
73 | 75 | /* Async enables (1=non-block, 0=block) */ |
74 | 76 | #ifndef QAT_RSA_ASYNC |
75 | 77 | #define QAT_RSA_ASYNC 1 |
@@ -802,6 +804,7 @@ static int IntelQaPollBlockRet(WC_ASYNC_DEV* dev, int ret_wait) |
802 | 804 |
|
803 | 805 | do { |
804 | 806 | ret = IntelQaPoll(dev); |
| 807 | + (void)ret; /* not used */ |
805 | 808 |
|
806 | 809 | if (dev->qat.ret != ret_wait) { |
807 | 810 | break; |
@@ -1996,9 +1999,10 @@ static int IntelQaSymOpen(WC_ASYNC_DEV* dev, CpaCySymSessionSetupData* setup, |
1996 | 1999 | /* Determine size of session context to allocate - use max size */ |
1997 | 2000 | status = cpaCySymSessionCtxGetSize(dev->qat.handle, setup, &sessionCtxSize); |
1998 | 2001 |
|
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); |
2002 | 2006 | return ASYNC_OP_E; |
2003 | 2007 | } |
2004 | 2008 |
|
@@ -3500,7 +3504,14 @@ int IntelQaEccPointMul(WC_ASYNC_DEV* dev, WC_BIGINT* k, |
3500 | 3504 | ret = IntelQaBigIntToFlatBuffer(k, &opData->k); |
3501 | 3505 | ret += IntelQaBigIntToFlatBuffer(xG, &opData->xg); |
3502 | 3506 | 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 | + } |
3504 | 3515 | ret += IntelQaBigIntToFlatBuffer(b, &opData->b); |
3505 | 3516 | ret += IntelQaBigIntToFlatBuffer(q, &opData->q); |
3506 | 3517 | if (ret != 0) { |
@@ -3682,7 +3693,14 @@ int IntelQaEcdh(WC_ASYNC_DEV* dev, WC_BIGINT* k, WC_BIGINT* xG, |
3682 | 3693 | ret = IntelQaBigIntToFlatBuffer(k, &opData->k); |
3683 | 3694 | ret += IntelQaBigIntToFlatBuffer(xG, &opData->xg); |
3684 | 3695 | 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 | + } |
3686 | 3704 | ret += IntelQaBigIntToFlatBuffer(b, &opData->b); |
3687 | 3705 | ret += IntelQaBigIntToFlatBuffer(q, &opData->q); |
3688 | 3706 | if (ret != 0) { |
@@ -3797,14 +3815,11 @@ static void IntelQaEcdsaSignCallback(void *pCallbackTag, |
3797 | 3815 | ret = ECC_CURVE_OID_E; |
3798 | 3816 | } |
3799 | 3817 | 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 | + } |
3808 | 3823 | } |
3809 | 3824 | } |
3810 | 3825 | (void)opData; |
|
0 commit comments