From 91fc6bd89309eebdfbe3d7203a046958b8c5a3eb Mon Sep 17 00:00:00 2001 From: Jerome Forissier Date: Tue, 17 Dec 2019 09:19:56 +0100 Subject: core: crypto: add support for SM2 PKE Adds SM2 Public Key Encryption [1] using LibTomCrypt. The TA interface complies with the GlobalPlatform TEE Internal Core API version 1.2. SM2 is enabled with CFG_CRYPTO_SM2_PKE=y (default y) which currently requires that CFG_CRYPTOLIB_NAME=tomcrypt. An Mbed TLS implementation could be added later if needed. [1] http://www.gmbz.org.cn/main/postDetail.html?id=20180724110812 Signed-off-by: Jerome Forissier Acked-by: Jens Wiklander --- core/lib/libtomcrypt/ecc.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'core/lib') diff --git a/core/lib/libtomcrypt/ecc.c b/core/lib/libtomcrypt/ecc.c index 8322ba2e..051da77e 100644 --- a/core/lib/libtomcrypt/ecc.c +++ b/core/lib/libtomcrypt/ecc.c @@ -124,6 +124,13 @@ static TEE_Result ecc_get_curve_info(uint32_t curve, uint32_t algo, (algo != TEE_ALG_ECDH_P521)) return TEE_ERROR_BAD_PARAMETERS; break; + case TEE_ECC_CURVE_SM2: + size_bits = 256; + size_bytes = 32; + name = "SM2"; + if ((algo != 0) && (algo != TEE_ALG_SM2_PKE)) + return TEE_ERROR_BAD_PARAMETERS; + break; default: return TEE_ERROR_NOT_SUPPORTED; } -- cgit v1.2.3