summaryrefslogtreecommitdiffstats
path: root/ssl/s3_both.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2000-01-02 18:52:58 +0000
committerDr. Stephen Henson <steve@openssl.org>2000-01-02 18:52:58 +0000
commit3d14b9d04a73c3563efba12f16fd179b7aed4fbf (patch)
tree2f7976cb613382226a6ee3d31d7792da97d2a0aa /ssl/s3_both.c
parent20432eae41e35ea28a4d43c0dfc7acfdd9672812 (diff)
Add support for MS "fast SGC".
Diffstat (limited to 'ssl/s3_both.c')
-rw-r--r--ssl/s3_both.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/ssl/s3_both.c b/ssl/s3_both.c
index 4301621d1c..9de3e45f50 100644
--- a/ssl/s3_both.c
+++ b/ssl/s3_both.c
@@ -293,6 +293,18 @@ long ssl3_get_message(SSL *s, int st1, int stn, int mt, long max, int *ok)
SSLerr(SSL_F_SSL3_GET_MESSAGE,SSL_R_UNEXPECTED_MESSAGE);
goto f_err;
}
+ if((mt < 0) && (*p == SSL3_MT_CLIENT_HELLO) &&
+ (st1 == SSL3_ST_SR_CERT_A) &&
+ (stn == SSL3_ST_SR_CERT_B))
+ {
+ /* At this point we have got an MS SGC second client
+ * hello. We need to restart the mac and mac the data
+ * currently received.
+ */
+ ssl3_init_finished_mac(s);
+ ssl3_finish_mac(s, p + s->init_num, i);
+ }
+
s->s3->tmp.message_type= *(p++);
n2l3(p,l);