[PATCH 00/10] uadk_engine/provider: fixed static code alarms and code format issues.

From: JiangShui Yang <yangjiangshui@h-partners.com> Chenghai Huang (4): uadk_provider: fix some possible issues where empty memory is accessed uadk_provider: adjust the code style uadk_provider: fix the static variable problem in the case of multiple concurrency uadk_provider: add parameter validation to avoid memory errors Hao Fang (6): uadk_engine/provider: tinyfixes for code format alignment uadk_engine/provider: add blank line before return uadk_engine/provider: remove the variable redundant initialization uadk_provider: add const keyword uadk_provider: remove unused parameters uadk_engine:sm2: use UADK_E_INVAL replace -1 src/uadk_aead.c | 2 +- src/uadk_cipher.c | 13 +-- src/uadk_dh.c | 11 +-- src/uadk_digest.c | 24 +++--- src/uadk_ec.c | 6 ++ src/uadk_ecx.c | 4 +- src/uadk_engine_init.c | 1 + src/uadk_pkey.c | 9 ++- src/uadk_pkey.h | 3 +- src/uadk_prov_aead.c | 3 +- src/uadk_prov_bio.c | 18 ++--- src/uadk_prov_cipher.c | 46 ++++++----- src/uadk_prov_der_writer.c | 96 +++++++++++----------- src/uadk_prov_der_writer.h | 8 +- src/uadk_prov_dh.c | 89 +++++++++++---------- src/uadk_prov_digest.c | 23 +++--- src/uadk_prov_ec_kmgmt.c | 3 +- src/uadk_prov_ecdh_exch.c | 21 +++-- src/uadk_prov_ecdsa.c | 8 +- src/uadk_prov_ecx.c | 53 ++++++------ src/uadk_prov_ffc.c | 160 ++++++++++++++++++++----------------- src/uadk_prov_ffc.h | 4 +- src/uadk_prov_hmac.c | 20 ++--- src/uadk_prov_init.c | 10 +-- src/uadk_prov_packet.c | 48 ++++++----- src/uadk_prov_packet.h | 52 ++++++------ src/uadk_prov_pkey.c | 63 ++++++++------- src/uadk_prov_rsa.c | 82 +++++++++---------- src/uadk_prov_sm2.c | 135 ++++++++++++++++--------------- src/uadk_rsa.c | 31 +++---- src/uadk_sm2.c | 59 ++++++++------ 31 files changed, 594 insertions(+), 511 deletions(-) -- 2.33.0

