Skip to content

Commit

Permalink
Remove duplicate range check conditions
Browse files Browse the repository at this point in the history
Change-Id: I14ce9cf87f4617d3a6892035e768b083264eb131
Signed-off-by: Steve Linsell <stevenx.linsell@intel.com>
  • Loading branch information
Yogaraj-Alamenda authored and stevelinsell committed Dec 20, 2017
1 parent 9be1525 commit 81ed197
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 65 deletions.
2 changes: 0 additions & 2 deletions e_qat_err.c
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,6 @@ static ERR_STRING_DATA QAT_str_reasons[] = {
"p a b xg yg xp yp m order failure"},
{ERR_REASON(QAT_R_P_G_PRIV_KEY_CONVERT_TO_FB_FAILURE),
"p g priv key convert to fb failure"},
{ERR_REASON(QAT_R_P_MODULUS_TOO_LARGE), "p modulus too large"},
{ERR_REASON(QAT_R_P_PUB_PRIV_KEY_CONVERT_TO_FB_FAILURE),
"p pub priv key convert to fb failure"},
{ERR_REASON(QAT_R_P_Q_DMP_DMQ_CONVERT_TO_FB_FAILURE),
Expand All @@ -283,7 +282,6 @@ static ERR_STRING_DATA QAT_str_reasons[] = {
{ERR_REASON(QAT_R_QAT_GET_EC_METHOD_MALLOC_FAILURE),
"qat get ec method malloc failure"},
{ERR_REASON(QAT_R_QAT_SET_DH_METH_FAILURE), "qat set dh meth failure"},
{ERR_REASON(QAT_R_Q_SIZE_UNSUPPORTED), "q size unsupported"},
{ERR_REASON(QAT_R_RESULT_PDATA_ALLOC_FAIL), "result pdata alloc fail"},
{ERR_REASON(QAT_R_RETRIEVE_EC_POINT_FAILURE),
"retrieve ec point failure"},
Expand Down
80 changes: 39 additions & 41 deletions e_qat_err.h
Original file line number Diff line number Diff line change
Expand Up @@ -208,47 +208,45 @@ void ERR_QAT_error(int function, int reason, char *file, int line);
# define QAT_R_P_A_B_XG_YG_M_K_R_ORDER_MALLOC_FAILURE 227
# define QAT_R_P_A_B_XG_YG_XP_YP_M_ORDER_FAILURE 228
# define QAT_R_P_G_PRIV_KEY_CONVERT_TO_FB_FAILURE 229
# define QAT_R_P_MODULUS_TOO_LARGE 230
# define QAT_R_P_PUB_PRIV_KEY_CONVERT_TO_FB_FAILURE 231
# define QAT_R_P_Q_DMP_DMQ_CONVERT_TO_FB_FAILURE 232
# define QAT_R_P_Q_DMP_DMQ_IQMP_NULL 233
# define QAT_R_P_Q_G_NULL 234
# define QAT_R_P_Q_G_X_K_CONVERT_TO_FB_FAILURE 235
# define QAT_R_P_Q_G_Y_Z_R_S_CONVERT_TO_FB_FAILURE 236
# define QAT_R_QAT_ALLOC_DH_METH_FAILURE 237
# define QAT_R_QAT_CREATE_ENGINE_FAILURE 238
# define QAT_R_QAT_DEV_NOT_PRESENT 239
# define QAT_R_QAT_FREE_EC_METHOD_FAILURE 240
# define QAT_R_QAT_GET_EC_METHOD_MALLOC_FAILURE 241
# define QAT_R_QAT_SET_DH_METH_FAILURE 242
# define QAT_R_Q_SIZE_UNSUPPORTED 243
# define QAT_R_RESULT_PDATA_ALLOC_FAIL 244
# define QAT_R_RETRIEVE_EC_POINT_FAILURE 245
# define QAT_R_RETRIEVE_ORDER_FAILURE 246
# define QAT_R_RSA_FROM_TO_NULL 247
# define QAT_R_RSA_OUTPUT_BUF_PDATA_MALLOC_FAILURE 248
# define QAT_R_R_Q_COMPARE_FAILURE 249
# define QAT_R_SECRET_KEY_MALLOC_FAILURE 250
# define QAT_R_SECRET_KEY_PDATA_MALLOC_FAILURE 251
# define QAT_R_SETUP_ASYNC_EVENT_FAILURE 252
# define QAT_R_SET_ADDRESS_TRANSLATION_FAILURE 253
# define QAT_R_SET_POLLING_THREAD_AFFINITY_FAILURE 254
# define QAT_R_SET_PRIV_KEY_FAILURE 255
# define QAT_R_SET_QAT_DSA_METH_FAILURE 256
# define QAT_R_SET_QAT_RSA_METH_FAILURE 257
# define QAT_R_SIG_GET_R_S_FAILURE 258
# define QAT_R_SIG_MALLOC_FAILURE 259
# define QAT_R_START_INSTANCE_FAILURE 260
# define QAT_R_STOP_INSTANCE_FAILURE 261
# define QAT_R_SW_GET_COMPUTE_KEY_PFUNC_NULL 262
# define QAT_R_SW_GET_KEYGEN_PFUNC_NULL 263
# define QAT_R_SW_METHOD_NULL 264
# define QAT_R_S_NULL 265
# define QAT_R_S_Q_COMPARE_FAILURE 266
# define QAT_R_UNKNOWN_PADDING 267
# define QAT_R_WAKE_PAUSE_JOB_FAILURE 268
# define QAT_R_X_Y_TX_TY_BN_MALLOC_FAILURE 269
# define QAT_R_Z_ALLOCATE_FAILURE 270
# define QAT_R_P_PUB_PRIV_KEY_CONVERT_TO_FB_FAILURE 230
# define QAT_R_P_Q_DMP_DMQ_CONVERT_TO_FB_FAILURE 231
# define QAT_R_P_Q_DMP_DMQ_IQMP_NULL 232
# define QAT_R_P_Q_G_NULL 233
# define QAT_R_P_Q_G_X_K_CONVERT_TO_FB_FAILURE 234
# define QAT_R_P_Q_G_Y_Z_R_S_CONVERT_TO_FB_FAILURE 235
# define QAT_R_QAT_ALLOC_DH_METH_FAILURE 236
# define QAT_R_QAT_CREATE_ENGINE_FAILURE 237
# define QAT_R_QAT_DEV_NOT_PRESENT 238
# define QAT_R_QAT_FREE_EC_METHOD_FAILURE 239
# define QAT_R_QAT_GET_EC_METHOD_MALLOC_FAILURE 240
# define QAT_R_QAT_SET_DH_METH_FAILURE 241
# define QAT_R_RESULT_PDATA_ALLOC_FAIL 242
# define QAT_R_RETRIEVE_EC_POINT_FAILURE 243
# define QAT_R_RETRIEVE_ORDER_FAILURE 244
# define QAT_R_RSA_FROM_TO_NULL 245
# define QAT_R_RSA_OUTPUT_BUF_PDATA_MALLOC_FAILURE 246
# define QAT_R_R_Q_COMPARE_FAILURE 247
# define QAT_R_SECRET_KEY_MALLOC_FAILURE 248
# define QAT_R_SECRET_KEY_PDATA_MALLOC_FAILURE 249
# define QAT_R_SETUP_ASYNC_EVENT_FAILURE 250
# define QAT_R_SET_ADDRESS_TRANSLATION_FAILURE 251
# define QAT_R_SET_POLLING_THREAD_AFFINITY_FAILURE 252
# define QAT_R_SET_PRIV_KEY_FAILURE 253
# define QAT_R_SET_QAT_DSA_METH_FAILURE 254
# define QAT_R_SET_QAT_RSA_METH_FAILURE 255
# define QAT_R_SIG_GET_R_S_FAILURE 256
# define QAT_R_SIG_MALLOC_FAILURE 257
# define QAT_R_START_INSTANCE_FAILURE 258
# define QAT_R_STOP_INSTANCE_FAILURE 259
# define QAT_R_SW_GET_COMPUTE_KEY_PFUNC_NULL 260
# define QAT_R_SW_GET_KEYGEN_PFUNC_NULL 261
# define QAT_R_SW_METHOD_NULL 262
# define QAT_R_S_NULL 263
# define QAT_R_S_Q_COMPARE_FAILURE 264
# define QAT_R_UNKNOWN_PADDING 265
# define QAT_R_WAKE_PAUSE_JOB_FAILURE 266
# define QAT_R_X_Y_TX_TY_BN_MALLOC_FAILURE 267
# define QAT_R_Z_ALLOCATE_FAILURE 268

# ifdef __cplusplus
}
Expand Down
6 changes: 0 additions & 6 deletions qat_dh.c
Original file line number Diff line number Diff line change
Expand Up @@ -504,12 +504,6 @@ int qat_dh_compute_key(unsigned char *key, const BIGNUM *in_pub_key, DH *dh)
return DH_meth_get_compute_key(sw_dh_method)(key, in_pub_key, dh);
}

