X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=ssl%2Fd1_srvr.c;h=f18fb38a129712cd33d122b8ae492655df8774d4;hp=e7df252bf061a3d9ef20db6eea5898c85e4d55d8;hb=04fac50045929e7078cad4835478dd7f16b6d4bd;hpb=94782e0e9c28bd872107b8f814f4db68c9fbf5ab diff --git a/ssl/d1_srvr.c b/ssl/d1_srvr.c index e7df252bf0..f18fb38a12 100644 --- a/ssl/d1_srvr.c +++ b/ssl/d1_srvr.c @@ -649,6 +649,24 @@ int dtls1_accept(SSL *s) s->state=SSL3_ST_SR_FINISHED_A; s->init_num = 0; } + else if (SSL_USE_SIGALGS(s)) + { + s->state=SSL3_ST_SR_CERT_VRFY_A; + s->init_num=0; + if (!s->session->peer) + break; + /* For sigalgs freeze the handshake buffer + * at this point and digest cached records. + */ + if (!s->s3->handshake_buffer) + { + SSLerr(SSL_F_SSL3_ACCEPT,ERR_R_INTERNAL_ERROR); + return -1; + } + s->s3->flags |= TLS1_FLAGS_KEEP_HANDSHAKE; + if (!ssl3_digest_cached_records(s)) + return -1; + } else { s->state=SSL3_ST_SR_CERT_VRFY_A;