From: Hao Fang <fanghao11@huawei.com> Some tiny fixes for code format alignment. Signed-off-by: Hao Fang <fanghao11@huawei.com> Signed-off-by: JiangShui Yang <yangjiangshui@h-partners.com> --- src/uadk_cipher.c | 4 +- src/uadk_dh.c | 4 +- src/uadk_digest.c | 20 +++---- src/uadk_pkey.c | 2 +- src/uadk_pkey.h | 2 +- src/uadk_prov_aead.c | 2 +- src/uadk_prov_bio.c | 16 +++--- src/uadk_prov_cipher.c | 28 ++++----- src/uadk_prov_der_writer.c | 92 +++++++++++++++--------------- src/uadk_prov_der_writer.h | 8 +-- src/uadk_prov_dh.c | 43 +++++++------- src/uadk_prov_digest.c | 20 +++---- src/uadk_prov_ecdh_exch.c | 8 +-- src/uadk_prov_ecx.c | 32 +++++------ src/uadk_prov_ffc.c | 113 ++++++++++++++++++------------------- src/uadk_prov_ffc.h | 4 +- src/uadk_prov_hmac.c | 10 ++-- src/uadk_prov_init.c | 2 +- src/uadk_prov_packet.c | 47 ++++++++------- src/uadk_prov_packet.h | 48 ++++++++-------- src/uadk_prov_pkey.c | 58 +++++++++---------- src/uadk_prov_rsa.c | 48 ++++++++-------- src/uadk_prov_sm2.c | 108 ++++++++++++++++++----------------- src/uadk_rsa.c | 6 +- src/uadk_sm2.c | 18 +++--- 25 files changed, 372 insertions(+), 371 deletions(-) diff --git a/src/uadk_cipher.c b/src/uadk_cipher.c index 95af193..b0e9dbe 100644 --- a/src/uadk_cipher.c +++ b/src/uadk_cipher.c @@ -27,7 +27,7 @@ #include "uadk_async.h" #include "uadk_cipher_adapter.h" -#define UADK_DO_SOFT (-0xE0) +#define UADK_DO_SOFT (-0xE0) #define CTX_SYNC_ENC 0 #define CTX_SYNC_DEC 1 #define CTX_ASYNC_ENC 2 @@ -292,7 +292,7 @@ static handle_t sched_single_init(handle_t h_sched_ctx, void *sched_param) } static __u32 sched_single_pick_next_ctx(handle_t sched_ctx, - void *sched_key, const int sched_mode) + void *sched_key, const int sched_mode) { struct sched_params *key = (struct sched_params *)sched_key; diff --git a/src/uadk_dh.c b/src/uadk_dh.c index 011bf56..dfeeb90 100644 --- a/src/uadk_dh.c +++ b/src/uadk_dh.c @@ -934,8 +934,8 @@ exe_soft: } static int uadk_e_dh_bn_mod_exp(const DH *dh, BIGNUM *r, const BIGNUM *a, - const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, - BN_MONT_CTX *m_ctx) + const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, + BN_MONT_CTX *m_ctx) { return BN_mod_exp_mont(r, a, p, m, ctx, m_ctx); } diff --git a/src/uadk_digest.c b/src/uadk_digest.c index 0b4e8c5..48b6e4b 100644 --- a/src/uadk_digest.c +++ b/src/uadk_digest.c @@ -38,7 +38,7 @@ #define ENV_ENABLED 1 /* The max BD data length is 16M-512B */ -#define BUF_LEN 0xFFFE00 +#define BUF_LEN 0xFFFE00 #define SM3_DIGEST_LENGTH 32 #define SHA1_CBLOCK 64 @@ -48,15 +48,15 @@ #define MD5_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT (8 * 1024) #define SHA_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT (512) #define MAX_DIGEST_LENGTH 64 -#define DIGEST_BLOCK_SIZE (512 * 1024) +#define DIGEST_BLOCK_SIZE (512 * 1024) /* copied form openssl/include/internal/sm3.h * OpenSSL 3.0 has no <openssl/sm3.h> */ -# define SM3_DIGEST_LENGTH 32 -# define SM3_WORD unsigned int -# define SM3_CBLOCK 64 -# define SM3_LBLOCK (SM3_CBLOCK/4) +# define SM3_DIGEST_LENGTH 32 +# define SM3_WORD unsigned int +# define SM3_CBLOCK 64 +# define SM3_LBLOCK (SM3_CBLOCK/4) typedef struct SM3state_st { SM3_WORD A, B, C, D, E, F, G, H; @@ -373,7 +373,7 @@ static handle_t sched_single_init(handle_t h_sched_ctx, void *sched_param) } static __u32 sched_single_pick_next_ctx(handle_t sched_ctx, - void *sched_key, const int sched_mode) + void *sched_key, const int sched_mode) { if (sched_mode) return CTX_ASYNC; @@ -536,8 +536,8 @@ err_unlock: } static void digest_priv_ctx_setup(struct digest_priv_ctx *priv, - enum wd_digest_type alg, enum wd_digest_mode mode, - __u32 out_len) + enum wd_digest_type alg, enum wd_digest_mode mode, + __u32 out_len) { priv->setup.alg = alg; priv->setup.mode = mode; @@ -837,7 +837,7 @@ static int do_digest_async(struct digest_priv_ctx *priv, struct async_op *op) } if (priv->req.in_bytes <= priv->switch_threshold && - priv->state == SEC_DIGEST_INIT) { + priv->state == SEC_DIGEST_INIT) { /* hw v2 does not support in_bytes=0 refer digest_bd2_type_check * so switch to sw */ diff --git a/src/uadk_pkey.c b/src/uadk_pkey.c index e05c7d0..c779a9c 100644 --- a/src/uadk_pkey.c +++ b/src/uadk_pkey.c @@ -63,7 +63,7 @@ static handle_t ecc_sched_init(handle_t h_sched_ctx, void *sched_param) } static __u32 ecc_pick_next_ctx(handle_t sched_ctx, - void *sched_key, const int sched_mode) + void *sched_key, const int sched_mode) { if (sched_mode) return CTX_ASYNC; diff --git a/src/uadk_pkey.h b/src/uadk_pkey.h index 3168474..668768b 100644 --- a/src/uadk_pkey.h +++ b/src/uadk_pkey.h @@ -60,7 +60,7 @@ bool uadk_support_algorithm(const char *alg); int uadk_ecc_get_rand(char *out, size_t out_len, void *usr); void uadk_e_ecc_cb(void *req_t); void uadk_ecc_fill_req(struct wd_ecc_req *req, - unsigned int op, void *in, void *out); + unsigned int op, void *in, void *out); int uadk_ecc_set_private_key(handle_t sess, const EC_KEY *eckey); int uadk_ecc_set_public_key(handle_t sess, const EC_KEY *eckey); int uadk_ecc_crypto(handle_t sess, struct wd_ecc_req *req, diff --git a/src/uadk_prov_aead.c b/src/uadk_prov_aead.c index 59c13b4..4709e52 100644 --- a/src/uadk_prov_aead.c +++ b/src/uadk_prov_aead.c @@ -431,7 +431,7 @@ static int do_aes_gcm_prepare(struct aead_priv_ctx *priv) } static void uadk_do_aead_async_prepare(struct aead_priv_ctx *priv, unsigned char *output, - const unsigned char *input, size_t inlen) + const unsigned char *input, size_t inlen) { priv->req.in_bytes = inlen; /* AAD data will be input and output together with plaintext or ciphertext. */ diff --git a/src/uadk_prov_bio.c b/src/uadk_prov_bio.c index d419a6a..b7386b2 100644 --- a/src/uadk_prov_bio.c +++ b/src/uadk_prov_bio.c @@ -230,14 +230,14 @@ BIO_METHOD *ossl_bio_prov_init_bio_method(void) BIO_METHOD *corebiometh = NULL; corebiometh = BIO_meth_new(BIO_TYPE_CORE_TO_PROV, "BIO to Core filter"); - if (corebiometh == NULL - || !BIO_meth_set_write_ex(corebiometh, bio_core_write_ex) - || !BIO_meth_set_read_ex(corebiometh, bio_core_read_ex) - || !BIO_meth_set_puts(corebiometh, bio_core_puts) - || !BIO_meth_set_gets(corebiometh, bio_core_gets) - || !BIO_meth_set_ctrl(corebiometh, bio_core_ctrl) - || !BIO_meth_set_create(corebiometh, bio_core_new) - || !BIO_meth_set_destroy(corebiometh, bio_core_free)) { + if (corebiometh == NULL || + !BIO_meth_set_write_ex(corebiometh, bio_core_write_ex) || + !BIO_meth_set_read_ex(corebiometh, bio_core_read_ex) || + !BIO_meth_set_puts(corebiometh, bio_core_puts) || + !BIO_meth_set_gets(corebiometh, bio_core_gets) || + !BIO_meth_set_ctrl(corebiometh, bio_core_ctrl) || + !BIO_meth_set_create(corebiometh, bio_core_new) || + !BIO_meth_set_destroy(corebiometh, bio_core_free)) { BIO_meth_free(corebiometh); return NULL; } diff --git a/src/uadk_prov_cipher.c b/src/uadk_prov_cipher.c index ab9b239..aa2d0b6 100644 --- a/src/uadk_prov_cipher.c +++ b/src/uadk_prov_cipher.c @@ -56,13 +56,13 @@ #define UADK_CIPHER_OP_NUM 1 /* OSSL_CIPHER_PARAM_CTS_MODE Values */ -# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" -# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" -# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" -# define UADK_CIPHER_CTS_CS1_NAME "cbc-cs1(aes)" -# define UADK_CIPHER_CTS_CS2_NAME "cbc-cs2(aes)" -# define UADK_CIPHER_CTS_CS3_NAME "cbc-cs3(aes)" +# define UADK_CIPHER_CTS_CS1_NAME "cbc-cs1(aes)" +# define UADK_CIPHER_CTS_CS2_NAME "cbc-cs2(aes)" +# define UADK_CIPHER_CTS_CS3_NAME "cbc-cs3(aes)" enum uadk_cipher_alg_id { ID_aes_128_ecb, @@ -95,10 +95,10 @@ enum uadk_cipher_alg_id { }; /* Internal flags that are only used within the provider */ -#define PROV_CIPHER_FLAG_VARIABLE_LENGTH 0x0100 -#define PROV_CIPHER_FLAG_INVERSE_CIPHER 0x0200 +#define PROV_CIPHER_FLAG_VARIABLE_LENGTH 0x0100 +#define PROV_CIPHER_FLAG_INVERSE_CIPHER 0x0200 -#define SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT 192 +#define SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT 192 struct cipher_prov { int pid; @@ -667,7 +667,7 @@ static size_t ossl_cipher_fillblock(unsigned char *buf, size_t *buflen, * fit into a full block. */ static int ossl_cipher_trailingdata(unsigned char *buf, size_t *buflen, size_t blocksize, - const unsigned char **in, size_t *inlen) + const unsigned char **in, size_t *inlen) { if (*inlen == 0) return UADK_P_SUCCESS; @@ -1220,14 +1220,14 @@ static int uadk_prov_cipher_get_ctx_params(void *vctx, OSSL_PARAM params[]) return UADK_P_FAIL; } p = OSSL_PARAM_locate(params, OSSL_CIPHER_PARAM_IV); - if (p != NULL && !OSSL_PARAM_set_octet_string(p, priv->iv, priv->ivlen) - && !OSSL_PARAM_set_octet_ptr(p, &priv->iv, priv->ivlen)) { + if (p != NULL && !OSSL_PARAM_set_octet_string(p, priv->iv, priv->ivlen) && + !OSSL_PARAM_set_octet_ptr(p, &priv->iv, priv->ivlen)) { ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER); return UADK_P_FAIL; } p = OSSL_PARAM_locate(params, OSSL_CIPHER_PARAM_UPDATED_IV); - if (p != NULL && !OSSL_PARAM_set_octet_string(p, priv->iv, priv->ivlen) - && !OSSL_PARAM_set_octet_ptr(p, &priv->iv, priv->ivlen)) { + if (p != NULL && !OSSL_PARAM_set_octet_string(p, priv->iv, priv->ivlen) && + !OSSL_PARAM_set_octet_ptr(p, &priv->iv, priv->ivlen)) { ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER); return UADK_P_FAIL; } diff --git a/src/uadk_prov_der_writer.c b/src/uadk_prov_der_writer.c index 7e5ee31..0142641 100644 --- a/src/uadk_prov_der_writer.c +++ b/src/uadk_prov_der_writer.c @@ -105,40 +105,40 @@ static int int_end_context(WPACKET *pkt, int tag) /* Context specific are normally (?) constructed */ tag |= DER_F_CONSTRUCTED | DER_C_CONTEXT; - return WPACKET_get_total_written(pkt, &size1) - && WPACKET_close(pkt) - && WPACKET_get_total_written(pkt, &size2) - && (size1 == size2 || WPACKET_put_bytes_u8(pkt, tag)); + return WPACKET_get_total_written(pkt, &size1) && + WPACKET_close(pkt) && + WPACKET_get_total_written(pkt, &size2) && + (size1 == size2 || WPACKET_put_bytes_u8(pkt, tag)); } int ossl_DER_w_precompiled(WPACKET *pkt, int tag, - const unsigned char *precompiled, - size_t precompiled_n) + const unsigned char *precompiled, + size_t precompiled_n) { - return int_start_context(pkt, tag) - && WPACKET_memcpy(pkt, precompiled, precompiled_n) - && int_end_context(pkt, tag); + return int_start_context(pkt, tag) && + WPACKET_memcpy(pkt, precompiled, precompiled_n) && + int_end_context(pkt, tag); } int ossl_DER_w_boolean(WPACKET *pkt, int tag, int b) { - return int_start_context(pkt, tag) - && WPACKET_start_sub_packet(pkt) - && (!b || WPACKET_put_bytes_u8(pkt, 0xFF)) - && !WPACKET_close(pkt) - && !WPACKET_put_bytes_u8(pkt, DER_P_BOOLEAN) - && int_end_context(pkt, tag); + return int_start_context(pkt, tag) && + WPACKET_start_sub_packet(pkt) && + (!b || WPACKET_put_bytes_u8(pkt, 0xFF)) && + !WPACKET_close(pkt) && + !WPACKET_put_bytes_u8(pkt, DER_P_BOOLEAN) && + int_end_context(pkt, tag); } int ossl_DER_w_octet_string(WPACKET *pkt, int tag, const unsigned char *data, size_t data_n) { - return int_start_context(pkt, tag) - && WPACKET_start_sub_packet(pkt) - && WPACKET_memcpy(pkt, data, data_n) - && WPACKET_close(pkt) - && WPACKET_put_bytes_u8(pkt, DER_P_OCTET_STRING) - && int_end_context(pkt, tag); + return int_start_context(pkt, tag) && + WPACKET_start_sub_packet(pkt) && + WPACKET_memcpy(pkt, data, data_n) && + WPACKET_close(pkt) && + WPACKET_put_bytes_u8(pkt, DER_P_OCTET_STRING) && + int_end_context(pkt, tag); } int ossl_DER_w_octet_string_uint32(WPACKET *pkt, int tag, uint32_t value) @@ -161,13 +161,13 @@ static int int_der_w_integer(WPACKET *pkt, int tag, { unsigned int top_byte = 0; - return int_start_context(pkt, tag) - && WPACKET_start_sub_packet(pkt) - && put_bytes(pkt, v, &top_byte) - && ((top_byte & 0x80) == 0 || WPACKET_put_bytes_u8(pkt, 0)) - && WPACKET_close(pkt) - && WPACKET_put_bytes_u8(pkt, DER_P_INTEGER) - && int_end_context(pkt, tag); + return int_start_context(pkt, tag) && + WPACKET_start_sub_packet(pkt) && + put_bytes(pkt, v, &top_byte) && + ((top_byte & 0x80) == 0 || WPACKET_put_bytes_u8(pkt, 0)) && + WPACKET_close(pkt) && + WPACKET_put_bytes_u8(pkt, DER_P_INTEGER) && + int_end_context(pkt, tag); } static int int_put_bytes_uint32(WPACKET *pkt, const void *v, @@ -234,18 +234,18 @@ int ossl_DER_w_bn(WPACKET *pkt, int tag, const BIGNUM *v) int ossl_DER_w_null(WPACKET *pkt, int tag) { - return int_start_context(pkt, tag) - && WPACKET_start_sub_packet(pkt) - && WPACKET_close(pkt) - && WPACKET_put_bytes_u8(pkt, DER_P_NULL) - && int_end_context(pkt, tag); + return int_start_context(pkt, tag) && + WPACKET_start_sub_packet(pkt) && + WPACKET_close(pkt) && + WPACKET_put_bytes_u8(pkt, DER_P_NULL) && + int_end_context(pkt, tag); } /* Constructed things need a start and an end */ int ossl_DER_w_begin_sequence(WPACKET *pkt, int tag) { - return int_start_context(pkt, tag) - && WPACKET_start_sub_packet(pkt); + return int_start_context(pkt, tag) && + WPACKET_start_sub_packet(pkt); } int ossl_DER_w_end_sequence(WPACKET *pkt, int tag) @@ -262,17 +262,17 @@ int ossl_DER_w_end_sequence(WPACKET *pkt, int tag) */ size_t size1, size2; - return WPACKET_get_total_written(pkt, &size1) - && WPACKET_close(pkt) - && WPACKET_get_total_written(pkt, &size2) - && (size1 == size2 - ? WPACKET_set_flags(pkt, WPACKET_FLAGS_ABANDON_ON_ZERO_LENGTH) - : WPACKET_put_bytes_u8(pkt, DER_F_CONSTRUCTED | DER_P_SEQUENCE)) - && int_end_context(pkt, tag); + return WPACKET_get_total_written(pkt, &size1) && + WPACKET_close(pkt) && + WPACKET_get_total_written(pkt, &size2) && + (size1 == size2 ? + WPACKET_set_flags(pkt, WPACKET_FLAGS_ABANDON_ON_ZERO_LENGTH) : + WPACKET_put_bytes_u8(pkt, DER_F_CONSTRUCTED | DER_P_SEQUENCE)) && + int_end_context(pkt, tag); } int ossl_DER_w_algorithmIdentifier_SM2_with_MD(WPACKET *pkt, int cont, - EC_KEY *ec, int mdnid) + EC_KEY *ec, int mdnid) { const unsigned char *precompiled = NULL; size_t precompiled_sz = 0; @@ -286,9 +286,9 @@ int ossl_DER_w_algorithmIdentifier_SM2_with_MD(WPACKET *pkt, int cont, return 0; } - return ossl_DER_w_begin_sequence(pkt, cont) /* No parameters (yet?) */ - && ossl_DER_w_precompiled(pkt, -1, precompiled, precompiled_sz) - && ossl_DER_w_end_sequence(pkt, cont); + return ossl_DER_w_begin_sequence(pkt, cont) && /* No parameters (yet?) */ + ossl_DER_w_precompiled(pkt, -1, precompiled, precompiled_sz) && + ossl_DER_w_end_sequence(pkt, cont); } int ossl_DER_w_algorithmIdentifier_ECDSA_with_MD(WPACKET *pkt, int cont, diff --git a/src/uadk_prov_der_writer.h b/src/uadk_prov_der_writer.h index 4f0bab5..d2a47ea 100644 --- a/src/uadk_prov_der_writer.h +++ b/src/uadk_prov_der_writer.h @@ -107,15 +107,15 @@ struct ec_key_st { }; int ossl_DER_w_precompiled(WPACKET *pkt, int tag, - const unsigned char *precompiled, - size_t precompiled_n); + const unsigned char *precompiled, + size_t precompiled_n); int ossl_DER_w_boolean(WPACKET *pkt, int tag, int b); int ossl_DER_w_uint32(WPACKET *pkt, int tag, uint32_t v); int ossl_DER_w_bn(WPACKET *pkt, int tag, const BIGNUM *v); int ossl_DER_w_null(WPACKET *pkt, int tag); int ossl_DER_w_octet_string(WPACKET *pkt, int tag, - const unsigned char *data, size_t data_n); + const unsigned char *data, size_t data_n); int ossl_DER_w_octet_string_uint32(WPACKET *pkt, int tag, uint32_t value); /* @@ -125,7 +125,7 @@ int ossl_DER_w_begin_sequence(WPACKET *pkt, int tag); int ossl_DER_w_end_sequence(WPACKET *pkt, int tag); int ossl_DER_w_algorithmIdentifier_SM2_with_MD(WPACKET *pkt, int cont, - EC_KEY *ec, int mdnid); + EC_KEY *ec, int mdnid); int ossl_DER_w_algorithmIdentifier_ECDSA_with_MD(WPACKET *pkt, int cont, EC_KEY *ec, int mdnid); #endif diff --git a/src/uadk_prov_dh.c b/src/uadk_prov_dh.c index dc7fab7..9e9ed1a 100644 --- a/src/uadk_prov_dh.c +++ b/src/uadk_prov_dh.c @@ -342,7 +342,7 @@ static int uadk_keymgmt_dh_gen_set_template(void *genctx, void *templ) } static const OSSL_PARAM *uadk_keymgmt_dh_gen_settable_params(ossl_unused void *genctx, - ossl_unused void *provctx) + ossl_unused void *provctx) { if (get_default_dh_keymgmt().gen_settable_params == NULL) return NULL; @@ -479,7 +479,7 @@ static int uadk_dh_gen_prikey_undef(const DH *dh, BIGNUM *new_prikey) int bits; bits = uadk_DH_get_length(dh) ? - uadk_DH_get_length(dh) : BN_num_bits(uadk_DH_get0_p(dh)) - 1; + uadk_DH_get_length(dh) : BN_num_bits(uadk_DH_get0_p(dh)) - 1; if (!BN_priv_rand(new_prikey, bits, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY)) { fprintf(stderr, "failed to BN_priv_rand\n"); return UADK_P_FAIL; @@ -522,8 +522,8 @@ static int dh_gen_rand_prikey(const DH *dh, BIGNUM *new_prikey) m = (BN_cmp(two_powN, dh->params.q) > 0) ? dh->params.q : two_powN; do { - if (!BN_priv_rand_range_ex(new_prikey, two_powN, 0, NULL) - || !BN_add_word(new_prikey, 1)) { + if (!BN_priv_rand_range_ex(new_prikey, two_powN, 0, NULL) || + !BN_add_word(new_prikey, 1)) { fprintf(stderr, "failed to BN_priv_rand_range_ex\n"); goto err; } @@ -1067,16 +1067,18 @@ static int ossl_dh_get_named_group_uid_from_size(int pbits) } static int ossl_dh_generate_ffc_parameters(DH *dh, int type, int pbits, int qbits, - BN_GENCB *cb) + BN_GENCB *cb) { int ret, res; if (type == DH_PARAMGEN_TYPE_FIPS_186_2) ret = ossl_ffc_params_FIPS186_2_generate(dh->libctx, &dh->params, - FFC_PARAM_TYPE_DH, pbits, qbits, &res, cb); + FFC_PARAM_TYPE_DH, pbits, + qbits, &res, cb); else ret = ossl_ffc_params_FIPS186_4_generate(dh->libctx, &dh->params, - FFC_PARAM_TYPE_DH, pbits, qbits, &res, cb); + FFC_PARAM_TYPE_DH, pbits, + qbits, &res, cb); if (ret > 0) dh->dirty_cnt++; @@ -1232,7 +1234,8 @@ static int uadk_prov_dh_gen_params_cb(PROV_DH_KEYMGMT_CTX *gctx, DH *dh, gctx->generator, gencb); else ret = ossl_dh_generate_ffc_parameters(dh, gctx->gen_type, - gctx->pbits, gctx->qbits, gencb); + gctx->pbits, + gctx->qbits, gencb); if (ret <= 0) { fprintf(stderr, "failed to generate ffc parameters\n"); ret = UADK_P_FAIL; @@ -1331,7 +1334,7 @@ static void *uadk_keymgmt_dh_gen(void *genctx, OSSL_CALLBACK *cb, void *cb_param (void)DH_set_length(dh, (long)gctx->priv_len); ossl_ffc_params_enable_flags(ffc, FFC_PARAM_FLAG_VALIDATE_LEGACY, - gctx->gen_type == DH_PARAMGEN_TYPE_FIPS_186_2); + gctx->gen_type == DH_PARAMGEN_TYPE_FIPS_186_2); ret = uadk_prov_dh_generate_key(dh); if (ret != UADK_P_SUCCESS) { @@ -1487,7 +1490,7 @@ static int uadk_keyexch_dh_set_peer(void *dhctx, void *dh) } if (uadk_keyexch_dh_match_params(dh, pdhctx->dh) == UADK_P_FAIL || - DH_up_ref(dh) == UADK_P_FAIL) { + DH_up_ref(dh) == UADK_P_FAIL) { fprintf(stderr, "failed to match dh params\n"); return UADK_P_FAIL; } @@ -1653,7 +1656,7 @@ static int uadk_dh_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, } static int uadk_prov_dh_plain_derive(PROV_DH_KEYEXCH_CTX *pdhctx, unsigned char *secret, - size_t *secretlen, size_t outlen, unsigned int pad) + size_t *secretlen, size_t outlen, unsigned int pad) { const BIGNUM *pubkey = NULL; size_t dhsize; @@ -1732,10 +1735,10 @@ static int ossl_dh_kdf_X9_42_asn1(unsigned char *out, PROV_DH_KEYEXCH_CTX *pdhct *p++ = OSSL_PARAM_construct_utf8_string(OSSL_KDF_PARAM_DIGEST, (char *)mdname, 0); *p++ = OSSL_PARAM_construct_octet_string(OSSL_KDF_PARAM_KEY, - (unsigned char *)z, z_len); + (unsigned char *)z, z_len); if (ukm != NULL) *p++ = OSSL_PARAM_construct_octet_string(OSSL_KDF_PARAM_UKM, - (unsigned char *)ukm, ukmlen); + (unsigned char *)ukm, ukmlen); *p++ = OSSL_PARAM_construct_utf8_string(OSSL_KDF_PARAM_CEK_ALG, (char *)cek_alg, 0); @@ -1750,7 +1753,7 @@ end: } static int uadk_prov_dh_X9_42_kdf_derive(PROV_DH_KEYEXCH_CTX *pdhctx, unsigned char *secret, - size_t *secretlen, size_t outlen) + size_t *secretlen, size_t outlen) { unsigned char *stmp = NULL; size_t stmplen; @@ -1799,7 +1802,7 @@ end: } static int uadk_dh_sw_derive(void *dhctx, unsigned char *secret, - size_t *psecretlen, size_t outlen) + size_t *psecretlen, size_t outlen) { if (!enable_sw_offload || !get_default_dh_keyexch().derive) return UADK_P_FAIL; @@ -2122,8 +2125,9 @@ static int uadk_keyexch_dh_get_ctx_params(void *dhctx, OSSL_PARAM params[]) } p = OSSL_PARAM_locate(params, OSSL_EXCHANGE_PARAM_KDF_DIGEST); - if (p != NULL && !OSSL_PARAM_set_utf8_string(p, pdhctx->kdf_md == NULL - ? "" : EVP_MD_get0_name(pdhctx->kdf_md))) { + if (p != NULL && + !OSSL_PARAM_set_utf8_string(p, pdhctx->kdf_md == NULL ? + "" : EVP_MD_get0_name(pdhctx->kdf_md))) { fprintf(stderr, "failed to set kdf_md\n"); return UADK_P_FAIL; } @@ -2141,8 +2145,9 @@ static int uadk_keyexch_dh_get_ctx_params(void *dhctx, OSSL_PARAM params[]) } p = OSSL_PARAM_locate(params, OSSL_KDF_PARAM_CEK_ALG); - if (p != NULL && !OSSL_PARAM_set_utf8_string(p, pdhctx->kdf_cekalg == NULL - ? "" : pdhctx->kdf_cekalg)) { + if (p != NULL && + !OSSL_PARAM_set_utf8_string(p, pdhctx->kdf_cekalg == NULL ? + "" : pdhctx->kdf_cekalg)) { fprintf(stderr, "failed to set kdf_cekalg\n"); return UADK_P_FAIL; } diff --git a/src/uadk_prov_digest.c b/src/uadk_prov_digest.c index 98e25e1..dbecdc2 100644 --- a/src/uadk_prov_digest.c +++ b/src/uadk_prov_digest.c @@ -51,7 +51,7 @@ #define SHA_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT (512) #define MAX_DIGEST_LENGTH 64 #define DIGEST_BLOCK_SIZE (512 * 1024) -#define ALG_NAME_SIZE 128 +#define ALG_NAME_SIZE 128 #define UADK_DIGEST_DEF_CTXS 1 #define UADK_DIGEST_OP_NUM 1 @@ -409,11 +409,11 @@ static void uadk_fill_mac_buffer_len(struct digest_priv_ctx *priv, bool is_end) break; case NID_sha512_224: priv->req.out_bytes = !is_end ? - WD_DIGEST_SHA512_224_FULL_LEN : WD_DIGEST_SHA512_224_LEN; + WD_DIGEST_SHA512_224_FULL_LEN : WD_DIGEST_SHA512_224_LEN; break; case NID_sha512_256: priv->req.out_bytes = !is_end ? - WD_DIGEST_SHA512_256_FULL_LEN : WD_DIGEST_SHA512_256_LEN; + WD_DIGEST_SHA512_256_FULL_LEN : WD_DIGEST_SHA512_256_LEN; break; default: break; @@ -453,7 +453,7 @@ static int uadk_digest_update_inner(struct digest_priv_ctx *priv, const void *da if (priv->last_update_bufflen != 0) { processing_len = DIGEST_BLOCK_SIZE - priv->last_update_bufflen; uadk_memcpy(priv->data + priv->last_update_bufflen, input_data, - processing_len); + processing_len); priv->req.in_bytes = DIGEST_BLOCK_SIZE; priv->req.in = priv->data; @@ -783,14 +783,12 @@ static int uadk_digest_default_get_params(OSSL_PARAM params[], size_t blksz, return UADK_DIGEST_FAIL; } p = OSSL_PARAM_locate(params, OSSL_DIGEST_PARAM_XOF); - if (p != NULL - && !OSSL_PARAM_set_int(p, 0)) { + if (p != NULL && !OSSL_PARAM_set_int(p, 0)) { ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER); return UADK_DIGEST_FAIL; } p = OSSL_PARAM_locate(params, OSSL_DIGEST_PARAM_ALGID_ABSENT); - if (p != NULL - && !OSSL_PARAM_set_int(p, 0)) { + if (p != NULL && !OSSL_PARAM_set_int(p, 0)) { ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER); return UADK_DIGEST_FAIL; } @@ -834,8 +832,8 @@ static void *uadk_prov_dupctx(void *dctx) * Length that the hardware has processed should be equal to * total input data length minus software cache data length. */ - dst_ctx->req.long_data_len = dst_ctx->total_data_len - - dst_ctx->last_update_bufflen; + dst_ctx->req.long_data_len = dst_ctx->total_data_len - + dst_ctx->last_update_bufflen; } dst_ctx->sess = 0; @@ -935,7 +933,7 @@ static int uadk_prov_final(void *dctx, unsigned char *out, } static int uadk_prov_digest(void *dctx, const unsigned char *in, size_t inl, - unsigned char *out, size_t *outl, size_t outsz) + unsigned char *out, size_t *outl, size_t outsz) { struct digest_priv_ctx *priv = (struct digest_priv_ctx *)dctx; int ret; diff --git a/src/uadk_prov_ecdh_exch.c b/src/uadk_prov_ecdh_exch.c index f508b9f..a59316c 100644 --- a/src/uadk_prov_ecdh_exch.c +++ b/src/uadk_prov_ecdh_exch.c @@ -165,7 +165,7 @@ static int ecdh_set_privk(struct ecdh_ctx *pecdhctx, * set to ctx->cofactor_mode */ key_cofactor_mode = (EC_KEY_get_flags(pecdhctx->k) & EC_FLAG_COFACTOR_ECDH) ? - COFACTOR_MODE_ENABLED : COFACTOR_MODE_DISABLED; + COFACTOR_MODE_ENABLED : COFACTOR_MODE_DISABLED; if (pecdhctx->cofactor_mode != COFACTOR_MODE_USE_KEY && pecdhctx->cofactor_mode != key_cofactor_mode && !BN_is_one(sess_ctx->cofactor)) { @@ -449,7 +449,7 @@ static int ecdh_X9_63_kdf_derive(struct ecdh_ctx *pecdhctx, unsigned char *secre } static int uadk_ecdh_sw_derive(void *vpecdhctx, unsigned char *secret, - size_t *psecretlen, size_t outlen) + size_t *psecretlen, size_t outlen) { if (!enable_sw_offload || !get_default_ecdh_keyexch().derive) return UADK_P_FAIL; @@ -681,8 +681,8 @@ static int ecdh_get_cofactor_mode(struct ecdh_ctx *pectx, OSSL_PARAM params[]) if (mode == COFACTOR_MODE_USE_KEY) /* Check what is the default for pecdhctx->k */ - mode = EC_KEY_get_flags(pectx->k) & EC_FLAG_COFACTOR_ECDH ? - COFACTOR_MODE_ENABLED : COFACTOR_MODE_DISABLED; + mode = (EC_KEY_get_flags(pectx->k) & EC_FLAG_COFACTOR_ECDH) ? + COFACTOR_MODE_ENABLED : COFACTOR_MODE_DISABLED; return OSSL_PARAM_set_int(p, mode); } diff --git a/src/uadk_prov_ecx.c b/src/uadk_prov_ecx.c index 8f3ea19..51f048f 100644 --- a/src/uadk_prov_ecx.c +++ b/src/uadk_prov_ecx.c @@ -43,7 +43,7 @@ #define UADK_CRYPTO_UP_REF(val, ret, lock) CRYPTO_atomic_add(val, 1, ret, lock) static inline int UADK_CRYPTO_DOWN_REF(int *val, int *ret, - ossl_unused void *lock) + ossl_unused void *lock) { *ret = __atomic_fetch_sub(val, 1, __ATOMIC_RELAXED) - 1; if (*ret == 0) @@ -256,7 +256,7 @@ static const OSSL_PARAM *uadk_keymgmt_x448_settable_params(void *provctx) } static int uadk_keymgmt_x448_gen_set_params(void *genctx, - const OSSL_PARAM params[]) + const OSSL_PARAM params[]) { if (get_default_x448_keymgmt().gen_set_params == NULL) return UADK_P_FAIL; @@ -265,7 +265,7 @@ static int uadk_keymgmt_x448_gen_set_params(void *genctx, } static const OSSL_PARAM *uadk_keymgmt_x448_gen_settable_params(ossl_unused void *genctx, - ossl_unused void *provctx) + ossl_unused void *provctx) { if (get_default_x448_keymgmt().gen_settable_params == NULL) return NULL; @@ -425,7 +425,7 @@ static void uadk_prov_ecx_free_sess(handle_t sess) } static void *ossl_ecx_gen_init(void *provctx, int selection, const OSSL_PARAM params[], - ECX_KEY_TYPE type) + ECX_KEY_TYPE type) { OSSL_LIB_CTX *libctx = prov_libctx_of(provctx); PROV_ECX_KEYMGMT_CTX *gctx = NULL; @@ -813,7 +813,7 @@ static void *uadk_ecx_sw_gen(void *genctx, OSSL_CALLBACK *cb, void *cb_params, } static int uadk_ecx_sw_derive(void *vecxctx, unsigned char *secret, size_t *secretlen, - size_t outlen, ECX_KEY_TYPE alg_type) + size_t outlen, ECX_KEY_TYPE alg_type) { if (!enable_sw_offload) return UADK_P_FAIL; @@ -924,7 +924,7 @@ static int uadk_keyexch_x448_set_ctx_params(void *ecxctx, const OSSL_PARAM param } static const OSSL_PARAM *uadk_keyexch_x448_settable_ctx_params(ossl_unused void *ecxctx, - ossl_unused void *provctx) + ossl_unused void *provctx) { if (get_default_x448_keyexch().settable_ctx_params == NULL) return NULL; @@ -933,7 +933,7 @@ static const OSSL_PARAM *uadk_keyexch_x448_settable_ctx_params(ossl_unused void } static const OSSL_PARAM *uadk_keyexch_x448_gettable_ctx_params(ossl_unused void *ecxctx, - ossl_unused void *provctx) + ossl_unused void *provctx) { if (get_default_x448_keyexch().gettable_ctx_params == NULL) return NULL; @@ -960,7 +960,7 @@ static int ossl_ecx_key_up_ref(ECX_KEY *key) } static int uadk_keyexch_ecx_init(void *vecxctx, void *vkey, - ossl_unused const OSSL_PARAM params[]) + ossl_unused const OSSL_PARAM params[]) { PROV_ECX_KEYEXCH_CTX *ecxctx = (PROV_ECX_KEYEXCH_CTX *)vecxctx; ECX_KEY *key = vkey; @@ -1350,7 +1350,7 @@ static int uadk_keymgmt_x25519_import(void *keydata, int selection, const OSSL_P } static int uadk_keymgmt_x25519_export(void *keydata, int selection, - OSSL_CALLBACK *cb, void *cb_params) + OSSL_CALLBACK *cb, void *cb_params) { if (get_default_x25519_keymgmt().export_fun == NULL) return UADK_P_FAIL; @@ -1423,7 +1423,7 @@ static const OSSL_PARAM *uadk_keymgmt_x25519_settable_params(void *provctx) } static int uadk_keymgmt_x25519_gen_set_params(void *genctx, - const OSSL_PARAM params[]) + const OSSL_PARAM params[]) { if (get_default_x25519_keymgmt().gen_set_params == NULL) return UADK_P_FAIL; @@ -1432,7 +1432,7 @@ static int uadk_keymgmt_x25519_gen_set_params(void *genctx, } static const OSSL_PARAM *uadk_keymgmt_x25519_gen_settable_params(ossl_unused void *genctx, - ossl_unused void *provctx) + ossl_unused void *provctx) { if (get_default_x25519_keymgmt().gen_settable_params == NULL) return NULL; @@ -1472,7 +1472,7 @@ static void uadk_keymgmt_x25519_gen_cleanup(void *genctx) } static void *uadk_keymgmt_x25519_gen_init(void *provctx, int selection, - const OSSL_PARAM params[]) + const OSSL_PARAM params[]) { if (provctx == NULL) { fprintf(stderr, "invalid: provctx is NULL\n"); @@ -1573,7 +1573,7 @@ static int uadk_keyexch_x25519_set_ctx_params(void *ecxctx, const OSSL_PARAM par } static const OSSL_PARAM *uadk_keyexch_x25519_settable_ctx_params(ossl_unused void *ecxctx, - ossl_unused void *provctx) + ossl_unused void *provctx) { if (get_default_x25519_keyexch().settable_ctx_params == NULL) return NULL; @@ -1582,7 +1582,7 @@ static const OSSL_PARAM *uadk_keyexch_x25519_settable_ctx_params(ossl_unused voi } static const OSSL_PARAM *uadk_keyexch_x25519_gettable_ctx_params(ossl_unused void *ecxctx, - ossl_unused void *provctx) + ossl_unused void *provctx) { if (get_default_x25519_keyexch().gettable_ctx_params == NULL) return NULL; @@ -1599,7 +1599,7 @@ static int uadk_keyexch_x25519_get_ctx_params(void *ecxctx, OSSL_PARAM params[]) } static int uadk_keyexch_x25519_init(void *vecxctx, void *vkey, - ossl_unused const OSSL_PARAM params[]) + ossl_unused const OSSL_PARAM params[]) { return uadk_keyexch_ecx_init(vecxctx, vkey, params); } @@ -1610,7 +1610,7 @@ static int uadk_keyexch_x25519_set_peer(void *vecxctx, void *vkey) } static int uadk_keyexch_x25519_derive(void *vecxctx, unsigned char *secret, size_t *secretlen, - size_t outlen) + size_t outlen) { PROV_ECX_KEYEXCH_CTX *ecxctx = (PROV_ECX_KEYEXCH_CTX *)vecxctx; int ret; diff --git a/src/uadk_prov_ffc.c b/src/uadk_prov_ffc.c index a760a72..f617c92 100644 --- a/src/uadk_prov_ffc.c +++ b/src/uadk_prov_ffc.c @@ -547,7 +547,7 @@ make_dh_bn(modp_4096_p); make_dh_bn(modp_4096_q); int ossl_ffc_params_set_seed(FFC_PARAMS *params, - const unsigned char *seed, size_t seedlen) + const unsigned char *seed, size_t seedlen) { if (params == NULL) return 0; @@ -605,10 +605,10 @@ int ossl_ffc_params_copy(FFC_PARAMS *dst, const FFC_PARAMS *src) if (src == NULL || dst == NULL) return 0; - if (!ffc_bn_cpy(&dst->p, src->p) - || !ffc_bn_cpy(&dst->g, src->g) - || !ffc_bn_cpy(&dst->q, src->q) - || !ffc_bn_cpy(&dst->j, src->j)) + if (!ffc_bn_cpy(&dst->p, src->p) || + !ffc_bn_cpy(&dst->g, src->g) || + !ffc_bn_cpy(&dst->q, src->q) || + !ffc_bn_cpy(&dst->j, src->j)) return 0; OPENSSL_free(dst->seed); @@ -630,7 +630,7 @@ int ossl_ffc_params_copy(FFC_PARAMS *dst, const FFC_PARAMS *src) } void ossl_ffc_params_get0_pqg(const FFC_PARAMS *d, const BIGNUM **p, - const BIGNUM **q, const BIGNUM **g) + const BIGNUM **q, const BIGNUM **g) { if (d == NULL) return; @@ -867,15 +867,15 @@ static int generate_p(BN_CTX *ctx, const EVP_MD *evpmd, int max_counter, int n, * A.1.1.3 Step (13.1) * tmp = V(j) = Hash((seed + offset + j) % 2^seedlen) */ - if (!EVP_Digest(buf, buf_len, md, NULL, evpmd, NULL) - || (BN_bin2bn(md, mdsize, tmp) == NULL) - /* - * A.1.1.2 Step (11.2) - * A.1.1.3 Step (13.2) - * W += V(j) * 2^(outlen * j) - */ - || !BN_lshift(tmp, tmp, (mdsize << 3) * j) - || !BN_add(W, W, tmp)) + if (!EVP_Digest(buf, buf_len, md, NULL, evpmd, NULL) || + (BN_bin2bn(md, mdsize, tmp) == NULL) || + /* + * A.1.1.2 Step (11.2) + * A.1.1.3 Step (13.2) + * W += V(j) * 2^(outlen * j) + */ + !BN_lshift(tmp, tmp, (mdsize << 3) * j) || + !BN_add(W, W, tmp)) goto err; } @@ -884,23 +884,23 @@ static int generate_p(BN_CTX *ctx, const EVP_MD *evpmd, int max_counter, int n, * A.1.1.3 Step (13.3) * X = W + 2^(L-1) where W < 2^(L-1) */ - if (!BN_mask_bits(W, L - 1) - || !BN_copy(X, W) - || !BN_add(X, X, test) - /* - * A.1.1.2 Step (11.4) AND - * A.1.1.3 Step (13.4) - * c = X mod 2q - */ - || !BN_lshift1(tmp, q) - || !BN_mod(c, X, tmp, ctx) - /* - * A.1.1.2 Step (11.5) AND - * A.1.1.3 Step (13.5) - * p = X - (c - 1) - */ - || !BN_sub(tmp, c, BN_value_one()) - || !BN_sub(p, X, tmp)) + if (!BN_mask_bits(W, L - 1) || + !BN_copy(X, W) || + !BN_add(X, X, test) || + /* + * A.1.1.2 Step (11.4) AND + * A.1.1.3 Step (13.4) + * c = X mod 2q + */ + !BN_lshift1(tmp, q) || + !BN_mod(c, X, tmp, ctx) || + /* + * A.1.1.2 Step (11.5) AND + * A.1.1.3 Step (13.5) + * p = X - (c - 1) + */ + !BN_sub(tmp, c, BN_value_one()) || + !BN_sub(p, X, tmp)) goto err; /* @@ -1175,9 +1175,9 @@ int ossl_ffc_params_FIPS186_2_gen_verify(OSSL_LIB_CTX *libctx, *res = FFC_CHECK_BAD_LN_PAIR; goto err; } - if (qsize != SHA_DIGEST_LENGTH - && qsize != SHA224_DIGEST_LENGTH - && qsize != SHA256_DIGEST_LENGTH) { + if (qsize != SHA_DIGEST_LENGTH && + qsize != SHA224_DIGEST_LENGTH && + qsize != SHA256_DIGEST_LENGTH) { /* invalid q size */ *res = FFC_CHECK_INVALID_Q_VALUE; goto err; @@ -1313,10 +1313,9 @@ g_only: goto err; if (!generate_unverifiable_g(ctx, mont, g, tmp, p, r0, test, &hret)) goto err; - } else if (((flags & FFC_PARAM_FLAG_VALIDATE_G) != 0) - && !ossl_ffc_params_validate_unverifiable_g(ctx, mont, p, q, - params->g, tmp, - res)) { + } else if (((flags & FFC_PARAM_FLAG_VALIDATE_G) != 0) && + !ossl_ffc_params_validate_unverifiable_g(ctx, mont, p, q, + params->g, tmp, res)) { goto err; } @@ -1362,8 +1361,8 @@ int ossl_ffc_params_FIPS186_2_generate(OSSL_LIB_CTX *libctx, FFC_PARAMS *params, int *res, BN_GENCB *cb) { if (!ossl_ffc_params_FIPS186_2_gen_verify(libctx, params, - FFC_PARAM_MODE_GENERATE, - type, L, N, res, cb)) + FFC_PARAM_MODE_GENERATE, + type, L, N, res, cb)) return 0; ossl_ffc_params_enable_flags(params, FFC_PARAM_FLAG_VALIDATE_LEGACY, 1); @@ -1494,14 +1493,14 @@ static int generate_canonical_g(BN_CTX *ctx, BN_MONT_CTX *mont, /* Get last 8 bits of counter to the third byte of md */ md[2] = (unsigned char)(counter & 0xff); /* Compute digest: W = Hash(seed || "ggen" || index || counter) */ - if (!EVP_DigestInit_ex(mctx, evpmd, NULL) - || !EVP_DigestUpdate(mctx, seed, seedlen) - || !EVP_DigestUpdate(mctx, ggen, sizeof(ggen)) - /* Hash the first three bytes of md, corresponds to 'index || counter' */ - || !EVP_DigestUpdate(mctx, md, 3) - || !EVP_DigestFinal_ex(mctx, md, NULL) - || (BN_bin2bn(md, mdsize, w) == NULL) - || !BN_mod_exp_mont(g, w, e, p, ctx, mont)) + if (!EVP_DigestInit_ex(mctx, evpmd, NULL) || + !EVP_DigestUpdate(mctx, seed, seedlen) || + !EVP_DigestUpdate(mctx, ggen, sizeof(ggen)) || + /* Hash the first three bytes of md, corresponds to 'index || counter' */ + !EVP_DigestUpdate(mctx, md, 3) || + !EVP_DigestFinal_ex(mctx, md, NULL) || + (BN_bin2bn(md, mdsize, w) == NULL) || + !BN_mod_exp_mont(g, w, e, p, ctx, mont)) break; /* exit on failure */ /* * A.2.3 Step (10) @@ -1754,7 +1753,7 @@ static int ossl_ffc_params_FIPS186_4_gen_verify(OSSL_LIB_CTX *libctx, for (;;) { if (!generate_q_fips186_4(ctx, q, md, qsize, seed, seedlen, - seed != params->seed, &m, res, cb)) + seed != params->seed, &m, res, cb)) goto err; /* A.1.1.3 Step (9): Verify that q matches the expected value */ if (verify && (BN_cmp(q, params->q) != 0)) { @@ -1769,7 +1768,7 @@ static int ossl_ffc_params_FIPS186_4_gen_verify(OSSL_LIB_CTX *libctx, memcpy(seed_tmp, seed, seedlen); r = generate_p(ctx, md, counter, n, seed_tmp, seedlen, q, p, L, - cb, &pcounter, res); + cb, &pcounter, res); if (r > 0) break; /* found p */ if (r < 0) @@ -1804,9 +1803,9 @@ g_only: if (!BN_MONT_CTX_set(mont, p, ctx)) goto err; - if (((flags & FFC_PARAM_FLAG_VALIDATE_G) != 0) - && !ossl_ffc_params_validate_unverifiable_g(ctx, mont, p, q, params->g, - tmp, res)) + if (((flags & FFC_PARAM_FLAG_VALIDATE_G) != 0) && + !ossl_ffc_params_validate_unverifiable_g(ctx, mont, p, q, params->g, + tmp, res)) goto err; /* @@ -1822,7 +1821,7 @@ g_only: if ((seed != NULL) && (params->gindex != FFC_UNVERIFIABLE_GINDEX)) { canonical_g = 1; if (!generate_canonical_g(ctx, mont, md, g, tmp, p, e, - params->gindex, seed, seedlen)) { + params->gindex, seed, seedlen)) { *res = FFC_CHECK_INVALID_G; goto err; } @@ -2005,8 +2004,8 @@ uint16_t ossl_ifc_ffc_compute_security_bits(int n) x = n * DH_LOG_2; lx = ilog_e(x); - y = (uint16_t)((mul2(DH_C1_923, icbrt64(mul2(mul2(x, lx), lx))) - DH_C4_690) - / DH_LOG_2); + y = (uint16_t)((mul2(DH_C1_923, icbrt64(mul2(mul2(x, lx), lx))) - DH_C4_690) / + DH_LOG_2); y = (y + DH_CAI_NUM4) & ~DH_CAI_NUM7; if (y > cap) y = cap; diff --git a/src/uadk_prov_ffc.h b/src/uadk_prov_ffc.h index 1e1536a..242c2ac 100644 --- a/src/uadk_prov_ffc.h +++ b/src/uadk_prov_ffc.h @@ -334,10 +334,10 @@ static const DH_NAMED_GROUP dh_named_groups[] = { }; int ossl_ffc_params_set_seed(FFC_PARAMS *params, - const unsigned char *seed, size_t seedlen); + const unsigned char *seed, size_t seedlen); int ossl_ffc_params_copy(FFC_PARAMS *dst, const FFC_PARAMS *src); void ossl_ffc_params_get0_pqg(const FFC_PARAMS *d, const BIGNUM **p, - const BIGNUM **q, const BIGNUM **g); + const BIGNUM **q, const BIGNUM **g); const DH_NAMED_GROUP *ossl_ffc_uid_to_dh_named_group(int uid); void ossl_ffc_params_set0_pqg(FFC_PARAMS *d, BIGNUM *p, BIGNUM *q, BIGNUM *g); int ossl_ffc_named_group_set(FFC_PARAMS *ffc, const DH_NAMED_GROUP *group); diff --git a/src/uadk_prov_hmac.c b/src/uadk_prov_hmac.c index badb8c1..e15592c 100644 --- a/src/uadk_prov_hmac.c +++ b/src/uadk_prov_hmac.c @@ -43,7 +43,7 @@ #define MAX_KEY_LEN 144 #define HMAC_BLOCK_SIZE (512 * 1024) #define ALG_NAME_SIZE 128 -#define PARAMS_SIZE 2 +#define PARAMS_SIZE 2 #define KEY_4BYTE_ALIGN(keylen) ((keylen + 3) & ~3) #define SW_SWITCH_PRINT_ENABLE(SW) (SW ? ", switch to soft hmac" : "") @@ -465,9 +465,9 @@ static int uadk_prov_compute_key_hash(struct hmac_priv_ctx *priv, if (!ctx) goto free_md; - if (!EVP_DigestInit_ex2(ctx, key_md, NULL) - || !EVP_DigestUpdate(ctx, key, keylen) - || !EVP_DigestFinal_ex(ctx, priv->key, &outlen)) + if (!EVP_DigestInit_ex2(ctx, key_md, NULL) || + !EVP_DigestUpdate(ctx, key, keylen) || + !EVP_DigestFinal_ex(ctx, priv->key, &outlen)) goto free_ctx; priv->keylen = outlen; @@ -636,7 +636,7 @@ static int uadk_hmac_update_inner(struct hmac_priv_ctx *priv, const void *data, if (priv->last_update_bufflen != 0) { processing_len = HMAC_BLOCK_SIZE - priv->last_update_bufflen; uadk_memcpy(priv->data + priv->last_update_bufflen, input_data, - processing_len); + processing_len); priv->req.in_bytes = HMAC_BLOCK_SIZE; priv->req.in = priv->data; diff --git a/src/uadk_prov_init.c b/src/uadk_prov_init.c index af289a8..5c76041 100644 --- a/src/uadk_prov_init.c +++ b/src/uadk_prov_init.c @@ -245,7 +245,7 @@ static const OSSL_ALGORITHM *uadk_query(void *provctx, int operation_id, int ver; if (__atomic_compare_exchange_n(&prov_init, &(int){0}, 1, false, __ATOMIC_SEQ_CST, - __ATOMIC_SEQ_CST)) { + __ATOMIC_SEQ_CST)) { libctx = prov_libctx_of(provctx); default_prov = OSSL_PROVIDER_load(libctx, "default"); if (!default_prov) { diff --git a/src/uadk_prov_packet.c b/src/uadk_prov_packet.c index 3c84de8..19099db 100644 --- a/src/uadk_prov_packet.c +++ b/src/uadk_prov_packet.c @@ -13,11 +13,9 @@ #define DEFAULT_BUF_SIZE 256 #define REF_SIZE_LIMIT 2 -#define GETBUF(p) (((p)->staticbuf != NULL) \ - ? (p)->staticbuf \ - : ((p)->buf != NULL \ - ? (unsigned char *)(p)->buf->data \ - : NULL)) +#define GETBUF(p) (((p)->staticbuf != NULL) ? \ + (p)->staticbuf : \ + ((p)->buf != NULL ? (unsigned char *)(p)->buf->data : NULL)) int WPACKET_allocate_bytes(WPACKET *pkt, size_t len, unsigned char **allocbytes) { @@ -30,11 +28,11 @@ int WPACKET_allocate_bytes(WPACKET *pkt, size_t len, unsigned char **allocbytes) } int WPACKET_sub_allocate_bytes__(WPACKET *pkt, size_t len, - unsigned char **allocbytes, size_t lenbytes) + unsigned char **allocbytes, size_t lenbytes) { - if (!WPACKET_start_sub_packet_len__(pkt, lenbytes) - || !WPACKET_allocate_bytes(pkt, len, allocbytes) - || !WPACKET_close(pkt)) + if (!WPACKET_start_sub_packet_len__(pkt, lenbytes) || + !WPACKET_allocate_bytes(pkt, len, allocbytes) || + !WPACKET_close(pkt)) return 0; return 1; @@ -128,7 +126,7 @@ static int wpacket_intern_init_len(WPACKET *pkt, size_t lenbytes) } int WPACKET_init_static_len(WPACKET *pkt, unsigned char *buf, size_t len, - size_t lenbytes) + size_t lenbytes) { size_t max = maxmaxsize(lenbytes); @@ -241,8 +239,8 @@ static int wpacket_intern_close(WPACKET *pkt, WPACKET_SUB *sub, int doclose) && (sub->flags & WPACKET_FLAGS_NON_ZERO_LENGTH) != 0) return 0; - if (packlen == 0 - && sub->flags & WPACKET_FLAGS_ABANDON_ON_ZERO_LENGTH) { + if (packlen == 0 && + sub->flags & WPACKET_FLAGS_ABANDON_ON_ZERO_LENGTH) { /* We can't handle this case. Return an error */ if (!doclose) return 0; @@ -262,13 +260,12 @@ static int wpacket_intern_close(WPACKET *pkt, WPACKET_SUB *sub, int doclose) if (sub->lenbytes > 0) { unsigned char *buf = GETBUF(pkt); - if (buf != NULL - && !put_value(&buf[sub->packet_len], packlen, - sub->lenbytes)) + if (buf != NULL && + !put_value(&buf[sub->packet_len], packlen, sub->lenbytes)) return 0; - } else if (pkt->endfirst && sub->parent != NULL - && (packlen != 0 || (sub->flags - & WPACKET_FLAGS_ABANDON_ON_ZERO_LENGTH) == 0)) { + } else if (pkt->endfirst && sub->parent != NULL && + (packlen != 0 || (sub->flags & + WPACKET_FLAGS_ABANDON_ON_ZERO_LENGTH) == 0)) { size_t tmplen = packlen; size_t numlenbytes = 1; @@ -385,9 +382,9 @@ int WPACKET_put_bytes__(WPACKET *pkt, uint64_t val, size_t size) unsigned char *data; /* Internal API, so should not fail */ - if (!ossl_assert(size <= sizeof(uint64_t)) - || !WPACKET_allocate_bytes(pkt, size, &data) - || !put_value(data, val, size)) + if (!ossl_assert(size <= sizeof(uint64_t)) || + !WPACKET_allocate_bytes(pkt, size, &data) || + !put_value(data, val, size)) return 0; return 1; @@ -451,11 +448,11 @@ int WPACKET_memcpy(WPACKET *pkt, const void *src, size_t len) } int WPACKET_sub_memcpy__(WPACKET *pkt, const void *src, size_t len, - size_t lenbytes) + size_t lenbytes) { - if (!WPACKET_start_sub_packet_len__(pkt, lenbytes) - || !WPACKET_memcpy(pkt, src, len) - || !WPACKET_close(pkt)) + if (!WPACKET_start_sub_packet_len__(pkt, lenbytes) || + !WPACKET_memcpy(pkt, src, len) || + !WPACKET_close(pkt)) return 0; return 1; diff --git a/src/uadk_prov_packet.h b/src/uadk_prov_packet.h index aabd042..0f798cd 100644 --- a/src/uadk_prov_packet.h +++ b/src/uadk_prov_packet.h @@ -21,7 +21,7 @@ #define ossl_assert(x) ((x) != 0) #else __owur static ossl_inline int ossl_assert_int(int expr, const char *exprstr, - const char *file, int line) + const char *file, int line) { if (!expr) OPENSSL_die(exprstr, file, line); @@ -85,8 +85,8 @@ static ossl_inline const unsigned char *PACKET_data(const PACKET *pkt) * is being used. */ __owur static ossl_inline int PACKET_buf_init(PACKET *pkt, - const unsigned char *buf, - size_t len) + const unsigned char *buf, + size_t len) { /* Sanity check for negative values. */ if (len > (size_t)(SIZE_MAX / 2)) @@ -110,7 +110,7 @@ static ossl_inline void PACKET_null_init(PACKET *pkt) * If lengths are equal, performs the comparison in constant time. */ __owur static ossl_inline int PACKET_equal(const PACKET *pkt, const void *ptr, - size_t num) + size_t num) { if (PACKET_remaining(pkt) != num) return 0; @@ -123,7 +123,7 @@ __owur static ossl_inline int PACKET_equal(const PACKET *pkt, const void *ptr, * the original |pkt|, so data wrapped by |pkt| must outlive the |subpkt|. */ __owur static ossl_inline int PACKET_peek_sub_packet(const PACKET *pkt, - PACKET *subpkt, size_t len) + PACKET *subpkt, size_t len) { if (PACKET_remaining(pkt) < len) return 0; @@ -137,7 +137,7 @@ __owur static ossl_inline int PACKET_peek_sub_packet(const PACKET *pkt, * original |pkt|, so data wrapped by |pkt| must outlive the |subpkt|. */ __owur static ossl_inline int PACKET_get_sub_packet(PACKET *pkt, - PACKET *subpkt, size_t len) + PACKET *subpkt, size_t len) { if (!PACKET_peek_sub_packet(pkt, subpkt, len)) return 0; @@ -305,7 +305,7 @@ __owur static ossl_inline int PACKET_get_net_8(PACKET *pkt, uint64_t *data) /* Peek ahead at 1 byte from |pkt| and store the value in |*data| */ __owur static ossl_inline int PACKET_peek_1(const PACKET *pkt, - unsigned int *data) + unsigned int *data) { if (!PACKET_remaining(pkt)) return 0; @@ -343,7 +343,7 @@ __owur static ossl_inline int PACKET_get_1_len(PACKET *pkt, size_t *data) * in |*data| */ __owur static ossl_inline int PACKET_peek_4(const PACKET *pkt, - unsigned long *data) + unsigned long *data) { if (PACKET_remaining(pkt) < 4) return 0; @@ -396,8 +396,8 @@ __owur static ossl_inline int PACKET_peek_bytes(const PACKET *pkt, * freed */ __owur static ossl_inline int PACKET_get_bytes(PACKET *pkt, - const unsigned char **data, - size_t len) + const unsigned char **data, + size_t len) { if (!PACKET_peek_bytes(pkt, data, len)) return 0; @@ -409,8 +409,8 @@ __owur static ossl_inline int PACKET_get_bytes(PACKET *pkt, /* Peek ahead at |len| bytes from |pkt| and copy them to |data| */ __owur static ossl_inline int PACKET_peek_copy_bytes(const PACKET *pkt, - unsigned char *data, - size_t len) + unsigned char *data, + size_t len) { if (PACKET_remaining(pkt) < len) return 0; @@ -443,8 +443,8 @@ __owur static ossl_inline int PACKET_copy_bytes(PACKET *pkt, * done with a given PACKET). */ __owur static ossl_inline int PACKET_copy_all(const PACKET *pkt, - unsigned char *dest, - size_t dest_len, size_t *len) + unsigned char *dest, + size_t dest_len, size_t *len) { if (PACKET_remaining(pkt) > dest_len) { *len = 0; @@ -467,7 +467,7 @@ __owur static ossl_inline int PACKET_copy_all(const PACKET *pkt, * done with a given PACKET). */ __owur static ossl_inline int PACKET_memdup(const PACKET *pkt, - unsigned char **data, size_t *len) + unsigned char **data, size_t *len) { size_t length; @@ -539,7 +539,7 @@ __owur static ossl_inline int PACKET_get_length_prefixed_1(PACKET *pkt, PACKET tmp = *pkt; if (!PACKET_get_1(&tmp, &length) || - !PACKET_get_bytes(&tmp, &data, (size_t)length)) { + !PACKET_get_bytes(&tmp, &data, (size_t)length)) { return 0; } @@ -562,8 +562,8 @@ __owur static ossl_inline int PACKET_as_length_prefixed_1(PACKET *pkt, PACKET tmp = *pkt; if (!PACKET_get_1(&tmp, &length) || - !PACKET_get_bytes(&tmp, &data, (size_t)length) || - PACKET_remaining(&tmp) != 0) { + !PACKET_get_bytes(&tmp, &data, (size_t)length) || + PACKET_remaining(&tmp) != 0) { return 0; } @@ -582,14 +582,14 @@ __owur static ossl_inline int PACKET_as_length_prefixed_1(PACKET *pkt, * Upon failure, the original |pkt| and |subpkt| are not modified. */ __owur static ossl_inline int PACKET_get_length_prefixed_2(PACKET *pkt, - PACKET *subpkt) + PACKET *subpkt) { unsigned int length; const unsigned char *data; PACKET tmp = *pkt; if (!PACKET_get_net_2(&tmp, &length) || - !PACKET_get_bytes(&tmp, &data, (size_t)length)) { + !PACKET_get_bytes(&tmp, &data, (size_t)length)) { return 0; } @@ -612,8 +612,8 @@ __owur static ossl_inline int PACKET_as_length_prefixed_2(PACKET *pkt, PACKET tmp = *pkt; if (!PACKET_get_net_2(&tmp, &length) || - !PACKET_get_bytes(&tmp, &data, (size_t)length) || - PACKET_remaining(&tmp) != 0) { + !PACKET_get_bytes(&tmp, &data, (size_t)length) || + PACKET_remaining(&tmp) != 0) { return 0; } @@ -639,7 +639,7 @@ __owur static ossl_inline int PACKET_get_length_prefixed_3(PACKET *pkt, PACKET tmp = *pkt; if (!PACKET_get_net_3(&tmp, &length) || - !PACKET_get_bytes(&tmp, &data, (size_t)length)) { + !PACKET_get_bytes(&tmp, &data, (size_t)length)) { return 0; } @@ -920,7 +920,7 @@ int WPACKET_memset(WPACKET *pkt, int ch, size_t len); * directly. Use the convenience macros below instead. */ int WPACKET_sub_memcpy__(WPACKET *pkt, const void *src, size_t len, - size_t lenbytes); + size_t lenbytes); /* Convenience macros for calling WPACKET_sub_memcpy with different lengths */ #define WPACKET_sub_memcpy_u8(pkt, src, len) \ diff --git a/src/uadk_prov_pkey.c b/src/uadk_prov_pkey.c index ac4541c..a7817d2 100644 --- a/src/uadk_prov_pkey.c +++ b/src/uadk_prov_pkey.c @@ -114,7 +114,7 @@ static int uadk_prov_ecc_get_hw_keybits(int key_bits) } void uadk_prov_ecc_fill_req(struct wd_ecc_req *req, unsigned int op, - void *in, void *out) + void *in, void *out) { req->op_type = op; req->src = in; @@ -162,7 +162,7 @@ err: } static void uadk_prov_init_dtb_param(void *dtb, char *start, - __u32 dsz, __u32 bsz, __u32 num) + __u32 dsz, __u32 bsz, __u32 num) { struct wd_dtb *tmp = dtb; char *buff = start; @@ -178,7 +178,7 @@ static void uadk_prov_init_dtb_param(void *dtb, char *start, } int uadk_prov_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p, - BIGNUM *x, BIGNUM *y, BN_CTX *ctx) + BIGNUM *x, BIGNUM *y, BN_CTX *ctx) { # if OPENSSL_VERSION_NUMBER > 0x10101000L if (!EC_POINT_get_affine_coordinates(group, p, x, y, ctx)) @@ -191,7 +191,7 @@ int uadk_prov_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p, } static int uadk_prov_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, - BIGNUM *b, BN_CTX *ctx) + BIGNUM *b, BN_CTX *ctx) { # if OPENSSL_VERSION_NUMBER > 0x10101000L if (!EC_GROUP_get_curve(group, p, a, b, ctx)) @@ -204,8 +204,8 @@ static int uadk_prov_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, } static void uadk_prov_fill_ecc_cv_param(struct wd_ecc_curve *ecc_param, - struct curve_param *cv_param, - BIGNUM *g_x, BIGNUM *g_y) + struct curve_param *cv_param, + BIGNUM *g_x, BIGNUM *g_y) { ecc_param->p.dsize = BN_bn2bin(cv_param->p, (void *)ecc_param->p.data); ecc_param->a.dsize = BN_bn2bin(cv_param->a, (void *)ecc_param->a.data); @@ -226,7 +226,7 @@ static void uadk_prov_fill_ecc_cv_param(struct wd_ecc_curve *ecc_param, } static int uadk_prov_set_sess_setup_cv(const EC_GROUP *group, - struct wd_ecc_curve_cfg *cv) + struct wd_ecc_curve_cfg *cv) { struct wd_ecc_curve *ecc_param = cv->cfg.pparam; struct curve_param *cv_param; @@ -305,7 +305,7 @@ handle_t uadk_prov_ecc_alloc_sess(const EC_KEY *eckey, const char *alg) handle_t sess; uadk_prov_init_dtb_param(¶m, buff, 0, UADK_ECC_MAX_KEY_BYTES, - UADK_ECC_CV_PARAM_NUM); + UADK_ECC_CV_PARAM_NUM); memset(&sp, 0, sizeof(sp)); sp.cv.cfg.pparam = ¶m; @@ -475,31 +475,31 @@ static int set_group(OSSL_PARAM_BLD *bld, struct ec_gen_ctx *gctx) static int check_curve_params(OSSL_PARAM_BLD *bld, struct ec_gen_ctx *gctx) { - if (gctx->p == NULL || gctx->a == NULL || gctx->b == NULL || gctx->order == NULL - || !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_P, gctx->p) - || !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_A, gctx->a) - || !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_B, gctx->b) - || !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_ORDER, gctx->order)) { + if (gctx->p == NULL || gctx->a == NULL || gctx->b == NULL || gctx->order == NULL || + !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_P, gctx->p) || + !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_A, gctx->a) || + !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_B, gctx->b) || + !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_ORDER, gctx->order)) { fprintf(stderr, "failed to set curve params\n"); return UADK_P_FAIL; } - if (gctx->cofactor != NULL - && !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_COFACTOR, gctx->cofactor)) { + if (gctx->cofactor != NULL && + !OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_EC_COFACTOR, gctx->cofactor)) { fprintf(stderr, "failed to set cofactor\n"); return UADK_P_FAIL; } - if (gctx->seed != NULL - && !OSSL_PARAM_BLD_push_octet_string(bld, OSSL_PKEY_PARAM_EC_SEED, - gctx->seed, gctx->seed_len)) { + if (gctx->seed != NULL && + !OSSL_PARAM_BLD_push_octet_string(bld, OSSL_PKEY_PARAM_EC_SEED, + gctx->seed, gctx->seed_len)) { fprintf(stderr, "failed to set seed\n"); return UADK_P_FAIL; } - if (gctx->gen == NULL - || !OSSL_PARAM_BLD_push_octet_string(bld, OSSL_PKEY_PARAM_EC_GENERATOR, - gctx->gen, gctx->gen_len)) { + if (gctx->gen == NULL || + !OSSL_PARAM_BLD_push_octet_string(bld, OSSL_PKEY_PARAM_EC_GENERATOR, + gctx->gen, gctx->gen_len)) { fprintf(stderr, "failed to set gen params\n"); return UADK_P_FAIL; } @@ -518,23 +518,23 @@ static int ec_gen_set_group_from_params(struct ec_gen_ctx *gctx) return UADK_P_FAIL; } - if (gctx->encoding != NULL - && !OSSL_PARAM_BLD_push_utf8_string(bld, OSSL_PKEY_PARAM_EC_ENCODING, - gctx->encoding, 0)) { + if (gctx->encoding != NULL && + !OSSL_PARAM_BLD_push_utf8_string(bld, OSSL_PKEY_PARAM_EC_ENCODING, + gctx->encoding, 0)) { fprintf(stderr, "failed to set encoding\n"); goto free_bld; } - if (gctx->pt_format != NULL - && !OSSL_PARAM_BLD_push_utf8_string(bld, - OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, gctx->pt_format, 0)) { + if (gctx->pt_format != NULL && + !OSSL_PARAM_BLD_push_utf8_string(bld, OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT, + gctx->pt_format, 0)) { fprintf(stderr, "failed to set point format\n"); goto free_bld; } if (gctx->group_name != NULL) { if (!OSSL_PARAM_BLD_push_utf8_string(bld, OSSL_PKEY_PARAM_GROUP_NAME, - gctx->group_name, 0)) { + gctx->group_name, 0)) { fprintf(stderr, "failed to set group name\n"); goto free_bld; } @@ -543,7 +543,7 @@ static int ec_gen_set_group_from_params(struct ec_gen_ctx *gctx) goto free_bld; } else if (gctx->field_type != NULL) { if (!OSSL_PARAM_BLD_push_utf8_string(bld, OSSL_PKEY_PARAM_EC_FIELD_TYPE, - gctx->field_type, 0)) { + gctx->field_type, 0)) { fprintf(stderr, "failed to set filed type\n"); goto free_bld; } diff --git a/src/uadk_prov_rsa.c b/src/uadk_prov_rsa.c index 6d5b3c3..f8342bc 100644 --- a/src/uadk_prov_rsa.c +++ b/src/uadk_prov_rsa.c @@ -1631,7 +1631,7 @@ static int crypt_trans_bn(struct uadk_rsa_sess *rsa_sess, unsigned char *buf, in } static int uadk_prov_rsa_public_encrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding) + unsigned char *to, RSA *rsa, int padding) { struct rsa_pubkey_param *pub_enc = NULL; struct uadk_rsa_sess *rsa_sess = NULL; @@ -1690,7 +1690,7 @@ free_pkey: } static int uadk_prov_rsa_private_decrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding) + unsigned char *to, RSA *rsa, int padding) { struct rsa_prikey_param *pri = NULL; unsigned char *from_buf = NULL; @@ -1765,7 +1765,7 @@ static int sign_trans_bn(struct uadk_rsa_sess *rsa_sess, unsigned char *from_buf int ret; sign_bn = BN_bin2bn((const unsigned char *)rsa_sess->req.dst, - rsa_sess->req.dst_bytes, NULL); + rsa_sess->req.dst_bytes, NULL); if (!sign_bn) return UADK_E_FAIL; @@ -1789,7 +1789,7 @@ free_sign_bn: } static int uadk_prov_rsa_private_sign(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding) + unsigned char *to, RSA *rsa, int padding) { struct uadk_rsa_sess *rsa_sess = NULL; struct rsa_prikey_param *prik = NULL; @@ -1855,7 +1855,7 @@ static int verify_trans_bn(struct uadk_rsa_sess *rsa_sess, unsigned char *from_b int ret; verify_bn = BN_bin2bn((const unsigned char *)rsa_sess->req.dst, - rsa_sess->req.dst_bytes, NULL); + rsa_sess->req.dst_bytes, NULL); if (!verify_bn) return UADK_E_FAIL; @@ -1873,7 +1873,7 @@ verify_end: } static int uadk_prov_rsa_public_verify(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding) + unsigned char *to, RSA *rsa, int padding) { struct uadk_rsa_sess *rsa_sess = NULL; struct rsa_pubkey_param *pub = NULL; @@ -2003,7 +2003,7 @@ static int uadk_signature_rsa_verify_recover(void *vprsactx, unsigned char *rout } static int uadk_signature_rsa_verify_init(void *vprsactx, void *vrsa, - const OSSL_PARAM params[]) + const OSSL_PARAM params[]) { return uadk_rsa_init(vprsactx, vrsa, params, EVP_PKEY_OP_VERIFY); } @@ -2020,8 +2020,8 @@ static int uadk_rsa_sw_verify(void *vprsactx, const unsigned char *sig, } static int uadk_signature_rsa_verify(void *vprsactx, const unsigned char *sig, - size_t siglen, const unsigned char *tbs, - size_t tbslen) + size_t siglen, const unsigned char *tbs, + size_t tbslen) { PROV_RSA_SIG_CTX *priv = (PROV_RSA_SIG_CTX *)vprsactx; size_t rslen = 0; @@ -2038,7 +2038,7 @@ static int uadk_signature_rsa_verify(void *vprsactx, const unsigned char *sig, if (!setup_tbuf(priv)) return UADK_E_FAIL; rslen = uadk_prov_rsa_public_verify(siglen, sig, priv->tbuf, - priv->rsa, priv->pad_mode); + priv->rsa, priv->pad_mode); if (rslen == UADK_DO_SOFT || rslen == UADK_E_FAIL) goto exe_soft; } @@ -2066,8 +2066,8 @@ static int uadk_rsa_sw_sign(void *vprsactx, unsigned char *sig, } static int uadk_signature_rsa_sign(void *vprsactx, unsigned char *sig, - size_t *siglen, size_t sigsize, - const unsigned char *tbs, size_t tbslen) + size_t *siglen, size_t sigsize, + const unsigned char *tbs, size_t tbslen) { PROV_RSA_SIG_CTX *priv = (PROV_RSA_SIG_CTX *)vprsactx; size_t rsasize = uadk_rsa_size(priv->rsa); @@ -2203,7 +2203,7 @@ static const OSSL_PARAM settable_ctx_params_no_digest[] = { }; static const OSSL_PARAM *uadk_signature_rsa_settable_ctx_params(void *vprsactx, - void *provctx) + void *provctx) { PROV_RSA_SIG_CTX *priv = (PROV_RSA_SIG_CTX *)vprsactx; @@ -2559,7 +2559,7 @@ exe_soft: } static int uadk_signature_rsa_digest_verify_init(void *vprsactx, const char *mdname, - void *vrsa, const OSSL_PARAM params[]) + void *vrsa, const OSSL_PARAM params[]) { return uadk_signature_rsa_digest_signverify_init(vprsactx, mdname, vrsa, params, EVP_PKEY_OP_VERIFY); @@ -2577,7 +2577,7 @@ static int uadk_signature_rsa_digest_verify_update(void *vprsactx, const unsigne } static int uadk_signature_rsa_digest_verify_final(void *vprsactx, const unsigned char *sig, - size_t siglen) + size_t siglen) { PROV_RSA_SIG_CTX *priv = (PROV_RSA_SIG_CTX *)vprsactx; unsigned char *decrypt_buf = NULL, *encoded = NULL; @@ -2699,7 +2699,7 @@ static const OSSL_PARAM *uadk_signature_rsa_settable_ctx_md_params(void *vprsact } static const OSSL_PARAM *uadk_signature_rsa_gettable_ctx_params(ossl_unused void *vprsactx, - ossl_unused void *provctx) + ossl_unused void *provctx) { if (!get_default_rsa_signature().gettable_ctx_params) return NULL; @@ -2716,13 +2716,13 @@ static int uadk_signature_rsa_get_ctx_md_params(void *vprsactx, OSSL_PARAM *para } static int uadk_asym_cipher_rsa_encrypt_init(void *vprsactx, void *vrsa, - const OSSL_PARAM params[]) + const OSSL_PARAM params[]) { return uadk_rsa_asym_init(vprsactx, vrsa, params, EVP_PKEY_OP_ENCRYPT); } static int uadk_asym_cipher_rsa_decrypt_init(void *vprsactx, void *vrsa, - const OSSL_PARAM params[]) + const OSSL_PARAM params[]) { return uadk_rsa_asym_init(vprsactx, vrsa, params, EVP_PKEY_OP_DECRYPT); } @@ -2739,8 +2739,8 @@ static int uadk_rsa_sw_encrypt(void *vprsactx, unsigned char *out, } static int uadk_asym_cipher_rsa_encrypt(void *vprsactx, unsigned char *out, - size_t *outlen, size_t outsize, - const unsigned char *in, size_t inlen) + size_t *outlen, size_t outsize, + const unsigned char *in, size_t inlen) { PROV_RSA_ASYM_CTX *priv = (PROV_RSA_ASYM_CTX *)vprsactx; size_t len; @@ -2786,8 +2786,8 @@ static int uadk_rsa_sw_decrypt(void *vprsactx, unsigned char *out, } static int uadk_asym_cipher_rsa_decrypt(void *vprsactx, unsigned char *out, - size_t *outlen, size_t outsize, - const unsigned char *in, size_t inlen) + size_t *outlen, size_t outsize, + const unsigned char *in, size_t inlen) { PROV_RSA_ASYM_CTX *priv = (PROV_RSA_ASYM_CTX *)vprsactx; size_t len = uadk_rsa_size(priv->rsa); @@ -2834,7 +2834,7 @@ static int uadk_asym_cipher_rsa_get_ctx_params(void *vprsactx, OSSL_PARAM *param } static const OSSL_PARAM *uadk_asym_cipher_rsa_gettable_ctx_params(void *vprsactx, - void *provctx) + void *provctx) { if (!get_default_rsa_asym_cipher().gettable_ctx_params) return NULL; @@ -2851,7 +2851,7 @@ static int uadk_asym_cipher_rsa_set_ctx_params(void *vprsactx, const OSSL_PARAM } static const OSSL_PARAM *uadk_asym_cipher_rsa_settable_ctx_params(void *vprsactx, - void *provctx) + void *provctx) { if (!get_default_rsa_asym_cipher().settable_ctx_params) return NULL; diff --git a/src/uadk_prov_sm2.c b/src/uadk_prov_sm2.c index 2e18545..414b2b8 100644 --- a/src/uadk_prov_sm2.c +++ b/src/uadk_prov_sm2.c @@ -431,7 +431,7 @@ static void *uadk_keymgmt_sm2_dup(const void *keydata_from, int selection) * @return Return inited key generation context if success, return NULL if failed. */ static void *uadk_keymgmt_sm2_gen_init(void *provctx, int selection, - const OSSL_PARAM params[]) + const OSSL_PARAM params[]) { if (!get_default_sm2_keymgmt().gen_init) { fprintf(stderr, "failed to get keymgmt gen_init function\n"); @@ -476,7 +476,7 @@ static const OSSL_PARAM *uadk_keymgmt_sm2_settable_params(ossl_unused void *prov * @return Return params list if success, return NULL if failed. */ static const OSSL_PARAM *uadk_keymgmt_sm2_gen_settable_params(ossl_unused void *genctx, - ossl_unused void *provctx) + ossl_unused void *provctx) { if (!get_default_sm2_keymgmt().gen_settable_params) { fprintf(stderr, "failed to get keymgmt gen_settable_params function\n"); @@ -871,7 +871,7 @@ static int uadk_prov_sm2_sig_set_mdname(PROV_SM2_SIGN_CTX *psm2ctx, const char * if (smctx->sm2_md->md == NULL) { smctx->sm2_md->md = EVP_MD_fetch(psm2ctx->libctx, - psm2ctx->mdname, psm2ctx->propq); + psm2ctx->mdname, psm2ctx->propq); if (smctx->sm2_md->md == NULL) { fprintf(stderr, "failed to fetch digest method\n"); return UADK_P_FAIL; @@ -879,7 +879,7 @@ static int uadk_prov_sm2_sig_set_mdname(PROV_SM2_SIGN_CTX *psm2ctx, const char * } if (strlen(mdname) >= sizeof(psm2ctx->mdname) || - !EVP_MD_is_a(smctx->sm2_md->md, mdname)) { + !EVP_MD_is_a(smctx->sm2_md->md, mdname)) { fprintf(stderr, "failed to check mdname, digest=%s\n", mdname); return UADK_P_FAIL; } @@ -890,7 +890,7 @@ static int uadk_prov_sm2_sig_set_mdname(PROV_SM2_SIGN_CTX *psm2ctx, const char * } static int uadk_prov_compute_hash(const char *in, size_t in_len, - char *out, size_t out_len, void *usr) + char *out, size_t out_len, void *usr) { const EVP_MD *digest = (const EVP_MD *)usr; int ret = WD_SUCCESS; @@ -901,8 +901,8 @@ static int uadk_prov_compute_hash(const char *in, size_t in_len, return -WD_EINVAL; if (EVP_DigestInit(hash, digest) == 0 || - EVP_DigestUpdate(hash, in, in_len) == 0 || - EVP_DigestFinal(hash, (void *)out, NULL) == 0) { + EVP_DigestUpdate(hash, in, in_len) == 0 || + EVP_DigestFinal(hash, (void *)out, NULL) == 0) { fprintf(stderr, "compute hash failed\n"); ret = -WD_EINVAL; } @@ -990,7 +990,7 @@ static int uadk_prov_sm2_update_sess(SM2_PROV_CTX *smctx) } static int uadk_signature_sm2_sign_init_sw(void *vpsm2ctx, void *ec, - const OSSL_PARAM params[]) + const OSSL_PARAM params[]) { if (uadk_get_sw_offload_state() && get_default_sm2_signature().sign_init) { fprintf(stderr, "switch to software sm2 sign_init.\n"); @@ -1074,7 +1074,7 @@ static int uadk_signature_sm2_verify_init(void *vpsm2ctx, void *ec, } static int uadk_prov_sm2_check_tbs_params(PROV_SM2_SIGN_CTX *psm2ctx, - const unsigned char *tbs, size_t tbslen) + const unsigned char *tbs, size_t tbslen) { SM2_PROV_CTX *smctx = psm2ctx->sm2_pctx; @@ -1227,7 +1227,7 @@ free_sig: } static int uadk_prov_sm2_sign_ber_to_bin(unsigned char *sig, size_t sig_len, - struct wd_dtb *r, struct wd_dtb *s) + struct wd_dtb *r, struct wd_dtb *s) { const unsigned char *p = sig; unsigned char *der = NULL; @@ -1329,7 +1329,7 @@ uninit_iot: } static int uadk_signature_sm2_sign_sw(void *vpsm2ctx, unsigned char *sig, size_t *siglen, - size_t sigsize, const unsigned char *tbs, size_t tbslen) + size_t sigsize, const unsigned char *tbs, size_t tbslen) { if (uadk_get_sw_offload_state() && get_default_sm2_signature().sign) { fprintf(stderr, "switch to soft sm2 sign\n"); @@ -1457,8 +1457,8 @@ static int uadk_prov_sm2_update_public_key(SM2_PROV_CTX *smctx, EC_KEY *eckey) } static int uadk_prov_sm2_verify(PROV_SM2_SIGN_CTX *psm2ctx, - const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen) + const unsigned char *sig, size_t siglen, + const unsigned char *tbs, size_t tbslen) { unsigned char buf_r[UADK_ECC_MAX_KEY_BYTES] = {0}; unsigned char buf_s[UADK_ECC_MAX_KEY_BYTES] = {0}; @@ -1511,7 +1511,7 @@ uninit_iot: } static int uadk_signature_sm2_verify_sw(void *vpsm2ctx, const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen) + const unsigned char *tbs, size_t tbslen) { if (uadk_get_sw_offload_state() && get_default_sm2_signature().verify) { fprintf(stderr, "switch to soft sm2 verify\n"); @@ -1558,8 +1558,8 @@ static int uadk_signature_sm2_digest_sign_init(void *vpsm2ctx, const char *mdnam int md_nid; WPACKET pkt; - if (!uadk_signature_sm2_sign_init(vpsm2ctx, ec, params) - || !uadk_prov_sm2_sig_set_mdname(psm2ctx, mdname)) + if (!uadk_signature_sm2_sign_init(vpsm2ctx, ec, params) || + !uadk_prov_sm2_sig_set_mdname(psm2ctx, mdname)) return UADK_P_FAIL; smctx = psm2ctx->sm2_pctx; @@ -1582,9 +1582,9 @@ static int uadk_signature_sm2_digest_sign_init(void *vpsm2ctx, const char *mdnam md_nid = EVP_MD_get_type(smctx->sm2_md->md); smctx->sm2_md->md_nid = md_nid; psm2ctx->aid_len = 0; - if (WPACKET_init_der(&pkt, psm2ctx->aid_buf, sizeof(psm2ctx->aid_buf)) - && ossl_DER_w_algorithmIdentifier_SM2_with_MD(&pkt, -1, psm2ctx->key, md_nid) - && WPACKET_finish(&pkt)) { + if (WPACKET_init_der(&pkt, psm2ctx->aid_buf, sizeof(psm2ctx->aid_buf)) && + ossl_DER_w_algorithmIdentifier_SM2_with_MD(&pkt, -1, psm2ctx->key, md_nid) && + WPACKET_finish(&pkt)) { WPACKET_get_total_written(&pkt, &psm2ctx->aid_len); psm2ctx->aid = WPACKET_get_curr(&pkt); } @@ -1602,7 +1602,7 @@ static int uadk_signature_sm2_digest_sign_init(void *vpsm2ctx, const char *mdnam } static int uadk_prov_check_equation_param(struct sm2_param *param, EVP_MD_CTX *hash, - uint8_t *buf, int p_bytes) + uint8_t *buf, int p_bytes) { if (BN_bn2binpad(param->a, buf, p_bytes) < 0 || !EVP_DigestUpdate(hash, buf, p_bytes) || @@ -1616,7 +1616,7 @@ static int uadk_prov_check_equation_param(struct sm2_param *param, EVP_MD_CTX *h } static int uadk_prov_check_base_point_group_param(struct sm2_param *param, BN_CTX *ctx, - const EC_KEY *key) + const EC_KEY *key) { const EC_GROUP *group = EC_KEY_get0_group(key); @@ -1631,7 +1631,7 @@ static int uadk_prov_check_base_point_group_param(struct sm2_param *param, BN_CT } static int uadk_prov_check_base_point_param(struct sm2_param *param, EVP_MD_CTX *hash, - uint8_t *buf, int p_bytes) + uint8_t *buf, int p_bytes) { if (BN_bn2binpad(param->xG, buf, p_bytes) < 0 || !EVP_DigestUpdate(hash, buf, p_bytes) || @@ -1645,7 +1645,7 @@ static int uadk_prov_check_base_point_param(struct sm2_param *param, EVP_MD_CTX } static int uadk_prov_check_pkey_point_group_param(struct sm2_param *param, BN_CTX *ctx, - const EC_KEY *key) + const EC_KEY *key) { const EC_GROUP *group = EC_KEY_get0_group(key); @@ -1659,7 +1659,7 @@ static int uadk_prov_check_pkey_point_group_param(struct sm2_param *param, BN_CT } static int uadk_prov_check_pkey_point_param(struct sm2_param *param, EVP_MD_CTX *hash, - uint8_t *buf, int p_bytes, uint8_t *out) + uint8_t *buf, int p_bytes, uint8_t *out) { if (BN_bn2binpad(param->xA, buf, p_bytes) < 0 || !EVP_DigestUpdate(hash, buf, p_bytes) || @@ -1711,7 +1711,7 @@ end: } static int uadk_prov_check_digest_evp_lib(const EVP_MD *digest, EVP_MD_CTX *hash, - const size_t id_len, const uint8_t *id) + const size_t id_len, const uint8_t *id) { uint8_t e_byte; uint16_t entl; @@ -1752,8 +1752,8 @@ static int uadk_prov_check_digest_evp_lib(const EVP_MD *digest, EVP_MD_CTX *hash } static int uadk_prov_sm2_compute_z_digest(uint8_t *out, const EVP_MD *digest, - const uint8_t *id, const size_t id_len, - const EC_KEY *key) + const uint8_t *id, const size_t id_len, + const EC_KEY *key) { const EC_GROUP *group = EC_KEY_get0_group(key); struct sm2_param *params = NULL; @@ -2146,8 +2146,8 @@ static int uadk_prov_sm2_locate_id_digest(PROV_SM2_SIGN_CTX *psm2ctx, const OSS * this needs to be adjusted accordingly. */ p = OSSL_PARAM_locate_const(params, OSSL_SIGNATURE_PARAM_DIGEST_SIZE); - if (p != NULL && (!OSSL_PARAM_get_size_t(p, &mdsize) - || mdsize != psm2ctx->sm2_pctx->sm2_md->mdsize)) { + if (p != NULL && (!OSSL_PARAM_get_size_t(p, &mdsize) || + mdsize != psm2ctx->sm2_pctx->sm2_md->mdsize)) { fprintf(stderr, "failed to locate digest size\n"); return UADK_P_FAIL; } @@ -2259,13 +2259,13 @@ static int uadk_signature_sm2_get_ctx_params(void *vpsm2ctx, OSSL_PARAM *params) } static const OSSL_PARAM *uadk_signature_sm2_settable_ctx_params(ossl_unused void *vpsm2ctx, - ossl_unused void *provctx) + ossl_unused void *provctx) { return sm2_sig_known_settable_ctx_params; } static const OSSL_PARAM *uadk_signature_sm2_gettable_ctx_params(ossl_unused void *vpsm2ctx, - ossl_unused void *provctx) + ossl_unused void *provctx) { return sm2_sig_known_gettable_ctx_params; } @@ -2347,14 +2347,14 @@ static const OSSL_PARAM *uadk_signature_sm2_gettable_ctx_md_params(void *vpsm2ct } static int uadk_signature_sm2_verify_recover_init(void *vpsm2ctx, void *vsm2, - const OSSL_PARAM params[]) + const OSSL_PARAM params[]) { return UADK_P_SUCCESS; } static int uadk_signature_sm2_verify_recover(void *vpsm2ctx, unsigned char *rout, - size_t *routlen, size_t routsize, - const unsigned char *sig, size_t siglen) + size_t *routlen, size_t routsize, + const unsigned char *sig, size_t siglen) { return UADK_P_SUCCESS; } @@ -2481,7 +2481,7 @@ static void uadk_prov_sm2_set_default_md(PROV_SM2_ASYM_CTX *psm2ctx) } static int uadk_asym_cipher_sm2_encrypt_init_sw(void *vpsm2ctx, void *vkey, - const OSSL_PARAM params[]) + const OSSL_PARAM params[]) { if (uadk_get_sw_offload_state() && get_default_sm2_asym_cipher().encrypt_init) { fprintf(stderr, "switch to software sm2 encrypt init\n"); @@ -2553,8 +2553,8 @@ do_soft: } static int uadk_prov_sm2_encrypt_check(PROV_SM2_ASYM_CTX *psm2ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen) + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen) { SM2_PROV_CTX *smctx = psm2ctx->sm2_pctx; const EVP_MD *md; @@ -2623,8 +2623,8 @@ static int uadk_prov_sm2_encrypt_init_iot(handle_t sess, struct wd_ecc_req *req, } static int uadk_prov_sm2_asym_bin_to_ber(struct wd_ecc_point *c1, - struct wd_dtb *c2, struct wd_dtb *c3, - unsigned char *ber, size_t *ber_len) + struct wd_dtb *c2, struct wd_dtb *c3, + unsigned char *ber, size_t *ber_len) { struct sm2_ciphertext ctext; int ctext_leni, ret; @@ -2687,8 +2687,8 @@ free_x1: } static int uadk_prov_sm2_encrypt_sw(PROV_SM2_ASYM_CTX *vpsm2ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen) + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen) { if (uadk_get_sw_offload_state() && get_default_sm2_asym_cipher().encrypt) { fprintf(stderr, "switch to software sm2 encrypt\n"); @@ -2803,9 +2803,9 @@ static int uadk_prov_sm2_ciphertext_size(const EC_KEY *key, * Integer and string are simple type; set constructed = 0, means * primitive and definite length encoding. */ - sz = ECC_POINT_SIZE(ASN1_object_size(0, field_size + 1, V_ASN1_INTEGER)) - + ASN1_object_size(0, md_size, V_ASN1_OCTET_STRING) - + ASN1_object_size(0, msg_len, V_ASN1_OCTET_STRING); + sz = ECC_POINT_SIZE(ASN1_object_size(0, field_size + 1, V_ASN1_INTEGER)) + + ASN1_object_size(0, md_size, V_ASN1_OCTET_STRING) + + ASN1_object_size(0, msg_len, V_ASN1_OCTET_STRING); *ct_size = ASN1_object_size(1, sz, V_ASN1_SEQUENCE); return UADK_P_SUCCESS; @@ -2888,7 +2888,8 @@ static int uadk_prov_sm2_decrypt_check(SM2_PROV_CTX *smctx, } static int uadk_prov_sm2_asym_ber_to_bin(const EVP_MD *md, struct sm2_ciphertext *ctext, - struct wd_ecc_point *c1, struct wd_dtb *c2, struct wd_dtb *c3) + struct wd_ecc_point *c1, struct wd_dtb *c2, + struct wd_dtb *c3) { int c1x_len, c1y_len, md_size; @@ -2924,7 +2925,8 @@ static int uadk_prov_sm2_asym_ber_to_bin(const EVP_MD *md, struct sm2_ciphertext } static int uadk_prov_sm2_decrypt_init_iot(handle_t sess, struct wd_ecc_req *req, - struct wd_ecc_point *c1, struct wd_dtb *c2, struct wd_dtb *c3) + struct wd_ecc_point *c1, + struct wd_dtb *c2, struct wd_dtb *c3) { struct wd_ecc_out *ecc_out; struct wd_ecc_in *ecc_in; @@ -2970,8 +2972,8 @@ static int uadk_prov_sm2_get_plaintext(struct wd_ecc_req *req, } static int uadk_prov_sm2_decrypt_sw(PROV_SM2_ASYM_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen) + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen) { if (uadk_get_sw_offload_state() && get_default_sm2_asym_cipher().decrypt) { fprintf(stderr, "switch to software sm2 decrypt\n"); @@ -2982,8 +2984,8 @@ static int uadk_prov_sm2_decrypt_sw(PROV_SM2_ASYM_CTX *ctx, } static int uadk_prov_sm2_decrypt(PROV_SM2_ASYM_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen) + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen) { const unsigned char *original_in = in; SM2_PROV_CTX *smctx = ctx->sm2_pctx; @@ -3193,7 +3195,7 @@ static int uadk_asym_cipher_sm2_get_ctx_params(void *vpsm2ctx, OSSL_PARAM *param } static EVP_MD *uadk_prov_load_digest_from_params(SM2_MD_DATA *smd, const OSSL_PARAM params[], - OSSL_LIB_CTX *ctx) + OSSL_LIB_CTX *ctx) { const char *propquery = NULL; const OSSL_PARAM *p; @@ -3293,13 +3295,13 @@ do_soft: } static const OSSL_PARAM *uadk_asym_cipher_sm2_gettable_ctx_params(ossl_unused void *vpsm2ctx, - ossl_unused void *provctx) + ossl_unused void *provctx) { return sm2_asym_cipher_known_gettable_ctx_params; } static const OSSL_PARAM *uadk_asym_cipher_sm2_settable_ctx_params(ossl_unused void *vpsm2ctx, - ossl_unused void *provctx) + ossl_unused void *provctx) { return sm2_asym_cipher_known_settable_ctx_params; } diff --git a/src/uadk_rsa.c b/src/uadk_rsa.c index 1755374..969fcd2 100644 --- a/src/uadk_rsa.c +++ b/src/uadk_rsa.c @@ -672,7 +672,7 @@ static handle_t rsa_sched_init(handle_t h_sched_ctx, void *sched_param) } static __u32 rsa_pick_next_ctx(handle_t sched_ctx, - void *sched_key, const int sched_mode) + void *sched_key, const int sched_mode) { if (sched_mode) return CTX_ASYNC; @@ -1750,7 +1750,7 @@ static int uadk_e_rsa_private_sign(int flen, const unsigned char *from, } sign_bn = BN_bin2bn((const unsigned char *)rsa_sess->req.dst, - rsa_sess->req.dst_bytes, NULL); + rsa_sess->req.dst_bytes, NULL); if (!sign_bn) { ret = UADK_DO_SOFT; goto free_buf; @@ -1845,7 +1845,7 @@ static int uadk_e_rsa_public_verify(int flen, const unsigned char *from, } verify_bn = BN_bin2bn((const unsigned char *)rsa_sess->req.dst, - rsa_sess->req.dst_bytes, NULL); + rsa_sess->req.dst_bytes, NULL); if (!verify_bn) { ret = UADK_DO_SOFT; goto free_buf; diff --git a/src/uadk_sm2.c b/src/uadk_sm2.c index 7737292..3eb5252 100644 --- a/src/uadk_sm2.c +++ b/src/uadk_sm2.c @@ -160,8 +160,8 @@ static int compute_hash(const char *in, size_t in_len, return -1; if (EVP_DigestInit(hash, digest) == 0 || - EVP_DigestUpdate(hash, in, in_len) == 0 || - EVP_DigestFinal(hash, (void *)out, NULL) == 0) { + EVP_DigestUpdate(hash, in, in_len) == 0 || + EVP_DigestFinal(hash, (void *)out, NULL) == 0) { fprintf(stderr, "compute hash failed\n"); ret = -1; } @@ -639,9 +639,9 @@ static int sm2_ciphertext_size(const EC_KEY *key, * Integer and string are simple type; set constructed = 0, means * primitive and definite length encoding. */ - sz = ECC_POINT_SIZE(ASN1_object_size(0, field_size + 1, V_ASN1_INTEGER)) - + ASN1_object_size(0, md_size, V_ASN1_OCTET_STRING) - + ASN1_object_size(0, msg_len, V_ASN1_OCTET_STRING); + sz = ECC_POINT_SIZE(ASN1_object_size(0, field_size + 1, V_ASN1_INTEGER)) + + ASN1_object_size(0, md_size, V_ASN1_OCTET_STRING) + + ASN1_object_size(0, msg_len, V_ASN1_OCTET_STRING); *ct_size = ASN1_object_size(1, sz, V_ASN1_SEQUENCE); return 1; @@ -675,7 +675,7 @@ static int sm2_sign_init_iot(handle_t sess, struct wd_ecc_req *req, } static int sm2_sign_check(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen) + const unsigned char *tbs, size_t tbslen) { struct sm2_ctx *smctx = EVP_PKEY_CTX_get_data(ctx); EVP_PKEY *p_key = EVP_PKEY_CTX_get0_pkey(ctx); @@ -1333,9 +1333,9 @@ static int sm2_ctrl_str(EVP_PKEY_CTX *ctx, if (strcmp(type, "ec_paramgen_curve") == 0) { int nid; - if ((EC_curve_nist2nid(value) == NID_undef) - && (OBJ_sn2nid(value) == NID_undef) - && (OBJ_ln2nid(value) == NID_undef)) { + if ((EC_curve_nist2nid(value) == NID_undef) && + (OBJ_sn2nid(value) == NID_undef) && + (OBJ_ln2nid(value) == NID_undef)) { fprintf(stderr, "invalid curve\n"); return 0; } -- 2.33.0

