提交 43982224 编写于 作者: D Dr. Stephen Henson

Ooops, revert committed conflict.

上级 71af26b5
...@@ -1679,18 +1679,13 @@ int ssl3_send_server_key_exchange(SSL *s) ...@@ -1679,18 +1679,13 @@ int ssl3_send_server_key_exchange(SSL *s)
j=0; j=0;
for (num=2; num > 0; num--) for (num=2; num > 0; num--)
{ {
if (!EVP_DigestInit_ex(&md_ctx,(num == 2) EVP_DigestInit_ex(&md_ctx,(num == 2)
?s->ctx->md5:s->ctx->sha1, NULL) ?s->ctx->md5:s->ctx->sha1, NULL);
|| !EVP_DigestUpdate(&md_ctx,&(s->s3->client_random[0]),SSL3_RANDOM_SIZE) EVP_DigestUpdate(&md_ctx,&(s->s3->client_random[0]),SSL3_RANDOM_SIZE);
|| !EVP_DigestUpdate(&md_ctx,&(s->s3->server_random[0]),SSL3_RANDOM_SIZE) EVP_DigestUpdate(&md_ctx,&(s->s3->server_random[0]),SSL3_RANDOM_SIZE);
|| !EVP_DigestUpdate(&md_ctx,&(d[4]),n) EVP_DigestUpdate(&md_ctx,&(d[4]),n);
|| !EVP_DigestFinal_ex(&md_ctx,q, EVP_DigestFinal_ex(&md_ctx,q,
(unsigned int *)&i)) (unsigned int *)&i);
{
SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE,ERR_R_EVP_LIB);
goto err;
}
q+=i; q+=i;
j+=i; j+=i;
} }
...@@ -1709,14 +1704,14 @@ int ssl3_send_server_key_exchange(SSL *s) ...@@ -1709,14 +1704,14 @@ int ssl3_send_server_key_exchange(SSL *s)
if (pkey->type == EVP_PKEY_DSA) if (pkey->type == EVP_PKEY_DSA)
{ {
/* lets do DSS */ /* lets do DSS */
if (!EVP_SignInit_ex(&md_ctx,EVP_dss1(), NULL) EVP_SignInit_ex(&md_ctx,EVP_dss1(), NULL);
|| !EVP_SignUpdate(&md_ctx,&(s->s3->client_random[0]),SSL3_RANDOM_SIZE) EVP_SignUpdate(&md_ctx,&(s->s3->client_random[0]),SSL3_RANDOM_SIZE);
|| !EVP_SignUpdate(&md_ctx,&(s->s3->server_random[0]),SSL3_RANDOM_SIZE) EVP_SignUpdate(&md_ctx,&(s->s3->server_random[0]),SSL3_RANDOM_SIZE);
|| !EVP_SignUpdate(&md_ctx,&(d[4]),n) EVP_SignUpdate(&md_ctx,&(d[4]),n);
|| !EVP_SignFinal(&md_ctx,&(p[2]), if (!EVP_SignFinal(&md_ctx,&(p[2]),
(unsigned int *)&i,pkey)) (unsigned int *)&i,pkey))
{ {
SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE,ERR_R_EVP_LIB); SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE,ERR_LIB_DSA);
goto err; goto err;
} }
s2n(i,p); s2n(i,p);
...@@ -1728,14 +1723,14 @@ int ssl3_send_server_key_exchange(SSL *s) ...@@ -1728,14 +1723,14 @@ int ssl3_send_server_key_exchange(SSL *s)
if (pkey->type == EVP_PKEY_EC) if (pkey->type == EVP_PKEY_EC)
{ {
/* let's do ECDSA */ /* let's do ECDSA */
if (!EVP_SignInit_ex(&md_ctx,EVP_ecdsa(), NULL) EVP_SignInit_ex(&md_ctx,EVP_ecdsa(), NULL);
|| !EVP_SignUpdate(&md_ctx,&(s->s3->client_random[0]),SSL3_RANDOM_SIZE) EVP_SignUpdate(&md_ctx,&(s->s3->client_random[0]),SSL3_RANDOM_SIZE);
|| !EVP_SignUpdate(&md_ctx,&(s->s3->server_random[0]),SSL3_RANDOM_SIZE) EVP_SignUpdate(&md_ctx,&(s->s3->server_random[0]),SSL3_RANDOM_SIZE);
|| !EVP_SignUpdate(&md_ctx,&(d[4]),n) EVP_SignUpdate(&md_ctx,&(d[4]),n);
|| !EVP_SignFinal(&md_ctx,&(p[2]), if (!EVP_SignFinal(&md_ctx,&(p[2]),
(unsigned int *)&i,pkey)) (unsigned int *)&i,pkey))
{ {
SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE,ERR_R_EVP_LIB); SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE,ERR_LIB_ECDSA);
goto err; goto err;
} }
s2n(i,p); s2n(i,p);
...@@ -2974,7 +2969,7 @@ int ssl3_send_newsession_ticket(SSL *s) ...@@ -2974,7 +2969,7 @@ int ssl3_send_newsession_ticket(SSL *s)
if (s->state == SSL3_ST_SW_SESSION_TICKET_A) if (s->state == SSL3_ST_SW_SESSION_TICKET_A)
{ {
unsigned char *p, *senc, *macstart; unsigned char *p, *senc, *macstart;
int len, slen, rv = 0; int len, slen;
unsigned int hlen; unsigned int hlen;
EVP_CIPHER_CTX ctx; EVP_CIPHER_CTX ctx;
HMAC_CTX hctx; HMAC_CTX hctx;
...@@ -3029,21 +3024,11 @@ int ssl3_send_newsession_ticket(SSL *s) ...@@ -3029,21 +3024,11 @@ int ssl3_send_newsession_ticket(SSL *s)
else else
{ {
RAND_pseudo_bytes(iv, 16); RAND_pseudo_bytes(iv, 16);
<<<<<<< s3_srvr.c
if (!EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL,
s->ctx->tlsext_tick_aes_key, iv))
goto evp_err;
if (!HMAC_Init_ex(&hctx, s->ctx->tlsext_tick_hmac_key,
16, tlsext_tick_md(), NULL))
goto evp_err;
memcpy(key_name, s->ctx->tlsext_tick_key_name, 16);
=======
EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL,
tctx->tlsext_tick_aes_key, iv); tctx->tlsext_tick_aes_key, iv);
HMAC_Init_ex(&hctx, tctx->tlsext_tick_hmac_key, 16, HMAC_Init_ex(&hctx, tctx->tlsext_tick_hmac_key, 16,
tlsext_tick_md(), NULL); tlsext_tick_md(), NULL);
memcpy(key_name, tctx->tlsext_tick_key_name, 16); memcpy(key_name, tctx->tlsext_tick_key_name, 16);
>>>>>>> 1.180
} }
l2n(s->session->tlsext_tick_lifetime_hint, p); l2n(s->session->tlsext_tick_lifetime_hint, p);
/* Skip ticket length for now */ /* Skip ticket length for now */
...@@ -3056,26 +3041,15 @@ int ssl3_send_newsession_ticket(SSL *s) ...@@ -3056,26 +3041,15 @@ int ssl3_send_newsession_ticket(SSL *s)
memcpy(p, iv, EVP_CIPHER_CTX_iv_length(&ctx)); memcpy(p, iv, EVP_CIPHER_CTX_iv_length(&ctx));
p += EVP_CIPHER_CTX_iv_length(&ctx); p += EVP_CIPHER_CTX_iv_length(&ctx);
/* Encrypt session data */ /* Encrypt session data */
if (!EVP_EncryptUpdate(&ctx, p, &len, senc, slen)) EVP_EncryptUpdate(&ctx, p, &len, senc, slen);
goto evp_err;
p += len; p += len;
if (!EVP_EncryptFinal(&ctx, p, &len)) EVP_EncryptFinal(&ctx, p, &len);
goto evp_err;
p += len; p += len;
if (!HMAC_Update(&hctx, macstart, p - macstart))
goto evp_err;
if (!HMAC_Final(&hctx, p, &hlen))
goto evp_err;
rv = 1;
evp_err:
EVP_CIPHER_CTX_cleanup(&ctx); EVP_CIPHER_CTX_cleanup(&ctx);
HMAC_Update(&hctx, macstart, p - macstart);
HMAC_Final(&hctx, p, &hlen);
HMAC_CTX_cleanup(&hctx); HMAC_CTX_cleanup(&hctx);
if (!rv)
return -1;
p += hlen; p += hlen;
/* Now write out lengths: p points to end of data written */ /* Now write out lengths: p points to end of data written */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册