Implement the client side of certificate compression.
Change-Id: I0aced480af98276ebfe0970b4afb9aa957ee07cb
Reviewed-on: https://boringssl-review.googlesource.com/29024
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/ssl/tls13_client.cc b/ssl/tls13_client.cc
index 49f528b..b8bd546 100644
--- a/ssl/tls13_client.cc
+++ b/ssl/tls13_client.cc
@@ -547,8 +547,13 @@
if (!ssl->method->get_message(ssl, &msg)) {
return ssl_hs_read_message;
}
- if (!ssl_check_message_type(ssl, msg, SSL3_MT_CERTIFICATE) ||
- !tls13_process_certificate(hs, msg, 0 /* certificate required */) ||
+
+ if (msg.type != SSL3_MT_COMPRESSED_CERTIFICATE &&
+ !ssl_check_message_type(ssl, msg, SSL3_MT_CERTIFICATE)) {
+ return ssl_hs_error;
+ }
+
+ if (!tls13_process_certificate(hs, msg, 0 /* certificate required */) ||
!ssl_hash_message(hs, msg)) {
return ssl_hs_error;
}