Skip to content

Commit

Permalink
Replace RSA padding functions with OpenSSL equivalents
Browse files Browse the repository at this point in the history
Change-Id: If154bb3012886cb86d18d9567cf67a70ab84ea4b
Signed-off-by: Steve Linsell <stevenx.linsell@intel.com>
  • Loading branch information
stevelinsell committed Nov 10, 2017
1 parent 3006b49 commit 6856c4f
Show file tree
Hide file tree
Showing 4 changed files with 320 additions and 381 deletions.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ license contained in the file `LICENSE.GPL` within the `qat` folder.

* Synchronous and Asynchronous Operation
* Asymmetric PKE Offload
* RSA Support with PKCS1 Padding for Key Sizes 1024/2048/4096.
* RSA Support for Key Sizes 1024/2048/4096.
* DH Support for Key Sizes 768/1024/1536/2048/3072/4096.
* DSA Support for Key Sizes 160/1024, 224/2048, 256/2048, 256/3072.
* ECDH Support for the following curves:
Expand All @@ -66,6 +66,9 @@ license contained in the file `LICENSE.GPL` within the `qat` folder.
* AES128-CBC-HMAC-SHA256/AES256-CBC-HMAC-SHA256.
* Pseudo Random Function (PRF) offload.

Note: RSA Padding schemes are handled by OpenSSL rather than offloaded, so the
engine supports the same padding schemes as OpenSSL does natively.

## Hardware Requirements

