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:26 +0100
commit5d8c9e2c28fb973b842e88105eb618d0254b42af (patch)
tree2834dc0917d84567e8355377745a2786dd7f909c
parentfb705bebeef035b9d5984db20280fd5c1016b4a0 (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 98bb25655d..a8dbfbfada 100644
--- a/crypto/evp/evp_lib.c
+++ b/crypto/evp/evp_lib.c
@@ -1215,7 +1215,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