From 4e6647506331fc3b3ef5b23e5dbe188279ddd575 Mon Sep 17 00:00:00 2001 From: Jack Lloyd Date: Fri, 9 Feb 2018 12:21:56 -0500 Subject: Handle evp_tests assumption of EVP_PKEY_FLAG_AUTOARGLEN Without actually using EVP_PKEY_FLAG_AUTOARGLEN Reviewed-by: Rich Salz Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/4793) --- crypto/sm2/sm2_crypt.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'crypto/sm2') diff --git a/crypto/sm2/sm2_crypt.c b/crypto/sm2/sm2_crypt.c index 7e7be9d04a..b308e5b2e5 100644 --- a/crypto/sm2/sm2_crypt.c +++ b/crypto/sm2/sm2_crypt.c @@ -57,10 +57,23 @@ static size_t EC_field_size(const EC_GROUP *group) return field_size; } +size_t SM2_plaintext_size(const EC_KEY *key, const EVP_MD *digest, size_t msg_len) +{ + const size_t field_size = EC_field_size(EC_KEY_get0_group(key)); + const size_t md_size = EVP_MD_size(digest); + + const size_t overhead = 10 + 2 * field_size + md_size; + if(msg_len <= overhead) + return 0; + + return msg_len - overhead; +} + size_t SM2_ciphertext_size(const EC_KEY *key, const EVP_MD *digest, size_t msg_len) { - return 10 + 2 * EC_field_size(EC_KEY_get0_group(key)) + - EVP_MD_size(digest) + msg_len; + const size_t field_size = EC_field_size(EC_KEY_get0_group(key)); + const size_t md_size = EVP_MD_size(digest); + return 10 + 2 * field_size + md_size + msg_len; } int SM2_encrypt(const EC_KEY *key, -- cgit v1.2.3