This OpenSSL\* Engine supports crypto offload to the following acceleration
Expand Down
9 changes: 4 additions & 5 deletions e_qat_err.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
static ERR_STRING_DATA QAT_str_functs[] = {
{ERR_FUNC(QAT_F_BIND_QAT), "bind_qat"},
{ERR_FUNC(QAT_F_BUILD_DECRYPT_OP_BUF), "build_decrypt_op_buf"},
{ERR_FUNC(QAT_F_BUILD_ENCRYPT_OP), "build_encrypt_op"},
{ERR_FUNC(QAT_F_BUILD_ENCRYPT_OP_BUF), "build_encrypt_op_buf"},
{ERR_FUNC(QAT_F_CRT_COMBINE), "CRT_combine"},
{ERR_FUNC(QAT_F_CRT_PREPARE), "CRT_prepare"},
{ERR_FUNC(QAT_F_ENGINE_FINISH_BEFORE_FORK_HANDLER),
Expand All @@ -33,9 +33,7 @@ static ERR_STRING_DATA QAT_str_functs[] = {
{ERR_FUNC(QAT_F_POLL_INSTANCES), "poll_instances"},
{ERR_FUNC(QAT_F_QAT_ADJUST_THREAD_AFFINITY),
"qat_adjust_thread_affinity"},
{ERR_FUNC(QAT_F_QAT_ALLOC_PAD), "qat_alloc_pad"},
{ERR_FUNC(QAT_F_QAT_CRYPTO_CALLBACKFN), "qat_crypto_callbackFn"},
{ERR_FUNC(QAT_F_QAT_DATA_LEN), "qat_data_len"},
{ERR_FUNC(QAT_F_QAT_DH_COMPUTE_KEY), "qat_dh_compute_key"},
{ERR_FUNC(QAT_F_QAT_DH_GENERATE_KEY), "qat_dh_generate_key"},
{ERR_FUNC(QAT_F_QAT_DSA_DO_SIGN), "qat_dsa_do_sign"},
Expand Down Expand Up @@ -63,7 +61,6 @@ static ERR_STRING_DATA QAT_str_functs[] = {
{ERR_FUNC(QAT_F_QAT_MOD_EXP), "qat_mod_exp"},
{ERR_FUNC(QAT_F_QAT_PRF_PMETH), "qat_prf_pmeth"},
{ERR_FUNC(QAT_F_QAT_PRF_TLS_DERIVE), "qat_prf_tls_derive"},
{ERR_FUNC(QAT_F_QAT_REMOVE_PAD), "qat_remove_pad"},
{ERR_FUNC(QAT_F_QAT_RSA_DECRYPT), "qat_rsa_decrypt"},
{ERR_FUNC(QAT_F_QAT_RSA_DECRYPT_CRT), "qat_rsa_decrypt_CRT"},
{ERR_FUNC(QAT_F_QAT_RSA_ENCRYPT), "qat_rsa_encrypt"},
Expand Down Expand Up @@ -212,10 +209,11 @@ static ERR_STRING_DATA QAT_str_reasons[] = {
{ERR_REASON(QAT_R_OUTX_MALLOC_FAILURE), "outx malloc failure"},
{ERR_REASON(QAT_R_OUTX_OUTY_LEN_NULL), "outx outy len null"},
{ERR_REASON(QAT_R_OUTY_MALLOC_FAILURE), "outy malloc failure"},
{ERR_REASON(QAT_R_OUT_MALLOC_FAILURE), "out malloc failure"},
{ERR_REASON(QAT_R_PADDING_UNKNOWN), "padding unknown"},
{ERR_REASON(QAT_R_POLLING_THREAD_CREATE_FAILURE),
"polling thread create failure"},
{ERR_REASON(QAT_R_POLLING_THREAD_SIGMASK_FAILURE),
"polling thread sigmask failure"},
{ERR_REASON(QAT_R_POLL_INSTANCE_FAILURE), "poll instance failure"},
{ERR_REASON(QAT_R_PPV_MALLOC_FAILURE), "ppv malloc failure"},
{ERR_REASON(QAT_R_PPV_PDATA_MALLOC_FAILURE), "ppv pdata malloc failure"},
Expand Down Expand Up @@ -247,6 +245,7 @@ static ERR_STRING_DATA QAT_str_reasons[] = {
{ERR_REASON(QAT_R_PTHREAD_GETAFFINITY_FAILURE),
"pthread getaffinity failure"},
{ERR_REASON(QAT_R_PTHREAD_JOIN_FAILURE), "pthread join failure"},
{ERR_REASON(QAT_R_PTHREAD_KILL_FAILURE), "pthread kill failure"},
{ERR_REASON(QAT_R_PTHREAD_SETAFFINITY_FAILURE),
"pthread setaffinity failure"},
{ERR_REASON(QAT_R_PTHREAD_SETSPECIFIC_FAILURE),
Expand Down
186 changes: 92 additions & 94 deletions e_qat_err.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ void ERR_QAT_error(int function, int reason, char *file, int line);
/* Function codes. */
# define QAT_F_BIND_QAT 100
# define QAT_F_BUILD_DECRYPT_OP_BUF 101
# define QAT_F_BUILD_ENCRYPT_OP 102
# define QAT_F_BUILD_ENCRYPT_OP_BUF 102
# define QAT_F_CRT_COMBINE 103
# define QAT_F_CRT_PREPARE 104
# define QAT_F_ENGINE_FINISH_BEFORE_FORK_HANDLER 105
Expand All @@ -39,46 +39,43 @@ void ERR_QAT_error(int function, int reason, char *file, int line);
# define QAT_F_EVENT_POLL_FUNC 108
# define QAT_F_POLL_INSTANCES 109
# define QAT_F_QAT_ADJUST_THREAD_AFFINITY 110
# define QAT_F_QAT_ALLOC_PAD 111
# define QAT_F_QAT_CRYPTO_CALLBACKFN 112
# define QAT_F_QAT_DATA_LEN 113
# define QAT_F_QAT_DH_COMPUTE_KEY 114
# define QAT_F_QAT_DH_GENERATE_KEY 115
# define QAT_F_QAT_DSA_DO_SIGN 116
# define QAT_F_QAT_DSA_DO_VERIFY 117
# define QAT_F_QAT_ECDH_COMPUTE_KEY 118
# define QAT_F_QAT_ECDH_GENERATE_KEY 119
# define QAT_F_QAT_ECDSA_DO_SIGN 120
# define QAT_F_QAT_ECDSA_DO_VERIFY 121
# define QAT_F_QAT_ECDSA_VERIFY 122
# define QAT_F_QAT_ENGINE_CTRL 123
# define QAT_F_QAT_ENGINE_FINISH_INT 124
# define QAT_F_QAT_ENGINE_INIT 125
# define QAT_F_QAT_FD_CLEANUP 126
# define QAT_F_QAT_FREE_DH_METHODS 127
# define QAT_F_QAT_FREE_DSA_METHODS 128
# define QAT_F_QAT_FREE_EC_METHODS 129
# define QAT_F_QAT_FREE_RSA_METHODS 130
# define QAT_F_QAT_GET_DH_METHODS 131
# define QAT_F_QAT_GET_DSA_METHODS 132
# define QAT_F_QAT_GET_EC_METHODS 133
# define QAT_F_QAT_GET_RSA_METHODS 134
# define QAT_F_QAT_INIT_OP_DONE 135
# define QAT_F_QAT_INIT_OP_DONE_PIPE 136
# define QAT_F_QAT_INIT_OP_DONE_RSA_CRT 137
# define QAT_F_QAT_MOD_EXP 138
# define QAT_F_QAT_PRF_PMETH 139
# define QAT_F_QAT_PRF_TLS_DERIVE 140
# define QAT_F_QAT_REMOVE_PAD 141
# define QAT_F_QAT_RSA_DECRYPT 142
# define QAT_F_QAT_RSA_DECRYPT_CRT 143
# define QAT_F_QAT_RSA_ENCRYPT 144
# define QAT_F_QAT_RSA_PRIV_DEC 145
# define QAT_F_QAT_RSA_PRIV_ENC 146
# define QAT_F_QAT_RSA_PUB_DEC 147
# define QAT_F_QAT_RSA_PUB_ENC 148
# define QAT_F_QAT_SET_INSTANCE_FOR_THREAD 149
# define QAT_F_QAT_SYM_PERFORM_OP 150
# define QAT_F_QAT_CRYPTO_CALLBACKFN 111
# define QAT_F_QAT_DH_COMPUTE_KEY 112
# define QAT_F_QAT_DH_GENERATE_KEY 113
# define QAT_F_QAT_DSA_DO_SIGN 114
# define QAT_F_QAT_DSA_DO_VERIFY 115
# define QAT_F_QAT_ECDH_COMPUTE_KEY 116
# define QAT_F_QAT_ECDH_GENERATE_KEY 117
# define QAT_F_QAT_ECDSA_DO_SIGN 118
# define QAT_F_QAT_ECDSA_DO_VERIFY 119
# define QAT_F_QAT_ECDSA_VERIFY 120
# define QAT_F_QAT_ENGINE_CTRL 121
# define QAT_F_QAT_ENGINE_FINISH_INT 122
# define QAT_F_QAT_ENGINE_INIT 123
# define QAT_F_QAT_FD_CLEANUP 124
# define QAT_F_QAT_FREE_DH_METHODS 125
# define QAT_F_QAT_FREE_DSA_METHODS 126
# define QAT_F_QAT_FREE_EC_METHODS 127
# define QAT_F_QAT_FREE_RSA_METHODS 128
# define QAT_F_QAT_GET_DH_METHODS 129
# define QAT_F_QAT_GET_DSA_METHODS 130
# define QAT_F_QAT_GET_EC_METHODS 131
# define QAT_F_QAT_GET_RSA_METHODS 132
# define QAT_F_QAT_INIT_OP_DONE 133
# define QAT_F_QAT_INIT_OP_DONE_PIPE 134
# define QAT_F_QAT_INIT_OP_DONE_RSA_CRT 135
# define QAT_F_QAT_MOD_EXP 136
# define QAT_F_QAT_PRF_PMETH 137
# define QAT_F_QAT_PRF_TLS_DERIVE 138
# define QAT_F_QAT_RSA_DECRYPT 139
# define QAT_F_QAT_RSA_DECRYPT_CRT 140
# define QAT_F_QAT_RSA_ENCRYPT 141
# define QAT_F_QAT_RSA_PRIV_DEC 142
# define QAT_F_QAT_RSA_PRIV_ENC 143
# define QAT_F_QAT_RSA_PUB_DEC 144
# define QAT_F_QAT_RSA_PUB_ENC 145
# define QAT_F_QAT_SET_INSTANCE_FOR_THREAD 146
# define QAT_F_QAT_SYM_PERFORM_OP 147

/* Reason codes. */
# define QAT_R_ADD_M2_FAILURE 100
Expand Down Expand Up @@ -177,9 +174,9 @@ void ERR_QAT_error(int function, int reason, char *file, int line);
# define QAT_R_OUTX_MALLOC_FAILURE 193
# define QAT_R_OUTX_OUTY_LEN_NULL 194
# define QAT_R_OUTY_MALLOC_FAILURE 195
# define QAT_R_OUT_MALLOC_FAILURE 196
# define QAT_R_PADDING_UNKNOWN 197
# define QAT_R_POLLING_THREAD_CREATE_FAILURE 198
# define QAT_R_PADDING_UNKNOWN 196
# define QAT_R_POLLING_THREAD_CREATE_FAILURE 197
# define QAT_R_POLLING_THREAD_SIGMASK_FAILURE 198
# define QAT_R_POLL_INSTANCE_FAILURE 199
# define QAT_R_PPV_MALLOC_FAILURE 200
# define QAT_R_PPV_PDATA_MALLOC_FAILURE 201
Expand All @@ -201,56 +198,57 @@ void ERR_QAT_error(int function, int reason, char *file, int line);
# define QAT_R_PTHREAD_CREATE_FAILURE 217
# define QAT_R_PTHREAD_GETAFFINITY_FAILURE 218
# define QAT_R_PTHREAD_JOIN_FAILURE 219
# define QAT_R_PTHREAD_SETAFFINITY_FAILURE 220
# define QAT_R_PTHREAD_SETSPECIFIC_FAILURE 221
# define QAT_R_PUB_KEY_DUPLICATE_FAILURE 222
# define QAT_R_PUB_KEY_MALLOC_FAILURE 223
# define QAT_R_PUB_KEY_NULL 224
# define QAT_R_P_A_B_XG_YG_MALLOC_FAILURE 225
# define QAT_R_P_A_B_XG_YG_M_K_R_ORDER_MALLOC_FAILURE 226
# define QAT_R_P_A_B_XG_YG_XP_YP_M_ORDER_FAILURE 227
# define QAT_R_P_G_PRIV_KEY_CONVERT_TO_FB_FAILURE 228
# define QAT_R_P_MODULUS_TOO_LARGE 229
# 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_Q_SIZE_UNSUPPORTED 242
# define QAT_R_RESULT_PDATA_ALLOC_FAIL 243
# define QAT_R_RETRIEVE_EC_POINT_FAILURE 244
# define QAT_R_RETRIEVE_ORDER_FAILURE 245
# define QAT_R_RSA_FROM_TO_NULL 246
# define QAT_R_RSA_OUTPUT_BUF_PDATA_MALLOC_FAILURE 247
# define QAT_R_R_Q_COMPARE_FAILURE 248
# define QAT_R_SECRET_KEY_MALLOC_FAILURE 249
# define QAT_R_SECRET_KEY_PDATA_MALLOC_FAILURE 250
# define QAT_R_SETUP_ASYNC_EVENT_FAILURE 251
# define QAT_R_SET_ADDRESS_TRANSLATION_FAILURE 252
# define QAT_R_SET_POLLING_THREAD_AFFINITY_FAILURE 253
# define QAT_R_SET_PRIV_KEY_FAILURE 254
# define QAT_R_SET_QAT_DSA_METH_FAILURE 255
# define QAT_R_SET_QAT_RSA_METH_FAILURE 256
# define QAT_R_SIG_GET_R_S_FAILURE 257
# define QAT_R_SIG_MALLOC_FAILURE 258
# define QAT_R_START_INSTANCE_FAILURE 259
# define QAT_R_STOP_INSTANCE_FAILURE 260
# define QAT_R_SW_GET_COMPUTE_KEY_PFUNC_NULL 261
# define QAT_R_SW_GET_KEYGEN_PFUNC_NULL 262
# define QAT_R_SW_METHOD_NULL 263
# define QAT_R_S_NULL 264
# define QAT_R_S_Q_COMPARE_FAILURE 265
# define QAT_R_UNKNOWN_PADDING 266
# define QAT_R_WAKE_PAUSE_JOB_FAILURE 267
# define QAT_R_X_Y_TX_TY_BN_MALLOC_FAILURE 268
# define QAT_R_Z_ALLOCATE_FAILURE 269
# define QAT_R_PTHREAD_KILL_FAILURE 220
# define QAT_R_PTHREAD_SETAFFINITY_FAILURE 221
# define QAT_R_PTHREAD_SETSPECIFIC_FAILURE 222
# define QAT_R_PUB_KEY_DUPLICATE_FAILURE 223
# define QAT_R_PUB_KEY_MALLOC_FAILURE 224
# define QAT_R_PUB_KEY_NULL 225
# define QAT_R_P_A_B_XG_YG_MALLOC_FAILURE 226
# 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

# ifdef __cplusplus
}
Expand Down
Loading

0 comments on commit 6856c4f

Please sign in to comment.