mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-08-08 23:13:38 +08:00
Update TLS 1.3
This commit is contained in:
4
certs/README.md
Normal file
4
certs/README.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# 国密证书库
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -875,6 +875,7 @@ int tls13_extensions_print(FILE *fp, int fmt, int ind,
|
|||||||
|
|
||||||
int tls13_certificate_print(FILE *fp, int fmt, int ind, const uint8_t *cert, size_t certlen);
|
int tls13_certificate_print(FILE *fp, int fmt, int ind, const uint8_t *cert, size_t certlen);
|
||||||
int tls13_certificate_request_print(FILE *fp, int fmt, int ind, const uint8_t *cert, size_t certlen);
|
int tls13_certificate_request_print(FILE *fp, int fmt, int ind, const uint8_t *cert, size_t certlen);
|
||||||
|
int tls13_certificate_verify_print(FILE *fp, int fmt, int ind, const uint8_t *d, size_t dlen);
|
||||||
int tls13_record_print(FILE *fp, int format, int indent, const uint8_t *record, size_t recordlen);
|
int tls13_record_print(FILE *fp, int format, int indent, const uint8_t *record, size_t recordlen);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
438
src/tls13.c
438
src/tls13.c
File diff suppressed because it is too large
Load Diff
@@ -512,8 +512,14 @@ int tls13_extensions_print(FILE *fp, int fmt, int ind,
|
|||||||
const uint8_t *ext_data;
|
const uint8_t *ext_data;
|
||||||
size_t ext_datalen;
|
size_t ext_datalen;
|
||||||
|
|
||||||
|
if (!exts) {
|
||||||
|
format_print(fp, fmt, ind, "Extensions: (null)\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
format_print(fp, fmt, ind, "Extensions\n");
|
format_print(fp, fmt, ind, "Extensions\n");
|
||||||
ind += 4;
|
ind += 4;
|
||||||
|
|
||||||
while (extslen > 0) {
|
while (extslen > 0) {
|
||||||
if (tls_uint16_from_bytes(&ext_type, &exts, &extslen) != 1
|
if (tls_uint16_from_bytes(&ext_type, &exts, &extslen) != 1
|
||||||
|| tls_uint16array_from_bytes(&ext_data, &ext_datalen, &exts, &extslen) != 1) {
|
|| tls_uint16array_from_bytes(&ext_data, &ext_datalen, &exts, &extslen) != 1) {
|
||||||
@@ -900,11 +906,23 @@ int tls13_handshake_print(FILE *fp, int fmt, int ind, const uint8_t *handshake,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case TLS_handshake_certificate:
|
||||||
|
case TLS_handshake_certificate_request:
|
||||||
|
case TLS_handshake_certificate_verify:
|
||||||
|
format_print(fp, fmt, ind, "Handshake\n");
|
||||||
|
ind += 4;
|
||||||
|
format_print(fp, fmt, ind, "Type: %s (%d)\n", tls_handshake_type_name(type), type);
|
||||||
|
format_print(fp, fmt, ind, "Length: %zu\n", datalen);
|
||||||
|
break;
|
||||||
|
}
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case TLS_handshake_certificate:
|
case TLS_handshake_certificate:
|
||||||
return tls13_certificate_print(fp, fmt, ind, data, datalen);
|
return tls13_certificate_print(fp, fmt, ind, data, datalen);
|
||||||
case TLS_handshake_certificate_request:
|
case TLS_handshake_certificate_request:
|
||||||
return tls13_certificate_request_print(fp, fmt, ind, data, datalen);
|
return tls13_certificate_request_print(fp, fmt, ind, data, datalen);
|
||||||
|
case TLS_handshake_certificate_verify:
|
||||||
|
return tls13_certificate_verify_print(fp, fmt, ind, data, datalen);
|
||||||
}
|
}
|
||||||
|
|
||||||
return tls_handshake_print(fp, p, len, fmt, ind);
|
return tls_handshake_print(fp, p, len, fmt, ind);
|
||||||
|
|||||||
@@ -1206,9 +1206,6 @@ int x509_cert_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t
|
|||||||
const uint8_t *d;
|
const uint8_t *d;
|
||||||
size_t dlen;
|
size_t dlen;
|
||||||
|
|
||||||
format_print(fp, fmt, ind, "%s\n", label);
|
|
||||||
ind += 4;
|
|
||||||
|
|
||||||
if (asn1_sequence_from_der(&d, &dlen, &a, &alen) != 1) {
|
if (asn1_sequence_from_der(&d, &dlen, &a, &alen) != 1) {
|
||||||
error_print();
|
error_print();
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ bad:
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (tls_send(&conn, (uint8_t *)send_buf, strlen(send_buf), &sentlen) != 1) {
|
if (tls13_send(&conn, (uint8_t *)send_buf, strlen(send_buf), 0 /*&sentlen*/) != 1) {
|
||||||
fprintf(stderr, "%s: send error\n", prog);
|
fprintf(stderr, "%s: send error\n", prog);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
@@ -185,7 +185,7 @@ bad:
|
|||||||
{
|
{
|
||||||
memset(buf, 0, sizeof(buf));
|
memset(buf, 0, sizeof(buf));
|
||||||
len = sizeof(buf);
|
len = sizeof(buf);
|
||||||
if (tls_recv(&conn, (uint8_t *)buf, sizeof(len), &len) != 1) {
|
if (tls13_recv(&conn, (uint8_t *)buf, /*sizeof(len),*/ &len) != 1) {
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
buf[len] = 0;
|
buf[len] = 0;
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ restart:
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
len = sizeof(buf);
|
len = sizeof(buf);
|
||||||
if ((rv = tls_recv(&conn, (uint8_t *)buf, sizeof(buf), &len)) != 1) {
|
if ((rv = tls13_recv(&conn, (uint8_t *)buf, /*sizeof(buf),*/ &len)) != 1) {
|
||||||
if (rv < 0) fprintf(stderr, "%s: recv failure\n", prog);
|
if (rv < 0) fprintf(stderr, "%s: recv failure\n", prog);
|
||||||
else fprintf(stderr, "%s: Disconnected by remote\n", prog);
|
else fprintf(stderr, "%s: Disconnected by remote\n", prog);
|
||||||
|
|
||||||
@@ -209,7 +209,7 @@ restart:
|
|||||||
}
|
}
|
||||||
} while (!len);
|
} while (!len);
|
||||||
|
|
||||||
if (tls_send(&conn, (uint8_t *)buf, len, &sentlen) != 1) {
|
if (tls13_send(&conn, (uint8_t *)buf, len, /* &sentlen*/ 0) != 1) {
|
||||||
fprintf(stderr, "%s: send failure, close connection\n", prog);
|
fprintf(stderr, "%s: send failure, close connection\n", prog);
|
||||||
close(conn.sock);
|
close(conn.sock);
|
||||||
goto end;
|
goto end;
|
||||||
|
|||||||
Reference in New Issue
Block a user