mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-06-19 19:33:38 +08:00
Fix client certificate verify
This commit is contained in:
@@ -818,7 +818,7 @@ endif()
|
||||
#
|
||||
set(CPACK_PACKAGE_NAME "GmSSL")
|
||||
set(CPACK_PACKAGE_VENDOR "GmSSL develop team")
|
||||
set(CPACK_PACKAGE_VERSION "3.2.0-dev.1067")
|
||||
set(CPACK_PACKAGE_VERSION "3.2.0-dev.1068")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE ${PROJECT_SOURCE_DIR}/README.md)
|
||||
set(CPACK_NSIS_MODIFY_PATH ON)
|
||||
include(CPack)
|
||||
|
||||
@@ -18,7 +18,7 @@ extern "C" {
|
||||
|
||||
|
||||
#define GMSSL_VERSION_NUM 30200
|
||||
#define GMSSL_VERSION_STR "GmSSL 3.2.0-dev.1067"
|
||||
#define GMSSL_VERSION_STR "GmSSL 3.2.0-dev.1068"
|
||||
|
||||
int gmssl_version_num(void);
|
||||
const char *gmssl_version_str(void);
|
||||
|
||||
16
src/tls12.c
16
src/tls12.c
@@ -2671,8 +2671,10 @@ int tls_recv_client_key_exchange(TLS_CONNECT *conn)
|
||||
int tls_recv_certificate_verify(TLS_CONNECT *conn)
|
||||
{
|
||||
int ret;
|
||||
X509_SIGN_CTX sign_ctx;
|
||||
X509_KEY client_sign_key;
|
||||
|
||||
const uint8_t *signer_id = NULL;
|
||||
size_t signer_idlen = 0;
|
||||
const uint8_t *sig;
|
||||
size_t siglen;
|
||||
|
||||
@@ -2724,8 +2726,16 @@ int tls_recv_certificate_verify(TLS_CONNECT *conn)
|
||||
tls_send_alert(conn, TLS_alert_bad_certificate);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
if (client_sign_key.algor_param == OID_sm2) {
|
||||
signer_id = (uint8_t *)SM2_DEFAULT_ID;
|
||||
signer_idlen = SM2_DEFAULT_ID_LENGTH;
|
||||
}
|
||||
if (x509_verify_init(&sign_ctx, &client_sign_key, signer_id, signer_idlen, sig, siglen) != 1
|
||||
|| x509_verify_update(&sign_ctx, conn->transcript, conn->transcript_len) != 1
|
||||
|| x509_verify_finish(&sign_ctx) != 1) {
|
||||
error_print();
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (digest_update(&conn->dgst_ctx, conn->record + 5, conn->recordlen - 5) != 1) {
|
||||
error_print();
|
||||
|
||||
Reference in New Issue
Block a user