mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-08-08 06:03:47 +08:00
add SM2 default ID, fixed the SM2_do_encrypt() memory leak
This commit is contained in:
@@ -56,6 +56,7 @@
|
||||
#include <openssl/ec.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/kdf.h>
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/asn1.h>
|
||||
#include <openssl/ecdsa.h>
|
||||
|
||||
@@ -417,6 +417,7 @@ end:
|
||||
cv = NULL;
|
||||
}
|
||||
|
||||
if (point) EC_POINT_free(point);
|
||||
if (n) BN_free(n);
|
||||
if (h) BN_free(h);
|
||||
if (k) BN_free(k);
|
||||
|
||||
@@ -65,6 +65,8 @@
|
||||
#define EC_MAX_NBYTES ((OPENSSL_ECC_MAX_FIELD_BITS + 7)/8)
|
||||
|
||||
|
||||
#define SM2_DEFAULT_ID "1234567812345678"
|
||||
|
||||
static void *sm2_data_dup(void *data) {
|
||||
return OPENSSL_strdup((const char *)data);
|
||||
}
|
||||
@@ -184,6 +186,7 @@ err:
|
||||
return ret;
|
||||
}
|
||||
|
||||
//TODO: review this function again.
|
||||
int SM2_compute_id_digest(unsigned char *dgst, unsigned int *dgstlen,
|
||||
const EVP_MD *md, EC_KEY *ec_key)
|
||||
{
|
||||
@@ -199,7 +202,7 @@ int SM2_compute_id_digest(unsigned char *dgst, unsigned int *dgstlen,
|
||||
}
|
||||
|
||||
if (!(id = SM2_get_id(ec_key))) {
|
||||
goto err;
|
||||
id = SM2_DEFAULT_ID;
|
||||
}
|
||||
|
||||
idbits = strlen(id) * 8;
|
||||
|
||||
Reference in New Issue
Block a user