diff mbox series

[v2] X.509: Support parsing certificate using SM2 algorithm

Message ID 20220627091958.20751-1-tianjia.zhang@linux.alibaba.com
State Accepted
Commit 74ad4334b2ae4f83d8018487d625d1073fd3f02d
Headers show
Series [v2] X.509: Support parsing certificate using SM2 algorithm | expand

Commit Message

Tianjia Zhang June 27, 2022, 9:19 a.m. UTC
The SM2-with-SM3 certificate generated by latest openssl no longer
reuses the OID_id_ecPublicKey, but directly uses OID_sm2. This patch
supports this type of x509 certificate parsing.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Acked-by: Jarkko Sakkinen <jarkko@kernel.org>
---
 crypto/asymmetric_keys/x509_cert_parser.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Jarkko Sakkinen June 27, 2022, 11:10 p.m. UTC | #1
On Mon, Jun 27, 2022 at 05:19:58PM +0800, Tianjia Zhang wrote:
> The SM2-with-SM3 certificate generated by latest openssl no longer
> reuses the OID_id_ecPublicKey, but directly uses OID_sm2. This patch
> supports this type of x509 certificate parsing.
> 
> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> Acked-by: Jarkko Sakkinen <jarkko@kernel.org>
> ---
>  crypto/asymmetric_keys/x509_cert_parser.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/crypto/asymmetric_keys/x509_cert_parser.c b/crypto/asymmetric_keys/x509_cert_parser.c
> index 2899ed80bb18..7a9b084e2043 100644
> --- a/crypto/asymmetric_keys/x509_cert_parser.c
> +++ b/crypto/asymmetric_keys/x509_cert_parser.c
> @@ -508,6 +508,9 @@ int x509_extract_key_data(void *context, size_t hdrlen,
>  	case OID_gost2012PKey512:
>  		ctx->cert->pub->pkey_algo = "ecrdsa";
>  		break;
> +	case OID_sm2:
> +		ctx->cert->pub->pkey_algo = "sm2";
> +		break;
>  	case OID_id_ecPublicKey:
>  		if (parse_OID(ctx->params, ctx->params_size, &oid) != 0)
>  			return -EBADMSG;
> -- 
> 2.24.3 (Apple Git-128)
> 

Thanks, I can pick this.

BR, Jarkko
diff mbox series

Patch

diff --git a/crypto/asymmetric_keys/x509_cert_parser.c b/crypto/asymmetric_keys/x509_cert_parser.c
index 2899ed80bb18..7a9b084e2043 100644
--- a/crypto/asymmetric_keys/x509_cert_parser.c
+++ b/crypto/asymmetric_keys/x509_cert_parser.c
@@ -508,6 +508,9 @@  int x509_extract_key_data(void *context, size_t hdrlen,
 	case OID_gost2012PKey512:
 		ctx->cert->pub->pkey_algo = "ecrdsa";
 		break;
+	case OID_sm2:
+		ctx->cert->pub->pkey_algo = "sm2";
+		break;
 	case OID_id_ecPublicKey:
 		if (parse_OID(ctx->params, ctx->params_size, &oid) != 0)
 			return -EBADMSG;