From: Hao Fang <fanghao11@huawei.com> Some tiny fixes for add a blank line before return. Signed-off-by: Hao Fang <fanghao11@huawei.com> Signed-off-by: JiangShui Yang <yangjiangshui@h-partners.com> --- src/uadk_cipher.c | 1 + src/uadk_digest.c | 4 ++++ src/uadk_ec.c | 4 ++++ src/uadk_engine_init.c | 1 + src/uadk_prov_aead.c | 1 + src/uadk_prov_cipher.c | 6 ++++++ src/uadk_prov_dh.c | 2 ++ src/uadk_prov_digest.c | 1 + src/uadk_prov_ec_kmgmt.c | 1 + src/uadk_prov_ecdh_exch.c | 2 ++ src/uadk_prov_ffc.c | 9 +++++++++ src/uadk_prov_hmac.c | 2 ++ src/uadk_prov_packet.c | 1 + src/uadk_prov_packet.h | 4 ++++ src/uadk_prov_rsa.c | 2 ++ src/uadk_prov_sm2.c | 1 + src/uadk_sm2.c | 7 +++++++ 17 files changed, 49 insertions(+) diff --git a/src/uadk_cipher.c b/src/uadk_cipher.c index b0e9dbe..441bef2 100644 --- a/src/uadk_cipher.c +++ b/src/uadk_cipher.c @@ -576,6 +576,7 @@ static int do_cipher_sync(struct cipher_priv_ctx *priv) ret = wd_do_cipher_sync(priv->sess, &priv->req); if (ret) return 0; + return 1; } diff --git a/src/uadk_digest.c b/src/uadk_digest.c index 48b6e4b..60691a6 100644 --- a/src/uadk_digest.c +++ b/src/uadk_digest.c @@ -254,6 +254,7 @@ static int uadk_e_digests_soft_md(struct digest_priv_ctx *priv) priv->soft_ctx = ctx; priv->app_datasize = app_datasize; } + return 1; } @@ -268,6 +269,7 @@ static uint32_t sec_digest_get_sw_threshold(int n_id) } while (++i < threshold_table_size); fprintf(stderr, "nid %d not found in digest threshold table.\n", n_id); + return 0; } @@ -568,6 +570,7 @@ static int uadk_e_digest_ctrl(EVP_MD_CTX *ctx, int cmd, int numa_node, void *p2) } priv->sched_param.numa_id = numa_node; priv->setup.sched_param = (void *)&(priv->sched_param); + return 1; } @@ -821,6 +824,7 @@ static int do_digest_sync(struct digest_priv_ctx *priv) fprintf(stderr, "do sec digest sync failed, switch to soft digest.\n"); return 0; } + return 1; } diff --git a/src/uadk_ec.c b/src/uadk_ec.c index d15e742..f9ca847 100644 --- a/src/uadk_ec.c +++ b/src/uadk_ec.c @@ -313,6 +313,7 @@ static int ecdsa_do_sign_check(EC_KEY *eckey, fprintf(stderr, "priv_key is NULL\n"); return -1; } + return 0; } @@ -394,6 +395,7 @@ static int ecdsa_sign_init_iot(handle_t sess, struct wd_ecc_req *req, } uadk_ecc_fill_req(req, WD_ECDSA_SIGN, ecc_in, ecc_out); + return 0; err: wd_ecc_del_out(sess, ecc_out); @@ -898,6 +900,7 @@ static int eckey_create_key(EC_KEY *eckey) fprintf(stderr, "failed to set private key\n"); BN_free(priv_key); + return ret; } @@ -1466,6 +1469,7 @@ int uadk_ec_create_pmeth(struct uadk_pkey_meth *pkey_meth) EVP_PKEY_meth_copy(meth, openssl_meth); pkey_meth->ec = meth; + return 1; } diff --git a/src/uadk_engine_init.c b/src/uadk_engine_init.c index 1a2b1d4..6fad2d9 100644 --- a/src/uadk_engine_init.c +++ b/src/uadk_engine_init.c @@ -167,6 +167,7 @@ int uadk_e_set_env(const char *var_name, int numa_id) if (ret < 0) return ret; } + return 0; } diff --git a/src/uadk_prov_aead.c b/src/uadk_prov_aead.c index 4709e52..88cf927 100644 --- a/src/uadk_prov_aead.c +++ b/src/uadk_prov_aead.c @@ -1052,6 +1052,7 @@ static int uadk_prov_aead_get_ctx_params(void *vctx, OSSL_PARAM params[]) return UADK_OSSL_FAIL; } } + return UADK_AEAD_SUCCESS; } diff --git a/src/uadk_prov_cipher.c b/src/uadk_prov_cipher.c index aa2d0b6..94ce518 100644 --- a/src/uadk_prov_cipher.c +++ b/src/uadk_prov_cipher.c @@ -188,6 +188,7 @@ static const char *ossl_cipher_cbc_cts_mode_id2name(unsigned int id) if (cts_modes[i].id == id) return cts_modes[i].ossl_mode_name; } + return NULL; } @@ -199,6 +200,7 @@ static int ossl_cipher_cbc_cts_mode_name2id(const char *name) if (OPENSSL_strcasecmp(name, cts_modes[i].ossl_mode_name) == 0) return (int)cts_modes[i].id; } + return -1; } @@ -408,6 +410,7 @@ static int uadk_get_cipher_info(struct cipher_priv_ctx *priv) } fprintf(stderr, "failed to get cipher info.\n"); + return UADK_P_FAIL; } @@ -720,6 +723,7 @@ static int ossl_cipher_unpadblock(unsigned char *buf, size_t *buflen, size_t blo } } *buflen = len; + return UADK_P_SUCCESS; } @@ -1062,6 +1066,7 @@ do_soft: } fprintf(stderr, "do soft ciphers failed.\n"); + return UADK_P_FAIL; } @@ -1077,6 +1082,7 @@ static int uadk_prov_cipher_stream_final(void *vctx, unsigned char *out, return uadk_prov_cipher_soft_final(priv, out, outl); *outl = 0; + return UADK_P_SUCCESS; } diff --git a/src/uadk_prov_dh.c b/src/uadk_prov_dh.c index 9e9ed1a..e6984be 100644 --- a/src/uadk_prov_dh.c +++ b/src/uadk_prov_dh.c @@ -484,6 +484,7 @@ static int uadk_dh_gen_prikey_undef(const DH *dh, BIGNUM *new_prikey) fprintf(stderr, "failed to BN_priv_rand\n"); return UADK_P_FAIL; } + return UADK_P_SUCCESS; } @@ -538,6 +539,7 @@ static int dh_gen_rand_prikey(const DH *dh, BIGNUM *new_prikey) } while (1); BN_free(two_powN); + return UADK_P_SUCCESS; err: BN_free(two_powN); diff --git a/src/uadk_prov_digest.c b/src/uadk_prov_digest.c index dbecdc2..a40dfe4 100644 --- a/src/uadk_prov_digest.c +++ b/src/uadk_prov_digest.c @@ -515,6 +515,7 @@ do_soft_digest: } fprintf(stderr, "do soft digest failed during updating!\n"); + return UADK_DIGEST_FAIL; out: diff --git a/src/uadk_prov_ec_kmgmt.c b/src/uadk_prov_ec_kmgmt.c index 01bcc50..01cf644 100644 --- a/src/uadk_prov_ec_kmgmt.c +++ b/src/uadk_prov_ec_kmgmt.c @@ -328,6 +328,7 @@ static void *uadk_ec_sw_gen(void *genctx, OSSL_CALLBACK *osslcb, void *cbarg) return NULL; fprintf(stderr, "switch to openssl software calculation in ecx generation.\n"); + return get_default_ec_keymgmt().gen(genctx, osslcb, cbarg); } diff --git a/src/uadk_prov_ecdh_exch.c b/src/uadk_prov_ecdh_exch.c index a59316c..4102ac1 100644 --- a/src/uadk_prov_ecdh_exch.c +++ b/src/uadk_prov_ecdh_exch.c @@ -455,6 +455,7 @@ static int uadk_ecdh_sw_derive(void *vpecdhctx, unsigned char *secret, return UADK_P_FAIL; fprintf(stderr, "switch to openssl software calculation in ecdh derivation.\n"); + return get_default_ecdh_keyexch().derive(vpecdhctx, secret, psecretlen, outlen); } @@ -484,6 +485,7 @@ static int uadk_keyexch_ecdh_derive(void *vpecdhctx, unsigned char *secret, return UADK_P_SUCCESS; if (ret == UADK_DO_SOFT) return uadk_ecdh_sw_derive(vpecdhctx, secret, psecretlen, outlen); + return UADK_P_FAIL; } diff --git a/src/uadk_prov_ffc.c b/src/uadk_prov_ffc.c index f617c92..0b23186 100644 --- a/src/uadk_prov_ffc.c +++ b/src/uadk_prov_ffc.c @@ -809,6 +809,7 @@ static int generate_unverifiable_g(BN_CTX *ctx, BN_MONT_CTX *mont, BIGNUM *g, ++h; } *hret = h; + return 1; } @@ -941,6 +942,7 @@ static OSSL_LIB_CTX *ossl_bn_get_libctx(BN_CTX *ctx) { if (ctx == NULL) return NULL; + return ctx->libctx; } @@ -1071,6 +1073,7 @@ static int ossl_ffc_params_set_validate_params(FFC_PARAMS *params, if (!ossl_ffc_params_set_seed(params, seed, seedlen)) return 0; params->pcounter = counter; + return 1; } @@ -1082,6 +1085,7 @@ static const char *default_mdname(size_t N) return "SHA-224"; else if (N == N_Q_256BITS) return "SHA-256"; + return NULL; } @@ -1112,6 +1116,7 @@ static int ossl_ffc_params_validate_unverifiable_g(BN_CTX *ctx, BN_MONT_CTX *mon *ret |= FFC_ERROR_NOT_SUITABLE_GENERATOR; return 0; } + return 1; } @@ -1514,6 +1519,7 @@ static int generate_canonical_g(BN_CTX *ctx, BN_MONT_CTX *mont, } EVP_MD_CTX_free(mctx); + return ret; } @@ -1924,6 +1930,7 @@ static uint32_t ilog_e(uint64_t v) } } r = (r * (uint64_t)DH_C1_923) / DH_LOG_E; + return r; } @@ -1948,6 +1955,7 @@ static uint64_t icbrt64(uint64_t x) r++; } } + return r * DH_CBRT_SCALE; } @@ -2009,5 +2017,6 @@ uint16_t ossl_ifc_ffc_compute_security_bits(int n) y = (y + DH_CAI_NUM4) & ~DH_CAI_NUM7; if (y > cap) y = cap; + return y; } diff --git a/src/uadk_prov_hmac.c b/src/uadk_prov_hmac.c index e15592c..b764582 100644 --- a/src/uadk_prov_hmac.c +++ b/src/uadk_prov_hmac.c @@ -362,6 +362,7 @@ static int uadk_get_hmac_info(struct hmac_priv_ctx *priv) } fprintf(stderr, "failed to get hmac info, algname = %s.\n", priv->alg_name); + return UADK_HMAC_FAIL; } @@ -391,6 +392,7 @@ static const char *get_uadk_alg_name(__u32 alg_id) } fprintf(stderr, "failed to find alg, nid = %u.\n", alg_id); + return NULL; } diff --git a/src/uadk_prov_packet.c b/src/uadk_prov_packet.c index 19099db..d944442 100644 --- a/src/uadk_prov_packet.c +++ b/src/uadk_prov_packet.c @@ -24,6 +24,7 @@ int WPACKET_allocate_bytes(WPACKET *pkt, size_t len, unsigned char **allocbytes) pkt->written += len; pkt->curr += len; + return 1; } diff --git a/src/uadk_prov_packet.h b/src/uadk_prov_packet.h index 0f798cd..03d678b 100644 --- a/src/uadk_prov_packet.h +++ b/src/uadk_prov_packet.h @@ -94,6 +94,7 @@ __owur static ossl_inline int PACKET_buf_init(PACKET *pkt, pkt->curr = buf; pkt->remaining = len; + return 1; } @@ -114,6 +115,7 @@ __owur static ossl_inline int PACKET_equal(const PACKET *pkt, const void *ptr, { if (PACKET_remaining(pkt) != num) return 0; + return CRYPTO_memcmp(pkt->curr, ptr, num) == 0; } @@ -485,6 +487,7 @@ __owur static ossl_inline int PACKET_memdup(const PACKET *pkt, return 0; *len = length; + return 1; } @@ -504,6 +507,7 @@ __owur static ossl_inline int PACKET_strndup(const PACKET *pkt, char **data) /* This will succeed on an empty packet, unless pkt->curr == NULL. */ *data = OPENSSL_strndup((const char *)pkt->curr, PACKET_remaining(pkt)); + return (*data != NULL); } diff --git a/src/uadk_prov_rsa.c b/src/uadk_prov_rsa.c index f8342bc..4376c85 100644 --- a/src/uadk_prov_rsa.c +++ b/src/uadk_prov_rsa.c @@ -2016,6 +2016,7 @@ static int uadk_rsa_sw_verify(void *vprsactx, const unsigned char *sig, return UADK_E_FAIL; fprintf(stderr, "switch to openssl software calculation in verifaction.\n"); + return get_default_rsa_signature().verify(vprsactx, sig, siglen, tbs, tbslen); } @@ -2735,6 +2736,7 @@ static int uadk_rsa_sw_encrypt(void *vprsactx, unsigned char *out, return UADK_E_FAIL; fprintf(stderr, "switch to openssl software calculation in rsa encryption.\n"); + return get_default_rsa_asym_cipher().encrypt(vprsactx, out, outlen, outsize, in, inlen); } diff --git a/src/uadk_prov_sm2.c b/src/uadk_prov_sm2.c index 414b2b8..b0fc42b 100644 --- a/src/uadk_prov_sm2.c +++ b/src/uadk_prov_sm2.c @@ -720,6 +720,7 @@ static UADK_PKEY_SIGNATURE get_default_sm2_signature(void) } } pthread_mutex_unlock(&sign_mutex); + return s_signature; } diff --git a/src/uadk_sm2.c b/src/uadk_sm2.c index 3eb5252..761038a 100644 --- a/src/uadk_sm2.c +++ b/src/uadk_sm2.c @@ -250,6 +250,7 @@ static int update_public_key(EVP_PKEY_CTX *ctx) return ret; smctx->pubkey = point; + return 0; } @@ -275,6 +276,7 @@ static int update_private_key(EVP_PKEY_CTX *ctx) return ret; smctx->prikey = d; + return 0; } @@ -413,6 +415,7 @@ static int sign_bin_to_ber(EC_KEY *ec, struct wd_dtb *r, struct wd_dtb *s, *siglen = (size_t)sltmp; ECDSA_SIG_free(e_sig); + return 0; free_s: @@ -776,6 +779,7 @@ do_soft: if (ret != UADK_DO_SOFT) return ret; fprintf(stderr, "switch to execute openssl software calculation.\n"); + return openssl_sign(ctx, sig, siglen, tbs, tbslen); } @@ -907,6 +911,7 @@ static int sm2_encrypt_init_iot(handle_t sess, struct wd_ecc_req *req, } uadk_ecc_fill_req(req, WD_SM2_ENCRYPT, ecc_in, ecc_out); + return 0; } @@ -1176,6 +1181,7 @@ do_soft: return ret; fprintf(stderr, "switch to execute openssl software calculation.\n"); + return openssl_decrypt(ctx, out, outlen, in_soft, inlen); } @@ -1324,6 +1330,7 @@ set_data: return 0; EVP_PKEY_CTX_set_data(ctx, smctx); + return 1; } -- 2.33.0