if (BN_num_bits(p) > OPENSSL_DH_MAX_MODULUS_BITS) {
WARN("Number of bits for p exceeds maximum\n");
QATerr(QAT_F_QAT_DH_COMPUTE_KEY, QAT_R_P_MODULUS_TOO_LARGE);
return -1;
}

if (!DH_check_pub_key(dh, in_pub_key, &check_result) || check_result) {
WARN("Failure checking pub key\n");
QATerr(QAT_F_QAT_DH_COMPUTE_KEY, QAT_R_INVALID_PUB_KEY);
Expand Down
29 changes: 13 additions & 16 deletions qat_dsa.c
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ DSA_SIG *qat_dsa_do_sign(const unsigned char *dgst, int dlen,
useconds_t ulPollInterval = getQatPollInterval();
int iMsgRetry = getQatMsgRetryCount();
const DSA_METHOD *default_dsa_method = DSA_OpenSSL();
int job_ret = 0;
int i = 0, job_ret = 0;

DEBUG("- Started\n");

Expand All @@ -264,15 +264,17 @@ DSA_SIG *qat_dsa_do_sign(const unsigned char *dgst, int dlen,
return sig;
}

i = BN_num_bits(q);

/*
* If the sizes of P and Q are not in the range supported by QAT engine
* then fall back to software
*/

if (!dsa_range_check(BN_num_bits(p), BN_num_bits(q))) {
if (!dsa_range_check(BN_num_bits(p), i)) {
if (default_dsa_method == NULL) {
WARN("Failed to get default_dsa_method for bits p = %d & q = %d\n",
BN_num_bits(p), BN_num_bits(q));
BN_num_bits(p), i);
QATerr(QAT_F_QAT_DSA_DO_SIGN, QAT_R_SW_METHOD_NULL);
return NULL;
}
Expand Down Expand Up @@ -303,13 +305,15 @@ DSA_SIG *qat_dsa_do_sign(const unsigned char *dgst, int dlen,
goto err;
}

if (dlen > BN_num_bytes(q))
buflen = BN_num_bytes(q);

if (dlen > buflen)
/*
* if the digest length is greater than the size of q use the
* BN_num_bits(q) leftmost bits of the digest, see fips 186-3,
* 4.2
*/
dlen = BN_num_bytes(q);
dlen = buflen;
do {
if (!BN_rand_range(k, q)) {
WARN("Failed to generate random number for the range %d\n", dlen);
Expand All @@ -319,7 +323,6 @@ DSA_SIG *qat_dsa_do_sign(const unsigned char *dgst, int dlen,
}
while (BN_is_zero(k));

buflen = BN_num_bytes(q);
pResultR = (CpaFlatBuffer *) OPENSSL_malloc(sizeof(CpaFlatBuffer));
if (!pResultR) {
WARN("Failed to allocate memory for pResultR\n");
Expand Down Expand Up @@ -600,29 +603,23 @@ int qat_dsa_do_verify(const unsigned char *dgst, int dgst_len,
return ret;
}

i = BN_num_bits(q);

/*
* If the sizes of P and Q are not in the range supported by QAT engine
* then fall back to software
*/

if (!dsa_range_check(BN_num_bits(p), BN_num_bits(q))) {
if (!dsa_range_check(BN_num_bits(p), i)) {
if (default_dsa_method == NULL) {
WARN("Failed to get default_dsa_method for bits p = %d & q = %d\n",
BN_num_bits(p), BN_num_bits(q));
BN_num_bits(p), i);
QATerr(QAT_F_QAT_DSA_DO_VERIFY, QAT_R_SW_METHOD_NULL);
return -1;
}
return DSA_meth_get_verify(default_dsa_method)(dgst, dgst_len, sig, dsa);
}

i = BN_num_bits(q);
/* fips 186-3 allows only different sizes for q */
if (i != 160 && i != 224 && i != 256) {
WARN("q size %d not supported\n", BN_num_bits(q));
QATerr(QAT_F_QAT_DSA_DO_VERIFY, QAT_R_Q_SIZE_UNSUPPORTED);
return ret;
}

opData = (CpaCyDsaVerifyOpData *)
OPENSSL_malloc(sizeof(CpaCyDsaVerifyOpData));
if (opData == NULL) {
Expand Down

0 comments on commit 81ed197

Please sign in to comment.