summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiaxun Yang <jiaxun.yang@flygoat.com>2022-11-22 19:53:38 +0000
committerTomas Mraz <tomas@openssl.org>2022-11-24 16:30:40 +0100
commit1c8b17358fef7daca24d090cfbd5fca2e65ab388 (patch)
tree747667bcb40def2a610e81a6723aa69c6ae7105f
parentf2784497264bcf2c0080adab99a2fee93756199a (diff)
Add SM2 support for EVP_PKEY_Q_keygen
There is no reason preventing this API to support SM2, which gives us a simple method to do SM2 key gen. CLA: trivial Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19736) (cherry picked from commit 3f32d29ad464591ed968a1e430111e1525280f4c)
-rw-r--r--crypto/evp/evp_lib.c3
-rw-r--r--doc/man3/EVP_PKEY_keygen.pod2
2 files changed, 3 insertions, 2 deletions
diff --git a/crypto/evp/evp_lib.c b/crypto/evp/evp_lib.c
index d88066d0a2..61640a3488 100644
--- a/crypto/evp/evp_lib.c
+++ b/crypto/evp/evp_lib.c
@@ -1201,7 +1201,8 @@ EVP_PKEY *EVP_PKEY_Q_keygen(OSSL_LIB_CTX *libctx, const char *propq,
} else if (OPENSSL_strcasecmp(type, "ED25519") != 0
&& OPENSSL_strcasecmp(type, "X25519") != 0
&& OPENSSL_strcasecmp(type, "ED448") != 0
- && OPENSSL_strcasecmp(type, "X448") != 0) {
+ && OPENSSL_strcasecmp(type, "X448") != 0
+ && OPENSSL_strcasecmp(type, "SM2") != 0) {
ERR_raise(ERR_LIB_EVP, ERR_R_PASSED_INVALID_ARGUMENT);
goto end;
}
diff --git a/doc/man3/EVP_PKEY_keygen.pod b/doc/man3/EVP_PKEY_keygen.pod
index 87644cc5c3..4331236186 100644
--- a/doc/man3/EVP_PKEY_keygen.pod
+++ b/doc/man3/EVP_PKEY_keygen.pod
@@ -100,7 +100,7 @@ If I<type> is C<RSA>,
a B<size_t> parameter must be given to specify the size of the RSA key.
If I<type> is C<EC>,
a string parameter must be given to specify the name of the EC curve.
-If I<type> is C<X25519>, C<X448>, C<ED25519>, or C<ED448>
+If I<type> is C<X25519>, C<X448>, C<ED25519>, C<ED448>, or C<SM2>
no further parameter is needed.
=head1 RETURN VALUES