From: Chenghai Huang <huangchenghai2@huawei.com> 1.When the group fails to be obtained, dh is null. In this case, accessing dh->meth will causes a memory error. 2.If the EVP_MD_CTX resources fail to be applied for, the EVP_MD_CTX resources do not need to be released. 3.After the ecx_key resource is released, the value of this parameter is set to NULL to prevent subsequent access to empty memory. 4.Add the validation of the input parameter of eckey. Otherwise, a memory error may occurs in EC_KEY_get0_group(). 5.Use BN_CTX_start and BN_CTX_free to complete the BN getting process. 6.Modify the length check to ensure that the copy does not overflow. Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com> Signed-off-by: JiangShui Yang <yangjiangshui@h-partners.com> --- src/uadk_ec.c | 2 ++ src/uadk_prov_dh.c | 26 ++++++++++++++------------ src/uadk_prov_ecdsa.c | 2 +- src/uadk_prov_ecx.c | 5 +++-- src/uadk_prov_pkey.c | 5 +++++ 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/uadk_ec.c b/src/uadk_ec.c index f9ca847..bd82036 100644 --- a/src/uadk_ec.c +++ b/src/uadk_ec.c @@ -951,6 +951,7 @@ static int ecdh_create_key(EC_KEY *eckey) return 0; } + BN_CTX_start(ctx); order = BN_CTX_get(ctx); if (!order) { fprintf(stderr, "failed to allocate order\n"); @@ -971,6 +972,7 @@ static int ecdh_create_key(EC_KEY *eckey) free_order: BN_clear(order); free_ctx: + BN_CTX_end(ctx); BN_CTX_free(ctx); return ret; } diff --git a/src/uadk_prov_dh.c b/src/uadk_prov_dh.c index e6984be..c81776c 100644 --- a/src/uadk_prov_dh.c +++ b/src/uadk_prov_dh.c @@ -1132,18 +1132,22 @@ static DH *uadk_prov_dh_gen_params_with_group(PROV_DH_KEYMGMT_CTX *gctx, FFC_PAR } group = ossl_ffc_uid_to_dh_named_group(gctx->group_nid); - if (group) { - dh = ossl_dh_new_ex(gctx->libctx); - if (dh == NULL) { - fprintf(stderr, "failed to get dh from libctx\n"); - return NULL; - } - dh->meth = DH_get_default_method(); - ossl_ffc_named_group_set(&dh->params, group); - dh->params.nid = ossl_ffc_named_group_get_uid(group); - dh->dirty_cnt++; + if (!group) { + fprintf(stderr, "failed to get dh named group\n"); + return NULL; + } + + dh = ossl_dh_new_ex(gctx->libctx); + if (dh == NULL) { + fprintf(stderr, "failed to get dh from libctx\n"); + return NULL; } + dh->meth = DH_get_default_method(); + ossl_ffc_named_group_set(&dh->params, group); + dh->params.nid = ossl_ffc_named_group_get_uid(group); + dh->dirty_cnt++; + *ffc = ossl_dh_get0_params(dh); if (*ffc == NULL) { fprintf(stderr, "failed to gen ffc params\n"); @@ -1151,8 +1155,6 @@ static DH *uadk_prov_dh_gen_params_with_group(PROV_DH_KEYMGMT_CTX *gctx, FFC_PAR return NULL; } - dh->meth = DH_get_default_method(); - return dh; } diff --git a/src/uadk_prov_ecdsa.c b/src/uadk_prov_ecdsa.c index 7ea5567..ab80357 100644 --- a/src/uadk_prov_ecdsa.c +++ b/src/uadk_prov_ecdsa.c @@ -871,7 +871,7 @@ static int ecdsa_digest_singverify_init(void *vctx, const char *mdname, void *ec if (!ctx->mdctx) { ctx->mdctx = EVP_MD_CTX_new(); if (!ctx->mdctx) - goto err; + return UADK_P_FAIL; } ret = EVP_DigestInit_ex2(ctx->mdctx, ctx->md, params); diff --git a/src/uadk_prov_ecx.c b/src/uadk_prov_ecx.c index 51f048f..a15c66d 100644 --- a/src/uadk_prov_ecx.c +++ b/src/uadk_prov_ecx.c @@ -787,6 +787,7 @@ uninit_iot: uadk_prov_ecx_keygen_uninit_iot(gctx->sess, &req); free_prikey: uadk_prov_ecx_free_prikey(*ecx_key); + *ecx_key = NULL; return ret; } @@ -1125,7 +1126,7 @@ static void uadk_prov_ecx_pad_out_key(unsigned char *dst, unsigned char *src, switch (type) { case ECX_KEY_TYPE_X448: - if (len != X448_KEYLEN) { + if (len <= X448_KEYLEN) { memcpy(x448_pad_key, src, len); memcpy(dst, x448_pad_key, X448_KEYLEN); } else { @@ -1133,7 +1134,7 @@ static void uadk_prov_ecx_pad_out_key(unsigned char *dst, unsigned char *src, } break; case ECX_KEY_TYPE_X25519: - if (len != X25519_KEYLEN) { + if (len <= X25519_KEYLEN) { memcpy(x25519_pad_key, src, len); memcpy(dst, x25519_pad_key, X25519_KEYLEN); } else { diff --git a/src/uadk_prov_pkey.c b/src/uadk_prov_pkey.c index a7817d2..3c67c06 100644 --- a/src/uadk_prov_pkey.c +++ b/src/uadk_prov_pkey.c @@ -304,6 +304,11 @@ handle_t uadk_prov_ecc_alloc_sess(const EC_KEY *eckey, const char *alg) int ret, key_bits; handle_t sess; + if (!eckey) { + fprintf(stderr, "input eckey is NULL\n"); + return (handle_t)0; + } + uadk_prov_init_dtb_param(¶m, buff, 0, UADK_ECC_MAX_KEY_BYTES, UADK_ECC_CV_PARAM_NUM); -- 2.33.0

From: Hao Fang <fanghao11@huawei.com> Delete the variable redundant initialization. Signed-off-by: Hao Fang <fanghao11@huawei.com> Signed-off-by: JiangShui Yang <yangjiangshui@h-partners.com> --- src/uadk_aead.c | 2 +- src/uadk_cipher.c | 8 ++++---- src/uadk_dh.c | 7 ++++--- src/uadk_ecx.c | 4 ++-- src/uadk_pkey.c | 7 ++++--- src/uadk_prov_bio.c | 2 +- src/uadk_prov_der_writer.c | 4 ++-- src/uadk_prov_dh.c | 18 +++++++++--------- src/uadk_prov_digest.c | 2 +- src/uadk_prov_ecdsa.c | 2 +- src/uadk_prov_ecx.c | 16 ++++++++-------- src/uadk_prov_ffc.c | 2 +- src/uadk_prov_hmac.c | 4 ++-- src/uadk_prov_rsa.c | 22 +++++++++++----------- src/uadk_prov_sm2.c | 14 +++++++------- src/uadk_rsa.c | 25 +++++++++++++------------ 16 files changed, 71 insertions(+), 68 deletions(-) diff --git a/src/uadk_aead.c b/src/uadk_aead.c index 8598800..0cb44c0 100644 --- a/src/uadk_aead.c +++ b/src/uadk_aead.c @@ -763,7 +763,7 @@ do {\ EVP_CIPHER *uadk_create_gcm_cipher_meth(int nid) { - EVP_CIPHER *aead = NULL; + EVP_CIPHER *aead; switch (nid) { case NID_aes_128_gcm: diff --git a/src/uadk_cipher.c b/src/uadk_cipher.c index 441bef2..b55f6ae 100644 --- a/src/uadk_cipher.c +++ b/src/uadk_cipher.c @@ -170,8 +170,8 @@ static int uadk_e_cipher_sw_init(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) { /* Real implementation: Openssl soft arithmetic key initialization function */ - struct cipher_priv_ctx *priv = NULL; - const EVP_CIPHER *sw_cipher = NULL; + struct cipher_priv_ctx *priv; + const EVP_CIPHER *sw_cipher; int ret, nid, sw_size; if (unlikely(key == NULL)) { @@ -224,8 +224,8 @@ static int uadk_e_cipher_sw_init(EVP_CIPHER_CTX *ctx, const unsigned char *key, static int uadk_e_cipher_soft_work(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) { - struct cipher_priv_ctx *priv = NULL; - const EVP_CIPHER *sw_cipher = NULL; + struct cipher_priv_ctx *priv; + const EVP_CIPHER *sw_cipher; unsigned char *iv; int ret, nid; diff --git a/src/uadk_dh.c b/src/uadk_dh.c index dfeeb90..8fa6b4b 100644 --- a/src/uadk_dh.c +++ b/src/uadk_dh.c @@ -376,7 +376,7 @@ free_cfg: static int uadk_e_dh_init(void) { - struct uacce_dev *dev = NULL; + struct uacce_dev *dev; int ret; if (g_dh_res.status != UADK_UNINIT) @@ -407,10 +407,11 @@ static int uadk_e_dh_init(void) err_init: g_dh_res.status = UADK_INIT_FAIL; -unlock: - pthread_spin_unlock(&g_dh_res.lock); if (dev) free(dev); +unlock: + pthread_spin_unlock(&g_dh_res.lock); + return g_dh_res.status; } diff --git a/src/uadk_ecx.c b/src/uadk_ecx.c index 011f733..f40acb4 100644 --- a/src/uadk_ecx.c +++ b/src/uadk_ecx.c @@ -406,9 +406,9 @@ static int openssl_do_ecx_genkey(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) static int ecx_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) { - struct ecx_ctx *keygen_ctx = NULL; struct ecx_key *ecx_key = NULL; struct wd_ecc_req req = {0}; + struct ecx_ctx *keygen_ctx; int ret; ret = ecx_genkey_check(ctx, pkey); @@ -636,9 +636,9 @@ static int ecx_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen) { struct ecx_key *peer_ecx_key = NULL; struct wd_ecc_point *s_key = NULL; - struct ecx_ctx *derive_ctx = NULL; struct ecx_key *ecx_key = NULL; struct wd_ecc_req req = {0}; + struct ecx_ctx *derive_ctx; int ret; if (!ctx) { diff --git a/src/uadk_pkey.c b/src/uadk_pkey.c index c779a9c..b32b658 100644 --- a/src/uadk_pkey.c +++ b/src/uadk_pkey.c @@ -572,7 +572,7 @@ bool uadk_support_algorithm(const char *alg) int uadk_init_ecc(void) { - struct uacce_dev *dev = NULL; + struct uacce_dev *dev; int ret; if (ecc_res.status != UADK_UNINIT) @@ -604,10 +604,11 @@ int uadk_init_ecc(void) err_init: ecc_res.status = UADK_INIT_FAIL; -unlock: - pthread_spin_unlock(&ecc_res.lock); if (dev) free(dev); +unlock: + pthread_spin_unlock(&ecc_res.lock); + return ecc_res.status; } diff --git a/src/uadk_prov_bio.c b/src/uadk_prov_bio.c index b7386b2..3e8ba3d 100644 --- a/src/uadk_prov_bio.c +++ b/src/uadk_prov_bio.c @@ -227,7 +227,7 @@ static int bio_core_free(BIO *bio) BIO_METHOD *ossl_bio_prov_init_bio_method(void) { - BIO_METHOD *corebiometh = NULL; + BIO_METHOD *corebiometh; corebiometh = BIO_meth_new(BIO_TYPE_CORE_TO_PROV, "BIO to Core filter"); if (corebiometh == NULL || diff --git a/src/uadk_prov_der_writer.c b/src/uadk_prov_der_writer.c index 0142641..d20640a 100644 --- a/src/uadk_prov_der_writer.c +++ b/src/uadk_prov_der_writer.c @@ -274,8 +274,8 @@ int ossl_DER_w_end_sequence(WPACKET *pkt, int tag) int ossl_DER_w_algorithmIdentifier_SM2_with_MD(WPACKET *pkt, int cont, EC_KEY *ec, int mdnid) { - const unsigned char *precompiled = NULL; - size_t precompiled_sz = 0; + const unsigned char *precompiled; + size_t precompiled_sz; switch (mdnid) { case NID_sm3: diff --git a/src/uadk_prov_dh.c b/src/uadk_prov_dh.c index c81776c..a7a6bf1 100644 --- a/src/uadk_prov_dh.c +++ b/src/uadk_prov_dh.c @@ -1119,7 +1119,7 @@ static void ossl_dh_free_ex(DH *dh) static DH *uadk_prov_dh_gen_params_with_group(PROV_DH_KEYMGMT_CTX *gctx, FFC_PARAMS **ffc) { - const DH_NAMED_GROUP *group = NULL; + const DH_NAMED_GROUP *group; DH *dh = NULL; /* Select a named group if there is not one already */ @@ -1160,7 +1160,7 @@ static DH *uadk_prov_dh_gen_params_with_group(PROV_DH_KEYMGMT_CTX *gctx, FFC_PAR static DH *uadk_prov_dh_gen_params_ex(PROV_DH_KEYMGMT_CTX *gctx, FFC_PARAMS **ffc) { - DH *dh = NULL; + DH *dh; /* Use existing params */ dh = ossl_dh_new_ex(gctx->libctx); @@ -1255,7 +1255,7 @@ static int uadk_prov_dh_gen_params_cb(PROV_DH_KEYMGMT_CTX *gctx, DH *dh, static DH *uadk_prov_dh_gen_params(PROV_DH_KEYMGMT_CTX *gctx, FFC_PARAMS **ffc, OSSL_CALLBACK *cb, void *cb_params) { - DH *dh = NULL; + DH *dh; int ret; /* For parameter generation - If there is a group name just create it */ @@ -1722,9 +1722,9 @@ static int ossl_dh_kdf_X9_42_asn1(unsigned char *out, PROV_DH_KEYEXCH_CTX *pdhct size_t ukmlen = pdhctx->kdf_ukmlen; const EVP_MD *md = pdhctx->kdf_md; OSSL_PARAM *p = params; - EVP_KDF_CTX *kctx = NULL; - EVP_KDF *kdf = NULL; const char *mdname; + EVP_KDF_CTX *kctx; + EVP_KDF *kdf; int ret = 0; kdf = EVP_KDF_fetch(libctx, OSSL_KDF_NAME_X942KDF_ASN1, propq); @@ -1759,7 +1759,7 @@ end: static int uadk_prov_dh_X9_42_kdf_derive(PROV_DH_KEYEXCH_CTX *pdhctx, unsigned char *secret, size_t *secretlen, size_t outlen) { - unsigned char *stmp = NULL; + unsigned char *stmp; size_t stmplen; int ret = 0; @@ -1910,7 +1910,7 @@ static int uadk_prov_dh_locate_kdf_type(PROV_DH_KEYEXCH_CTX *pdhctx, const OSSL_ { char name[DH_MAX_PARAM_LEN + 1] = {'\0'}; const OSSL_PARAM *p; - char *str = NULL; + char *str; p = OSSL_PARAM_locate_const(params, OSSL_EXCHANGE_PARAM_KDF_TYPE); if (p != NULL) { @@ -1935,7 +1935,7 @@ static int uadk_prov_dh_locate_kdf_digest(PROV_DH_KEYEXCH_CTX *pdhctx, char mdprops[DH_MAX_PARAM_LEN + 1] = {'\0'}; char name[DH_MAX_PARAM_LEN + 1] = {'\0'}; const OSSL_PARAM *p; - char *str = NULL; + char *str; p = OSSL_PARAM_locate_const(params, OSSL_EXCHANGE_PARAM_KDF_DIGEST); if (p != NULL) { @@ -2100,7 +2100,7 @@ static const OSSL_PARAM *uadk_keyexch_dh_gettable_ctx_params(ossl_unused void *d static int uadk_keyexch_dh_get_ctx_params(void *dhctx, OSSL_PARAM params[]) { PROV_DH_KEYEXCH_CTX *pdhctx = (PROV_DH_KEYEXCH_CTX *)dhctx; - const char *kdf_type = NULL; + const char *kdf_type; OSSL_PARAM *p; if (pdhctx == NULL) { diff --git a/src/uadk_prov_digest.c b/src/uadk_prov_digest.c index a40dfe4..208f381 100644 --- a/src/uadk_prov_digest.c +++ b/src/uadk_prov_digest.c @@ -771,7 +771,7 @@ static const OSSL_PARAM *uadk_prov_gettable_params(void *provctx) static int uadk_digest_default_get_params(OSSL_PARAM params[], size_t blksz, size_t paramsz) { - OSSL_PARAM *p = NULL; + OSSL_PARAM *p; p = OSSL_PARAM_locate(params, OSSL_DIGEST_PARAM_BLOCK_SIZE); if (p != NULL && !OSSL_PARAM_set_size_t(p, blksz)) { diff --git a/src/uadk_prov_ecdsa.c b/src/uadk_prov_ecdsa.c index ab80357..251c20a 100644 --- a/src/uadk_prov_ecdsa.c +++ b/src/uadk_prov_ecdsa.c @@ -246,7 +246,7 @@ static int ecdsa_digest_get_approved_nid(struct ecdsa_ctx *ctx, const EVP_MD *md static int ecdsa_setup_md(struct ecdsa_ctx *ctx, const char *mdname, const char *mdprops) { size_t mdname_len; - EVP_MD *md = NULL; + EVP_MD *md; int md_nid; if (!mdname) diff --git a/src/uadk_prov_ecx.c b/src/uadk_prov_ecx.c index a15c66d..41b7a5e 100644 --- a/src/uadk_prov_ecx.c +++ b/src/uadk_prov_ecx.c @@ -428,7 +428,7 @@ static void *ossl_ecx_gen_init(void *provctx, int selection, const OSSL_PARAM pa ECX_KEY_TYPE type) { OSSL_LIB_CTX *libctx = prov_libctx_of(provctx); - PROV_ECX_KEYMGMT_CTX *gctx = NULL; + PROV_ECX_KEYMGMT_CTX *gctx; int ret; gctx = OPENSSL_zalloc(sizeof(PROV_ECX_KEYMGMT_CTX)); @@ -544,8 +544,8 @@ static void uadk_prov_ecx_key_free(ECX_KEY *ecx_key) static ECX_KEY *uadk_prov_ecx_create_prikey(PROV_ECX_KEYMGMT_CTX *gctx) { - unsigned char *prikey = NULL; - ECX_KEY *ecx_key = NULL; + unsigned char *prikey; + ECX_KEY *ecx_key; int ret; ecx_key = uadk_prov_ecx_key_new(gctx->libctx, gctx->type, 0, gctx->propq); @@ -621,7 +621,7 @@ static void uadk_prov_ecx_keygen_uninit_iot(handle_t sess, struct wd_ecc_req *re static int uadk_prov_reverse_bytes(unsigned char *to_buf, __u32 size) { - unsigned char *tmp_buf = NULL; + unsigned char *tmp_buf; unsigned char tmp; if (size == 0) { @@ -730,7 +730,7 @@ static int uadk_prov_ecx_set_pkey(PROV_ECX_KEYMGMT_CTX *gctx, struct wd_ecc_req static int uadk_prov_ecx_keygen_set_prikey(PROV_ECX_KEYMGMT_CTX *gctx, ECX_KEY *ecx_key) { - struct wd_ecc_key *ecc_key = NULL; + struct wd_ecc_key *ecc_key; struct wd_dtb prikey = {0}; handle_t sess = gctx->sess; int ret; @@ -890,7 +890,7 @@ exe_soft: static void *uadk_keyexch_x448_newctx(void *provctx) { - PROV_ECX_KEYEXCH_CTX *ecxctx = NULL; + PROV_ECX_KEYEXCH_CTX *ecxctx; ecxctx = OPENSSL_zalloc(sizeof(PROV_ECX_KEYEXCH_CTX)); if (ecxctx == NULL) { @@ -1149,9 +1149,9 @@ static void uadk_prov_ecx_pad_out_key(unsigned char *dst, unsigned char *src, static int uadk_prov_ecx_derive(PROV_ECX_KEYEXCH_CTX *ecxctx, unsigned char *key, size_t *keylen) { struct wd_ecc_point *s_key = NULL; - ECX_KEY *peer_ecx_key = NULL; struct wd_ecc_req req = {0}; - ECX_KEY *ecx_key = NULL; + ECX_KEY *peer_ecx_key; + ECX_KEY *ecx_key; int ret; if (ecxctx == NULL) { diff --git a/src/uadk_prov_ffc.c b/src/uadk_prov_ffc.c index 0b23186..cd30c87 100644 --- a/src/uadk_prov_ffc.c +++ b/src/uadk_prov_ffc.c @@ -1464,7 +1464,7 @@ static int generate_canonical_g(BN_CTX *ctx, BN_MONT_CTX *mont, int gindex, unsigned char *seed, size_t seedlen) { unsigned char md[EVP_MAX_MD_SIZE]; - EVP_MD_CTX *mctx = NULL; + EVP_MD_CTX *mctx; int counter = 1; int ret = 0; int mdsize; diff --git a/src/uadk_prov_hmac.c b/src/uadk_prov_hmac.c index b764582..dd5f5ad 100644 --- a/src/uadk_prov_hmac.c +++ b/src/uadk_prov_hmac.c @@ -455,9 +455,9 @@ static int uadk_prov_compute_key_hash(struct hmac_priv_ctx *priv, const unsigned char *key, size_t keylen) { int ret = UADK_HMAC_FAIL; - EVP_MD_CTX *ctx = NULL; - EVP_MD *key_md = NULL; __u32 outlen = 0; + EVP_MD_CTX *ctx; + EVP_MD *key_md; key_md = EVP_MD_fetch(priv->libctx, priv->alg_name, NULL); if (!key_md) diff --git a/src/uadk_prov_rsa.c b/src/uadk_prov_rsa.c index 4376c85..aff3904 100644 --- a/src/uadk_prov_rsa.c +++ b/src/uadk_prov_rsa.c @@ -788,8 +788,8 @@ error: static int rsa_primes_gen(int bits, BIGNUM *e_pub, BIGNUM *p, BIGNUM *q, BN_GENCB *cb) { - struct rsa_prime_param *param = NULL; int bitsr[RSA_MAX_PRIME_NUM] = {0}; + struct rsa_prime_param *param; int flag, quot, rmd, i; BN_CTX *bnctx; int bitse = 0; @@ -1556,8 +1556,8 @@ static int uadk_prov_rsa_keygen(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb) { struct rsa_keygen_param *keygen_param = NULL; struct rsa_keygen_param_bn *bn_param = NULL; - struct uadk_rsa_sess *rsa_sess = NULL; struct rsa_keypair *key_pair = NULL; + struct uadk_rsa_sess *rsa_sess; int is_crt = 1; int ret; @@ -1613,7 +1613,7 @@ free_keygen: static int crypt_trans_bn(struct uadk_rsa_sess *rsa_sess, unsigned char *buf, int num_bytes) { - BIGNUM *bn = NULL; + BIGNUM *bn; int ret; bn = BN_bin2bn((const unsigned char *)rsa_sess->req.dst, @@ -1634,7 +1634,7 @@ static int uadk_prov_rsa_public_encrypt(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding) { struct rsa_pubkey_param *pub_enc = NULL; - struct uadk_rsa_sess *rsa_sess = NULL; + struct uadk_rsa_sess *rsa_sess; unsigned char *from_buf = NULL; int num_bytes, is_crt, ret; @@ -1759,9 +1759,9 @@ static int sign_trans_bn(struct uadk_rsa_sess *rsa_sess, unsigned char *from_buf struct rsa_prikey_param *pri, int padding, unsigned char *to, int num_bytes) { - BIGNUM *sign_bn = NULL; - BIGNUM *to_bn = NULL; BIGNUM *res = NULL; + BIGNUM *sign_bn; + BIGNUM *to_bn; int ret; sign_bn = BN_bin2bn((const unsigned char *)rsa_sess->req.dst, @@ -1791,8 +1791,8 @@ free_sign_bn: static int uadk_prov_rsa_private_sign(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding) { - struct uadk_rsa_sess *rsa_sess = NULL; struct rsa_prikey_param *prik = NULL; + struct uadk_rsa_sess *rsa_sess; unsigned char *from_buf = NULL; int ret, num_bytes; @@ -1851,7 +1851,7 @@ static int verify_trans_bn(struct uadk_rsa_sess *rsa_sess, unsigned char *from_b int num_bytes, struct rsa_pubkey_param *pub, int padding, int *len) { - BIGNUM *verify_bn = NULL; + BIGNUM *verify_bn; int ret; verify_bn = BN_bin2bn((const unsigned char *)rsa_sess->req.dst, @@ -1875,9 +1875,9 @@ verify_end: static int uadk_prov_rsa_public_verify(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding) { - struct uadk_rsa_sess *rsa_sess = NULL; struct rsa_pubkey_param *pub = NULL; int num_bytes, is_crt, len, ret; + struct uadk_rsa_sess *rsa_sess; unsigned char *from_buf = NULL; ret = check_rsa_input_para(flen, from, to, rsa); @@ -2990,8 +2990,8 @@ static void *uadk_rsa_sw_gen(void *genctx, OSSL_CALLBACK *osslcb, void *cbarg) static void *uadk_keymgmt_rsa_gen(void *genctx, OSSL_CALLBACK *osslcb, void *cbarg) { struct rsa_gen_ctx *gctx = genctx; - RSA *rsa = NULL; - BN_GENCB *gencb = NULL; + BN_GENCB *gencb; + RSA *rsa; int ret; if (gctx == NULL) diff --git a/src/uadk_prov_sm2.c b/src/uadk_prov_sm2.c index b0fc42b..7091ea4 100644 --- a/src/uadk_prov_sm2.c +++ b/src/uadk_prov_sm2.c @@ -646,7 +646,7 @@ static void *uadk_keymgmt_sm2_gen_sw(void *genctx, OSSL_CALLBACK *osslcb, void * static void *uadk_keymgmt_sm2_gen(void *genctx, OSSL_CALLBACK *osslcb, void *cbarg) { struct ec_gen_ctx *gctx = genctx; - EC_KEY *ec = NULL; + EC_KEY *ec; int ret; if (gctx == NULL) { @@ -1232,9 +1232,9 @@ static int uadk_prov_sm2_sign_ber_to_bin(unsigned char *sig, size_t sig_len, { const unsigned char *p = sig; unsigned char *der = NULL; - ECDSA_SIG *e_sig = NULL; - int len1, len2; BIGNUM *bn_r, *bn_s; + ECDSA_SIG *e_sig; + int len1, len2; e_sig = ECDSA_SIG_new(); if (e_sig == NULL) { @@ -1757,11 +1757,11 @@ static int uadk_prov_sm2_compute_z_digest(uint8_t *out, const EVP_MD *digest, const EC_KEY *key) { const EC_GROUP *group = EC_KEY_get0_group(key); - struct sm2_param *params = NULL; + struct sm2_param *params; int ret = UADK_P_FAIL; - uint8_t *buf = NULL; - BN_CTX *ctx = NULL; EVP_MD_CTX *hash; + uint8_t *buf; + BN_CTX *ctx; int p_bytes; hash = EVP_MD_CTX_new(); @@ -1819,7 +1819,7 @@ free_hash: static int sm2_sig_compute_z_digest(PROV_SM2_SIGN_CTX *psm2ctx) { SM2_PROV_CTX *smctx = psm2ctx->sm2_pctx; - uint8_t *z = NULL; + uint8_t *z; int ret; if (psm2ctx->flag_compute_z_digest) { diff --git a/src/uadk_rsa.c b/src/uadk_rsa.c index 969fcd2..62118e6 100644 --- a/src/uadk_rsa.c +++ b/src/uadk_rsa.c @@ -425,8 +425,8 @@ end: static int rsa_primes_gen(int bits, BIGNUM *e_pub, BIGNUM *p, BIGNUM *q, BN_GENCB *cb) { - struct rsa_prime_param *param = NULL; int bitsr[RSA_MAX_PRIME_NUM] = {0}; + struct rsa_prime_param *param; int flag, quo, rmd, i; BN_CTX *ctx; int bitse = 0; @@ -827,7 +827,7 @@ free_cfg: static int uadk_e_rsa_init(void) { - struct uacce_dev *dev = NULL; + struct uacce_dev *dev; int ret; if (g_rsa_res.status != UADK_UNINIT) @@ -858,10 +858,11 @@ static int uadk_e_rsa_init(void) err_init: g_rsa_res.status = UADK_INIT_FAIL; -unlock: - pthread_spin_unlock(&g_rsa_res.lock); if (dev) free(dev); +unlock: + pthread_spin_unlock(&g_rsa_res.lock); + return g_rsa_res.status; } @@ -1452,8 +1453,8 @@ static int uadk_e_rsa_keygen(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb) { struct rsa_keygen_param *keygen_param = NULL; struct rsa_keygen_param_bn *bn_param = NULL; - struct uadk_rsa_sess *rsa_sess = NULL; struct rsa_keypair *key_pair = NULL; + struct uadk_rsa_sess *rsa_sess; BN_CTX *bn_ctx = NULL; int is_crt = 1; int ret; @@ -1523,7 +1524,7 @@ static int uadk_e_rsa_public_encrypt(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding) { struct rsa_pubkey_param *pub_enc = NULL; - struct uadk_rsa_sess *rsa_sess = NULL; + struct uadk_rsa_sess *rsa_sess; unsigned char *from_buf = NULL; int num_bytes, is_crt, ret; BIGNUM *enc_bn = NULL; @@ -1614,7 +1615,7 @@ static int uadk_e_rsa_private_decrypt(int flen, const unsigned char *from, unsigned char *from_buf = NULL; struct uadk_rsa_sess *rsa_sess; int num_bytes, len, ret; - BIGNUM *dec_bn = NULL; + BIGNUM *dec_bn; ret = check_rsa_input_para(flen, from, to, rsa); if (!ret) @@ -1695,11 +1696,11 @@ exe_soft: static int uadk_e_rsa_private_sign(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding) { - struct uadk_rsa_sess *rsa_sess = NULL; struct rsa_prikey_param *pri = NULL; + struct uadk_rsa_sess *rsa_sess; unsigned char *from_buf = NULL; - BIGNUM *sign_bn = NULL; - BIGNUM *to_bn = NULL; + BIGNUM *sign_bn; + BIGNUM *to_bn; BIGNUM *res = NULL; int num_bytes, ret; @@ -1792,11 +1793,11 @@ exe_soft: static int uadk_e_rsa_public_verify(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding) { - struct uadk_rsa_sess *rsa_sess = NULL; struct rsa_pubkey_param *pub = NULL; + struct uadk_rsa_sess *rsa_sess; int num_bytes, is_crt, len, ret; unsigned char *from_buf = NULL; - BIGNUM *verify_bn = NULL; + BIGNUM *verify_bn; ret = check_rsa_input_para(flen, from, to, rsa); if (!ret) -- 2.33.0

From: Chenghai Huang <huangchenghai2@huawei.com> 1.Separate variable declaration and assignment, and obtain mdname after EVP_KDF check. 2.It is no need to give 0 to sess after releasing sess. Delete redundant operation after releasing resource. 3.Delete the loop that does not display the exit condition like for(;;) and use the do while. 4.Change the uadk_params.enable_sw_offload name to uadk_params.enable_sw_flag to avoid duplicate names. Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com> Signed-off-by: JiangShui Yang <yangjiangshui@h-partners.com> --- src/uadk_prov_cipher.c | 5 ++--- src/uadk_prov_ecdh_exch.c | 11 ++++++++--- src/uadk_prov_ffc.c | 36 ++++++++++++++++++++++-------------- src/uadk_prov_hmac.c | 4 ++-- src/uadk_prov_init.c | 8 ++++---- src/uadk_sm2.c | 1 + 6 files changed, 39 insertions(+), 26 deletions(-) diff --git a/src/uadk_prov_cipher.c b/src/uadk_prov_cipher.c index 94ce518..23b93d1 100644 --- a/src/uadk_prov_cipher.c +++ b/src/uadk_prov_cipher.c @@ -1330,10 +1330,9 @@ static void uadk_prov_cipher_freectx(void *ctx) if (priv->sw_ctx) EVP_CIPHER_CTX_free(priv->sw_ctx); - if (priv->sess) { + if (priv->sess) wd_cipher_free_sess(priv->sess); - priv->sess = 0; - } + OPENSSL_clear_free(priv, sizeof(*priv)); } diff --git a/src/uadk_prov_ecdh_exch.c b/src/uadk_prov_ecdh_exch.c index 4102ac1..9bd7559 100644 --- a/src/uadk_prov_ecdh_exch.c +++ b/src/uadk_prov_ecdh_exch.c @@ -371,17 +371,19 @@ static int ecdh_plain_derive(struct ecdh_ctx *pecdhctx, static int ecdh_kdf_X9_63(unsigned char *out, struct ecdh_ctx *pecdhctx, unsigned char *stmp, size_t stmplen) { - EVP_KDF *kdf = EVP_KDF_fetch(pecdhctx->libctx, OSSL_KDF_NAME_X963KDF, NULL); - const char *mdname = EVP_MD_get0_name(pecdhctx->kdf_md); OSSL_PARAM params[4], *p = params; int ret = UADK_P_FAIL; + const char *mdname; EVP_KDF_CTX *kctx; + EVP_KDF *kdf; + kdf = EVP_KDF_fetch(pecdhctx->libctx, OSSL_KDF_NAME_X963KDF, NULL); if (!kdf) { fprintf(stderr, "failed to fetch kdf!\n"); return ret; } + mdname = EVP_MD_get0_name(pecdhctx->kdf_md); kctx = EVP_KDF_CTX_new(kdf); if (!kctx) { fprintf(stderr, "failed to new kctx!\n"); @@ -395,7 +397,10 @@ static int ecdh_kdf_X9_63(unsigned char *out, struct ecdh_ctx *pecdhctx, *p = OSSL_PARAM_construct_end(); ret = EVP_KDF_derive(kctx, out, pecdhctx->kdf_outlen, params); - ret = ret <= 0 ? UADK_P_FAIL : UADK_P_SUCCESS; + if (ret <= 0) + ret = UADK_P_FAIL; + else + ret = UADK_P_SUCCESS; EVP_KDF_CTX_free(kctx); diff --git a/src/uadk_prov_ffc.c b/src/uadk_prov_ffc.c index cd30c87..7719039 100644 --- a/src/uadk_prov_ffc.c +++ b/src/uadk_prov_ffc.c @@ -1126,24 +1126,31 @@ int ossl_ffc_params_FIPS186_2_gen_verify(OSSL_LIB_CTX *libctx, size_t L, size_t N, int *res, BN_GENCB *cb) { - BIGNUM *r0, *test, *tmp, *g = NULL, *q = NULL, *p = NULL; - int counter = 0, pcounter = 0, use_random_seed; - int ok = FFC_PARAM_RET_STATUS_FAILED; unsigned char seed[SHA256_DIGEST_LENGTH]; unsigned char buf[SHA256_DIGEST_LENGTH]; unsigned char *seed_in = params->seed; + int ok = FFC_PARAM_RET_STATUS_FAILED; size_t seed_len = params->seedlen; - int verify = (mode == FFC_PARAM_MODE_VERIFY); - unsigned int flags = verify ? params->flags : 0; - const char *def_name; + int use_random_seed, rv, verify; BN_MONT_CTX *mont = NULL; + BIGNUM *r0, *test, *tmp; + const char *def_name; + unsigned int flags; BN_CTX *ctx = NULL; EVP_MD *md = NULL; + BIGNUM *g = NULL; + BIGNUM *q = NULL; + BIGNUM *p = NULL; + int pcounter = 0; + int counter = 0; int hret = -1; size_t qsize; - int n = 0, m = 0; - int rv; + int done = 0; + int m = 0; + int n = 0; + verify = (mode == FFC_PARAM_MODE_VERIFY); + flags = verify ? params->flags : 0; *res = 0; if (params->mdname != NULL) { @@ -1251,7 +1258,7 @@ int ossl_ffc_params_FIPS186_2_gen_verify(OSSL_LIB_CTX *libctx, } use_random_seed = (seed_in == NULL); - for (;;) { + do { if (!generate_q_fips186_2(ctx, q, md, buf, seed, qsize, use_random_seed, &m, res, cb)) goto err; @@ -1276,12 +1283,13 @@ int ossl_ffc_params_FIPS186_2_gen_verify(OSSL_LIB_CTX *libctx, rv = generate_p(ctx, md, counter, n, buf, qsize, q, p, L, cb, &pcounter, res); if (rv > 0) - break; /* found it */ - if (rv == -1) + done = 1; /* found it */ + else if (rv == -1) goto err; - /* This is what the old code did - probably not a good idea! */ - use_random_seed = 1; - } + else + /* This is what the old code did - probably not a good idea! */ + use_random_seed = 1; + } while (!done); if (!BN_GENCB_call(cb, GENCB_NEXT, 1)) goto err; diff --git a/src/uadk_prov_hmac.c b/src/uadk_prov_hmac.c index dd5f5ad..9ad9168 100644 --- a/src/uadk_prov_hmac.c +++ b/src/uadk_prov_hmac.c @@ -45,8 +45,8 @@ #define ALG_NAME_SIZE 128 #define PARAMS_SIZE 2 -#define KEY_4BYTE_ALIGN(keylen) ((keylen + 3) & ~3) -#define SW_SWITCH_PRINT_ENABLE(SW) (SW ? ", switch to soft hmac" : "") +#define KEY_4BYTE_ALIGN(keylen) (((keylen) + 3) & ~3) +#define SW_SWITCH_PRINT_ENABLE(SW) ((SW) ? ", switch to soft hmac" : "") #define SM3_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT (512) #define MD5_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT (8 * 1024) diff --git a/src/uadk_prov_init.c b/src/uadk_prov_init.c index 5c76041..7869303 100644 --- a/src/uadk_prov_init.c +++ b/src/uadk_prov_init.c @@ -41,7 +41,7 @@ static OSSL_FUNC_core_get_params_fn *c_get_params; static OSSL_FUNC_core_get_libctx_fn *c_get_libctx; struct uadk_provider_params { - char *enable_sw_offload; + char *enable_sw_flag; } uadk_params; /* offload small packets to sw */ @@ -379,7 +379,7 @@ int uadk_get_params_from_core(const OSSL_CORE_HANDLE *handle) *p++ = OSSL_PARAM_construct_utf8_ptr( "enable_sw_offload", - (char **)&uadk_params.enable_sw_offload, + (char **)&uadk_params.enable_sw_flag, 0); *p = OSSL_PARAM_construct_end(); @@ -388,8 +388,8 @@ int uadk_get_params_from_core(const OSSL_CORE_HANDLE *handle) return UADK_P_FAIL; } - if (uadk_params.enable_sw_offload) - uadk_set_sw_offload_state(atoi(uadk_params.enable_sw_offload)); + if (uadk_params.enable_sw_flag) + uadk_set_sw_offload_state(atoi(uadk_params.enable_sw_flag)); return UADK_P_SUCCESS; } diff --git a/src/uadk_sm2.c b/src/uadk_sm2.c index 761038a..ac7d88c 100644 --- a/src/uadk_sm2.c +++ b/src/uadk_sm2.c @@ -1450,6 +1450,7 @@ static int check_digest_evp_lib(const EVP_MD *digest, EVP_MD_CTX *hash, static int check_equation_param(struct sm2_param *param, EVP_MD_CTX *hash, uint8_t *buf, int p_bytes) { + /* Update param a and b separately */ if (BN_bn2binpad(param->a, buf, p_bytes) < 0 || !EVP_DigestUpdate(hash, buf, p_bytes) || BN_bn2binpad(param->b, buf, p_bytes) < 0 || -- 2.33.0

From: Chenghai Huang <huangchenghai2@huawei.com> The count static variable is used as a member of the rsa_prime_param structure to isolate the impact between threads. Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com> Signed-off-by: JiangShui Yang <yangjiangshui@h-partners.com> --- src/uadk_prov_rsa.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/uadk_prov_rsa.c b/src/uadk_prov_rsa.c index aff3904..59cdc5d 100644 --- a/src/uadk_prov_rsa.c +++ b/src/uadk_prov_rsa.c @@ -112,6 +112,7 @@ struct rsa_prime_param { BIGNUM *rsa_p; BIGNUM *rsa_q; BIGNUM *prime; + int retries; }; struct rsa_pubkey_param { @@ -552,7 +553,6 @@ static int check_rsa_prime_sufficient(int *num, const int *bitsr, struct rsa_prime_param *param, BN_CTX *ctx, BN_GENCB *cb) { - static int retries; BN_ULONG bitst; int ret; @@ -596,20 +596,20 @@ static int check_rsa_prime_sufficient(int *num, const int *bitsr, if (!ret) return BN_ERR; - if (retries == PRIME_RETRY_COUNT) { - retries = 0; + if (param->retries == PRIME_RETRY_COUNT) { + param->retries = 0; *bitse = 0; *num = -1; return BN_CONTINUE; } - retries++; + param->retries++; return BN_REDO; } ret = BN_GENCB_call(cb, GENCB_RETRY, *num); if (!ret) return BN_ERR; - retries = 0; + param->retries = 0; return BN_VALID; } -- 2.33.0

From: Hao Fang <fanghao11@huawei.com> Signed-off-by: Hao Fang <fanghao11@huawei.com> Signed-off-by: JiangShui Yang <yangjiangshui@h-partners.com> --- src/uadk_prov_ec_kmgmt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uadk_prov_ec_kmgmt.c b/src/uadk_prov_ec_kmgmt.c index 01cf644..988be8b 100644 --- a/src/uadk_prov_ec_kmgmt.c +++ b/src/uadk_prov_ec_kmgmt.c @@ -608,7 +608,7 @@ static int uadk_keymgmt_ec_gen_set_params(void *genctx, const OSSL_PARAM params[ static const OSSL_PARAM *uadk_keymgmt_ec_gen_settable_params(ossl_unused void *genctx, ossl_unused void *provctx) { - static OSSL_PARAM settable[] = { + static const OSSL_PARAM settable[] = { OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, NULL, 0), OSSL_PARAM_int(OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, NULL), OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_EC_ENCODING, NULL, 0), -- 2.33.0

From: Hao Fang <fanghao11@huawei.com> Signed-off-by: Hao Fang <fanghao11@huawei.com> Signed-off-by: JiangShui Yang <yangjiangshui@h-partners.com> --- src/uadk_prov_ecdsa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/uadk_prov_ecdsa.c b/src/uadk_prov_ecdsa.c index 251c20a..300c940 100644 --- a/src/uadk_prov_ecdsa.c +++ b/src/uadk_prov_ecdsa.c @@ -345,7 +345,7 @@ static int uadk_signature_ecdsa_verify_init(void *vctx, void *ec, const OSSL_PAR } static int ecdsa_soft_sign(struct ecdsa_ctx *ctx, unsigned char *sig, size_t *siglen, - size_t sigsize, const unsigned char *tbs, size_t tbslen) + const unsigned char *tbs, size_t tbslen) { unsigned int tmplen; int ret; @@ -693,7 +693,7 @@ err: *siglen = 0; if (ret == UADK_DO_SOFT) - return ecdsa_soft_sign(ctx, sig, siglen, sigsize, tbs, tbslen); + return ecdsa_soft_sign(ctx, sig, siglen, tbs, tbslen); return UADK_P_FAIL; } -- 2.33.0

From: Hao Fang <fanghao11@huawei.com> Tinyfixes: 1.Use UADK_E_INVAL replace -1. 2.Initialized to 0 when ret is defined. Signed-off-by: Hao Fang <fanghao11@huawei.com> Signed-off-by: JiangShui Yang <yangjiangshui@h-partners.com> --- src/uadk_pkey.h | 1 + src/uadk_sm2.c | 33 +++++++++++++++++---------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/uadk_pkey.h b/src/uadk_pkey.h index 668768b..05b6881 100644 --- a/src/uadk_pkey.h +++ b/src/uadk_pkey.h @@ -39,6 +39,7 @@ #define GET_LS_BYTE(n) ((n) & 0xFF) #define DGST_SHIFT_NUM(n) (8 - ((n) & 0x7)) #define ECC_TYPE 5 +#define UADK_E_INVAL (-1) enum { SM2_SUPPORT, diff --git a/src/uadk_sm2.c b/src/uadk_sm2.c index ac7d88c..1294c4e 100644 --- a/src/uadk_sm2.c +++ b/src/uadk_sm2.c @@ -144,7 +144,7 @@ static int get_hash_type(int nid_hash) case NID_sm3: return WD_HASH_SM3; default: - return -1; + return UADK_E_INVAL; } } @@ -157,13 +157,13 @@ static int compute_hash(const char *in, size_t in_len, hash = EVP_MD_CTX_new(); if (!hash) - return -1; + return UADK_E_INVAL; if (EVP_DigestInit(hash, digest) == 0 || EVP_DigestUpdate(hash, in, in_len) == 0 || EVP_DigestFinal(hash, (void *)out, NULL) == 0) { fprintf(stderr, "compute hash failed\n"); - ret = -1; + ret = UADK_E_INVAL; } EVP_MD_CTX_free(hash); @@ -289,13 +289,13 @@ static int openssl_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, openssl_meth = get_openssl_pkey_meth(EVP_PKEY_SM2); if (!openssl_meth) { fprintf(stderr, "failed to get sm2 pkey methods\n"); - return -1; + return UADK_E_INVAL; } EVP_PKEY_meth_get_sign(openssl_meth, NULL, &sign_pfunc); if (!sign_pfunc) { fprintf(stderr, "sign_pfunc is NULL\n"); - return -1; + return UADK_E_INVAL; } return (*sign_pfunc)(ctx, sig, siglen, tbs, tbslen); @@ -311,13 +311,13 @@ static int openssl_verify(EVP_PKEY_CTX *ctx, openssl_meth = get_openssl_pkey_meth(EVP_PKEY_SM2); if (!openssl_meth) { fprintf(stderr, "failed to get sm2 pkey methods\n"); - return -1; + return UADK_E_INVAL; } EVP_PKEY_meth_get_verify(openssl_meth, NULL, &verify_pfunc); if (!verify_pfunc) { fprintf(stderr, "verify_pfunc is NULL\n"); - return -1; + return UADK_E_INVAL; } return (*verify_pfunc)(ctx, sig, siglen, tbs, tbslen); @@ -333,13 +333,13 @@ static int openssl_encrypt(EVP_PKEY_CTX *ctx, openssl_meth = get_openssl_pkey_meth(EVP_PKEY_SM2); if (!openssl_meth) { fprintf(stderr, "failed to get sm2 pkey methods\n"); - return -1; + return UADK_E_INVAL; } EVP_PKEY_meth_get_encrypt(openssl_meth, NULL, &enc_pfunc); if (!enc_pfunc) { fprintf(stderr, "enc_pfunc is NULL\n"); - return -1; + return UADK_E_INVAL; } return (*enc_pfunc)(ctx, out, outlen, in, inlen); @@ -355,13 +355,13 @@ static int openssl_decrypt(EVP_PKEY_CTX *ctx, openssl_meth = get_openssl_pkey_meth(EVP_PKEY_SM2); if (!openssl_meth) { fprintf(stderr, "failed to get sm2 pkey methods\n"); - return -1; + return UADK_E_INVAL; } EVP_PKEY_meth_get_decrypt(openssl_meth, NULL, &dec_pfunc); if (!dec_pfunc) { fprintf(stderr, "dec_pfunc is NULL\n"); - return -1; + return UADK_E_INVAL; } return (*dec_pfunc)(ctx, out, outlen, in, inlen); @@ -434,8 +434,9 @@ static int sig_ber_to_bin(EC_KEY *ec, unsigned char *sig, size_t sig_len, const unsigned char *p = sig; unsigned char *der = NULL; ECDSA_SIG *e_sig = NULL; - int ret, len1, len2; BIGNUM *b_r, *b_s; + int len1, len2; + int ret = 0; e_sig = ECDSA_SIG_new(); if (!e_sig) { @@ -481,7 +482,7 @@ static int sig_ber_to_bin(EC_KEY *ec, unsigned char *sig, size_t sig_len, } r->dsize = BN_bn2bin(b_r, (void *)r->data); s->dsize = BN_bn2bin(b_s, (void *)s->data); - ret = 0; + free_der: OPENSSL_free(der); free_sig: @@ -944,7 +945,7 @@ static int sm2_encrypt_check(EVP_PKEY_CTX *ctx, if (!out) { if (!sm2_ciphertext_size(ec, md, inlen, outlen)) - return -1; + return UADK_E_INVAL; else return 1; } @@ -1055,7 +1056,7 @@ static int sm2_decrypt_check(EVP_PKEY_CTX *ctx, if (!out) { if (!sm2_plaintext_size(in, inlen, outlen)) - return -1; + return UADK_E_INVAL; else return 1; } @@ -1676,7 +1677,7 @@ int uadk_sm2_create_pmeth(struct uadk_pkey_meth *pkey_meth) if (!openssl_meth) { fprintf(stderr, "failed to get sm2 pkey methods\n"); EVP_PKEY_meth_free(meth); - return -1; + return UADK_E_INVAL; } EVP_PKEY_meth_copy(meth, openssl_meth); -- 2.33.0

From: Chenghai Huang <huangchenghai2@huawei.com> 1.Check whether the function is valid before calling the corresponding functio`2.Calculate the length of an array using ARRAY_SIZE. 2.Calculate the length of an array by calling ARRAY_SIZE(). Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com> Signed-off-by: JiangShui Yang <yangjiangshui@h-partners.com> --- src/uadk_prov_cipher.c | 7 ++++--- src/uadk_prov_sm2.c | 12 ++++++++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/uadk_prov_cipher.c b/src/uadk_prov_cipher.c index 23b93d1..82edc55 100644 --- a/src/uadk_prov_cipher.c +++ b/src/uadk_prov_cipher.c @@ -31,7 +31,6 @@ #define UADK_DO_SOFT (-0xE0) #define UADK_DO_HW (-0xF0) -#define OSSL_NELEM(x) (sizeof(x)/sizeof((x)[0])) #define CTX_SYNC_ENC 0 #define CTX_SYNC_DEC 1 #define CTX_ASYNC_ENC 2 @@ -182,9 +181,10 @@ static struct cts_mode_name2id_st cts_modes[] = { static const char *ossl_cipher_cbc_cts_mode_id2name(unsigned int id) { + size_t len = ARRAY_SIZE(cts_modes); size_t i; - for (i = 0; i < OSSL_NELEM(cts_modes); ++i) { + for (i = 0; i < len; ++i) { if (cts_modes[i].id == id) return cts_modes[i].ossl_mode_name; } @@ -194,9 +194,10 @@ static const char *ossl_cipher_cbc_cts_mode_id2name(unsigned int id) static int ossl_cipher_cbc_cts_mode_name2id(const char *name) { + size_t len = ARRAY_SIZE(cts_modes); size_t i; - for (i = 0; i < OSSL_NELEM(cts_modes); ++i) { + for (i = 0; i < len; ++i) { if (OPENSSL_strcasecmp(name, cts_modes[i].ossl_mode_name) == 0) return (int)cts_modes[i].id; } diff --git a/src/uadk_prov_sm2.c b/src/uadk_prov_sm2.c index 7091ea4..c465a15 100644 --- a/src/uadk_prov_sm2.c +++ b/src/uadk_prov_sm2.c @@ -626,12 +626,16 @@ error: static void *uadk_keymgmt_sm2_gen_sw(void *genctx, OSSL_CALLBACK *osslcb, void *cbarg) { - if (uadk_get_sw_offload_state()) { - fprintf(stderr, "switch to software sm2 keygen.\n"); - return get_default_sm2_keymgmt().gen(genctx, osslcb, cbarg); + if (!uadk_get_sw_offload_state()) + return NULL; + + if (!get_default_sm2_keymgmt().gen) { + fprintf(stderr, "failed to get keymgmt gen function\n"); + return NULL; } - return NULL; + fprintf(stderr, "switch to software sm2 keygen.\n"); + return get_default_sm2_keymgmt().gen(genctx, osslcb, cbarg); } /** -- 2.33.0
participants (1)
-
Qi Tao