From: Richard Levitte Date: Tue, 10 Mar 2020 22:00:45 +0000 (+0100) Subject: SM2: Make the EVP_PKEY_METHOD ctrl_str function listen to distid X-Git-Tag: openssl-3.0.0-alpha1~254 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=123c2fef14b80f26f5a8504ccf7b819c2975a6fa;p=oweals%2Fopenssl.git SM2: Make the EVP_PKEY_METHOD ctrl_str function listen to distid Because we start using Distinguished ID, we also define the key name "distid", possibly prefixed with "hex", but keep "sm2_id" and "sm2_hex_id" for compatibility with GmSSL. Fixes #11293 Reviewed-by: Paul Yang (Merged from https://github.com/openssl/openssl/pull/11302) --- diff --git a/crypto/sm2/sm2_pmeth.c b/crypto/sm2/sm2_pmeth.c index c3ba9280c5..9830fb8234 100644 --- a/crypto/sm2/sm2_pmeth.c +++ b/crypto/sm2/sm2_pmeth.c @@ -26,7 +26,7 @@ typedef struct { /* message digest */ const EVP_MD *md; - /* Distinguishing Identifier, ISO/IEC 15946-3 */ + /* Distinguishing Identifier, ISO/IEC 15946-3, FIPS 196 */ uint8_t *id; size_t id_len; /* id_set indicates if the 'id' field is set (1) or not (0) */ @@ -247,14 +247,10 @@ static int pkey_sm2_ctrl_str(EVP_PKEY_CTX *ctx, else return -2; return EVP_PKEY_CTX_set_ec_param_enc(ctx, param_enc); - } else if (strcmp(type, "sm2_id") == 0) { + } else if (strcmp(type, "distid") == 0) { return pkey_sm2_ctrl(ctx, EVP_PKEY_CTRL_SET1_ID, (int)strlen(value), (void *)value); - } else if (strcmp(type, "sm2_hex_id") == 0) { - /* - * TODO(3.0): reconsider the name "sm2_hex_id", OR change - * OSSL_PARAM_allocate_from_text() to handle infix "_hex_" - */ + } else if (strcmp(type, "hexdistid") == 0) { hex_id = OPENSSL_hexstr2buf((const char *)value, &hex_len); if (hex_id == NULL) { SM2err(SM2_F_PKEY_SM2_CTRL_STR, ERR_R_PASSED_INVALID_ARGUMENT);