mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-08-13 01:23:48 +08:00
Fix return value and secret clean bug
This commit is contained in:
@@ -567,7 +567,7 @@ int tlcp_do_connect(TLS_CONNECT *conn)
|
|||||||
end:
|
end:
|
||||||
gmssl_secure_clear(&sign_ctx, sizeof(sign_ctx));
|
gmssl_secure_clear(&sign_ctx, sizeof(sign_ctx));
|
||||||
gmssl_secure_clear(pre_master_secret, sizeof(pre_master_secret));
|
gmssl_secure_clear(pre_master_secret, sizeof(pre_master_secret));
|
||||||
return 1;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tlcp_do_accept(TLS_CONNECT *conn)
|
int tlcp_do_accept(TLS_CONNECT *conn)
|
||||||
|
|||||||
@@ -647,7 +647,7 @@ int tls12_do_connect(TLS_CONNECT *conn)
|
|||||||
end:
|
end:
|
||||||
gmssl_secure_clear(&sign_ctx, sizeof(sign_ctx));
|
gmssl_secure_clear(&sign_ctx, sizeof(sign_ctx));
|
||||||
gmssl_secure_clear(pre_master_secret, sizeof(pre_master_secret));
|
gmssl_secure_clear(pre_master_secret, sizeof(pre_master_secret));
|
||||||
return 1;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tls12_do_accept(TLS_CONNECT *conn)
|
int tls12_do_accept(TLS_CONNECT *conn)
|
||||||
|
|||||||
33
src/tls13.c
33
src/tls13.c
@@ -1415,6 +1415,7 @@ TLS 1.3的区别:
|
|||||||
|
|
||||||
int tls13_do_connect(TLS_CONNECT *conn)
|
int tls13_do_connect(TLS_CONNECT *conn)
|
||||||
{
|
{
|
||||||
|
int ret = -1;
|
||||||
uint8_t *record = conn->record;
|
uint8_t *record = conn->record;
|
||||||
uint8_t *enced_record = conn->enced_record;
|
uint8_t *enced_record = conn->enced_record;
|
||||||
size_t recordlen;
|
size_t recordlen;
|
||||||
@@ -1876,13 +1877,27 @@ int tls13_do_connect(TLS_CONNECT *conn)
|
|||||||
format_print(stderr, 0, 0, "\n");
|
format_print(stderr, 0, 0, "\n");
|
||||||
*/
|
*/
|
||||||
fprintf(stderr, "Connection established\n");
|
fprintf(stderr, "Connection established\n");
|
||||||
|
ret = 1;
|
||||||
|
|
||||||
end:
|
end:
|
||||||
return 1;
|
gmssl_secure_clear(&client_ecdhe, sizeof(client_ecdhe));
|
||||||
|
gmssl_secure_clear(&server_sign_key, sizeof(server_sign_key));
|
||||||
|
gmssl_secure_clear(psk, sizeof(psk));
|
||||||
|
gmssl_secure_clear(early_secret, sizeof(early_secret));
|
||||||
|
gmssl_secure_clear(handshake_secret, sizeof(handshake_secret));
|
||||||
|
gmssl_secure_clear(master_secret, sizeof(master_secret));
|
||||||
|
gmssl_secure_clear(client_handshake_traffic_secret, sizeof(client_handshake_traffic_secret));
|
||||||
|
gmssl_secure_clear(server_handshake_traffic_secret, sizeof(server_handshake_traffic_secret));
|
||||||
|
gmssl_secure_clear(client_application_traffic_secret, sizeof(client_application_traffic_secret));
|
||||||
|
gmssl_secure_clear(server_application_traffic_secret, sizeof(server_application_traffic_secret));
|
||||||
|
gmssl_secure_clear(client_write_key, sizeof(client_write_key));
|
||||||
|
gmssl_secure_clear(server_write_key, sizeof(server_write_key));
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tls13_do_accept(TLS_CONNECT *conn)
|
int tls13_do_accept(TLS_CONNECT *conn)
|
||||||
{
|
{
|
||||||
|
int ret = -1;
|
||||||
uint8_t *record = conn->record;
|
uint8_t *record = conn->record;
|
||||||
size_t recordlen;
|
size_t recordlen;
|
||||||
uint8_t enced_record[25600];
|
uint8_t enced_record[25600];
|
||||||
@@ -2320,7 +2335,19 @@ int tls13_do_accept(TLS_CONNECT *conn)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
fprintf(stderr, "Connection Established!\n\n");
|
fprintf(stderr, "Connection Established!\n\n");
|
||||||
|
ret = 1;
|
||||||
end:
|
end:
|
||||||
return 1;
|
gmssl_secure_clear(&server_ecdhe, sizeof(server_ecdhe));
|
||||||
|
gmssl_secure_clear(&client_sign_key, sizeof(client_sign_key));
|
||||||
|
gmssl_secure_clear(psk, sizeof(psk));
|
||||||
|
gmssl_secure_clear(early_secret, sizeof(early_secret));
|
||||||
|
gmssl_secure_clear(handshake_secret, sizeof(handshake_secret));
|
||||||
|
gmssl_secure_clear(master_secret, sizeof(master_secret));
|
||||||
|
gmssl_secure_clear(client_handshake_traffic_secret, sizeof(client_handshake_traffic_secret));
|
||||||
|
gmssl_secure_clear(server_handshake_traffic_secret, sizeof(server_handshake_traffic_secret));
|
||||||
|
gmssl_secure_clear(client_application_traffic_secret, sizeof(client_application_traffic_secret));
|
||||||
|
gmssl_secure_clear(server_application_traffic_secret, sizeof(server_application_traffic_secret));
|
||||||
|
gmssl_secure_clear(client_write_key, sizeof(client_write_key));
|
||||||
|
gmssl_secure_clear(server_write_key, sizeof(server_write_key));
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user