mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-06-20 03:44:15 +08:00
Add client_cert_optional to tlcp/tls12
This commit is contained in:
@@ -819,7 +819,7 @@ endif()
|
|||||||
#
|
#
|
||||||
set(CPACK_PACKAGE_NAME "GmSSL")
|
set(CPACK_PACKAGE_NAME "GmSSL")
|
||||||
set(CPACK_PACKAGE_VENDOR "GmSSL develop team")
|
set(CPACK_PACKAGE_VENDOR "GmSSL develop team")
|
||||||
set(CPACK_PACKAGE_VERSION "3.2.0-dev.1083")
|
set(CPACK_PACKAGE_VERSION "3.2.0-dev.1084")
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_FILE ${PROJECT_SOURCE_DIR}/README.md)
|
set(CPACK_PACKAGE_DESCRIPTION_FILE ${PROJECT_SOURCE_DIR}/README.md)
|
||||||
set(CPACK_NSIS_MODIFY_PATH ON)
|
set(CPACK_NSIS_MODIFY_PATH ON)
|
||||||
include(CPack)
|
include(CPack)
|
||||||
|
|||||||
@@ -1441,7 +1441,7 @@ int tls13_record_get_handshake_certificate_request(const uint8_t *record,
|
|||||||
const uint8_t **exts, size_t *exts_len);
|
const uint8_t **exts, size_t *exts_len);
|
||||||
int tls13_certificate_request_print(FILE *fp, int fmt, int ind, const uint8_t *d, size_t dlen);
|
int tls13_certificate_request_print(FILE *fp, int fmt, int ind, const uint8_t *d, size_t dlen);
|
||||||
|
|
||||||
int tls13_ctx_enable_client_certificate_optional(TLS_CTX *ctx, int enable);
|
int tls_ctx_enable_client_certificate_optional(TLS_CTX *ctx, int enable);
|
||||||
|
|
||||||
|
|
||||||
// EndOfEarlyData
|
// EndOfEarlyData
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ extern "C" {
|
|||||||
|
|
||||||
|
|
||||||
#define GMSSL_VERSION_NUM 30200
|
#define GMSSL_VERSION_NUM 30200
|
||||||
#define GMSSL_VERSION_STR "GmSSL 3.2.0-dev.1083"
|
#define GMSSL_VERSION_STR "GmSSL 3.2.0-dev.1084"
|
||||||
|
|
||||||
int gmssl_version_num(void);
|
int gmssl_version_num(void);
|
||||||
const char *gmssl_version_str(void);
|
const char *gmssl_version_str(void);
|
||||||
|
|||||||
10
src/tls.c
10
src/tls.c
@@ -3015,6 +3015,16 @@ int tls_ctx_set_key_update_seq_num_limit(TLS_CTX *ctx, size_t max_seq_num)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int tls_ctx_enable_client_certificate_optional(TLS_CTX *ctx, int enable)
|
||||||
|
{
|
||||||
|
if (!ctx) {
|
||||||
|
error_print();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
ctx->client_certificate_optional = enable ? 1 : 0;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static int tls_ctx_get_certificate_chain(const TLS_CTX *ctx, size_t idx,
|
static int tls_ctx_get_certificate_chain(const TLS_CTX *ctx, size_t idx,
|
||||||
const uint8_t **cert_chain, size_t *cert_chain_len)
|
const uint8_t **cert_chain, size_t *cert_chain_len)
|
||||||
{
|
{
|
||||||
|
|||||||
10
src/tls13.c
10
src/tls13.c
@@ -3447,16 +3447,6 @@ int tls13_certificate_request_print(FILE *fp, int fmt, int ind, const uint8_t *d
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tls13_ctx_enable_client_certificate_optional(TLS_CTX *ctx, int enable)
|
|
||||||
{
|
|
||||||
if (!ctx) {
|
|
||||||
error_print();
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
ctx->client_certificate_optional = enable ? 1 : 0;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
CertificateVerify
|
CertificateVerify
|
||||||
|
|
||||||
|
|||||||
@@ -401,6 +401,13 @@ bad:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (client_cert_optional) {
|
||||||
|
if (tls_ctx_enable_client_certificate_optional(&ctx, 1) != 1) {
|
||||||
|
error_print();
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (alpn_protocols_cnt) {
|
if (alpn_protocols_cnt) {
|
||||||
if (tls_ctx_set_application_layer_protocol_negotiation(&ctx,
|
if (tls_ctx_set_application_layer_protocol_negotiation(&ctx,
|
||||||
alpn_protocols, alpn_protocols_cnt) != 1) {
|
alpn_protocols, alpn_protocols_cnt) != 1) {
|
||||||
|
|||||||
@@ -386,6 +386,13 @@ bad:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (client_cert_optional) {
|
||||||
|
if (tls_ctx_enable_client_certificate_optional(&ctx, 1) != 1) {
|
||||||
|
error_print();
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (cacertfile) {
|
if (cacertfile) {
|
||||||
if (tls_ctx_set_ca_certificates(&ctx, cacertfile, verify_depth) != 1) {
|
if (tls_ctx_set_ca_certificates(&ctx, cacertfile, verify_depth) != 1) {
|
||||||
fprintf(stderr, "%s: failed to load CA certificate\n", prog);
|
fprintf(stderr, "%s: failed to load CA certificate\n", prog);
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ bad:
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
if (client_cert_optional) {
|
if (client_cert_optional) {
|
||||||
if (tls13_ctx_enable_client_certificate_optional(&ctx, 1) != 1) {
|
if (tls_ctx_enable_client_certificate_optional(&ctx, 1) != 1) {
|
||||||
error_print();
|
error_print();
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -600,7 +600,7 @@ bad:
|
|||||||
|
|
||||||
// CertificateRequest
|
// CertificateRequest
|
||||||
if (client_cert_optional) {
|
if (client_cert_optional) {
|
||||||
if (tls13_ctx_enable_client_certificate_optional(&ctx, 1) != 1) {
|
if (tls_ctx_enable_client_certificate_optional(&ctx, 1) != 1) {
|
||||||
error_print();
|
error_print();
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -418,7 +418,7 @@ bad:
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
if (client_cert_optional) {
|
if (client_cert_optional) {
|
||||||
if (tls13_ctx_enable_client_certificate_optional(&ctx, 1) != 1) {
|
if (tls_ctx_enable_client_certificate_optional(&ctx, 1) != 1) {
|
||||||
error_print();
|
error_print();
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user