diff options
author | Paul Yang <kaishen.yy@antfin.com> | 2020-03-04 16:49:43 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2020-09-22 09:18:09 +0200 |
commit | d0b79f8631c0f522c514175be4e4fbe984cf8f6c (patch) | |
tree | 4606888f35caaf5c2d6646ac4da4d98d75ab5d56 /crypto/sm2 | |
parent | Add SM2 key management (diff) | |
download | openssl-d0b79f8631c0f522c514175be4e4fbe984cf8f6c.tar.xz openssl-d0b79f8631c0f522c514175be4e4fbe984cf8f6c.zip |
Add SM2 signature algorithm to default provider
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12536)
Diffstat (limited to 'crypto/sm2')
-rw-r--r-- | crypto/sm2/sm2_err.c | 2 | ||||
-rw-r--r-- | crypto/sm2/sm2_pmeth.c | 4 | ||||
-rw-r--r-- | crypto/sm2/sm2_sign.c | 22 |
3 files changed, 14 insertions, 14 deletions
diff --git a/crypto/sm2/sm2_err.c b/crypto/sm2/sm2_err.c index 93ee9f7d7a..387b2f4cff 100644 --- a/crypto/sm2/sm2_err.c +++ b/crypto/sm2/sm2_err.c @@ -1,6 +1,6 @@ /* * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy diff --git a/crypto/sm2/sm2_pmeth.c b/crypto/sm2/sm2_pmeth.c index a455b5e989..665e278d1f 100644 --- a/crypto/sm2/sm2_pmeth.c +++ b/crypto/sm2/sm2_pmeth.c @@ -104,7 +104,7 @@ static int pkey_sm2_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, return 0; } - ret = sm2_sign(tbs, tbslen, sig, &sltmp, ec); + ret = sm2_internal_sign(tbs, tbslen, sig, &sltmp, ec); if (ret <= 0) return ret; @@ -118,7 +118,7 @@ static int pkey_sm2_verify(EVP_PKEY_CTX *ctx, { EC_KEY *ec = ctx->pkey->pkey.ec; - return sm2_verify(tbs, tbslen, sig, siglen, ec); + return sm2_internal_verify(tbs, tbslen, sig, siglen, ec); } static int pkey_sm2_encrypt(EVP_PKEY_CTX *ctx, diff --git a/crypto/sm2/sm2_sign.c b/crypto/sm2/sm2_sign.c index 099594c8bc..9216ab6b3d 100644 --- a/crypto/sm2/sm2_sign.c +++ b/crypto/sm2/sm2_sign.c @@ -418,8 +418,8 @@ int sm2_do_verify(const EC_KEY *key, return ret; } -int sm2_sign(const unsigned char *dgst, int dgstlen, - unsigned char *sig, unsigned int *siglen, EC_KEY *eckey) +int sm2_internal_sign(const unsigned char *dgst, int dgstlen, + unsigned char *sig, unsigned int *siglen, EC_KEY *eckey) { BIGNUM *e = NULL; ECDSA_SIG *s = NULL; @@ -428,19 +428,19 @@ int sm2_sign(const unsigned char *dgst, int dgstlen, e = BN_bin2bn(dgst, dgstlen, NULL); if (e == NULL) { - SM2err(SM2_F_SM2_SIGN, ERR_R_BN_LIB); + SM2err(SM2_F_SM2_INTERNAL_SIGN, ERR_R_BN_LIB); goto done; } s = sm2_sig_gen(eckey, e); if (s == NULL) { - SM2err(SM2_F_SM2_SIGN, ERR_R_INTERNAL_ERROR); + SM2err(SM2_F_SM2_INTERNAL_SIGN, ERR_R_INTERNAL_ERROR); goto done; } sigleni = i2d_ECDSA_SIG(s, &sig); if (sigleni < 0) { - SM2err(SM2_F_SM2_SIGN, ERR_R_INTERNAL_ERROR); + SM2err(SM2_F_SM2_INTERNAL_SIGN, ERR_R_INTERNAL_ERROR); goto done; } *siglen = (unsigned int)sigleni; @@ -453,8 +453,8 @@ int sm2_sign(const unsigned char *dgst, int dgstlen, return ret; } -int sm2_verify(const unsigned char *dgst, int dgstlen, - const unsigned char *sig, int sig_len, EC_KEY *eckey) +int sm2_internal_verify(const unsigned char *dgst, int dgstlen, + const unsigned char *sig, int sig_len, EC_KEY *eckey) { ECDSA_SIG *s = NULL; BIGNUM *e = NULL; @@ -465,23 +465,23 @@ int sm2_verify(const unsigned char *dgst, int dgstlen, s = ECDSA_SIG_new(); if (s == NULL) { - SM2err(SM2_F_SM2_VERIFY, ERR_R_MALLOC_FAILURE); + SM2err(SM2_F_SM2_INTERNAL_VERIFY, ERR_R_MALLOC_FAILURE); goto done; } if (d2i_ECDSA_SIG(&s, &p, sig_len) == NULL) { - SM2err(SM2_F_SM2_VERIFY, SM2_R_INVALID_ENCODING); + SM2err(SM2_F_SM2_INTERNAL_VERIFY, SM2_R_INVALID_ENCODING); goto done; } /* Ensure signature uses DER and doesn't have trailing garbage */ derlen = i2d_ECDSA_SIG(s, &der); if (derlen != sig_len || memcmp(sig, der, derlen) != 0) { - SM2err(SM2_F_SM2_VERIFY, SM2_R_INVALID_ENCODING); + SM2err(SM2_F_SM2_INTERNAL_VERIFY, SM2_R_INVALID_ENCODING); goto done; } e = BN_bin2bn(dgst, dgstlen, NULL); if (e == NULL) { - SM2err(SM2_F_SM2_VERIFY, ERR_R_BN_LIB); + SM2err(SM2_F_SM2_INTERNAL_VERIFY, ERR_R_BN_LIB); goto done; } |