diff options
Diffstat (limited to 'src/lib/libssl/s3_clnt.c')
-rw-r--r-- | src/lib/libssl/s3_clnt.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/libssl/s3_clnt.c b/src/lib/libssl/s3_clnt.c index 36f4a8b4c3..ebf83b0322 100644 --- a/src/lib/libssl/s3_clnt.c +++ b/src/lib/libssl/s3_clnt.c | |||
@@ -117,6 +117,7 @@ | |||
117 | #include <openssl/objects.h> | 117 | #include <openssl/objects.h> |
118 | #include <openssl/evp.h> | 118 | #include <openssl/evp.h> |
119 | #include <openssl/md5.h> | 119 | #include <openssl/md5.h> |
120 | #include <openssl/fips.h> | ||
120 | 121 | ||
121 | static SSL_METHOD *ssl3_get_client_method(int ver); | 122 | static SSL_METHOD *ssl3_get_client_method(int ver); |
122 | static int ssl3_client_hello(SSL *s); | 123 | static int ssl3_client_hello(SSL *s); |
@@ -534,7 +535,8 @@ static int ssl3_client_hello(SSL *s) | |||
534 | p=s->s3->client_random; | 535 | p=s->s3->client_random; |
535 | Time=time(NULL); /* Time */ | 536 | Time=time(NULL); /* Time */ |
536 | l2n(Time,p); | 537 | l2n(Time,p); |
537 | RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-sizeof(Time)); | 538 | if(RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4) <= 0) |
539 | goto err; | ||
538 | 540 | ||
539 | /* Do the message type and length last */ | 541 | /* Do the message type and length last */ |
540 | d=p= &(buf[4]); | 542 | d=p= &(buf[4]); |
@@ -1160,11 +1162,14 @@ static int ssl3_get_key_exchange(SSL *s) | |||
1160 | q=md_buf; | 1162 | q=md_buf; |
1161 | for (num=2; num > 0; num--) | 1163 | for (num=2; num > 0; num--) |
1162 | { | 1164 | { |
1165 | EVP_MD_CTX_set_flags(&md_ctx, | ||
1166 | EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); | ||
1163 | EVP_DigestInit_ex(&md_ctx,(num == 2) | 1167 | EVP_DigestInit_ex(&md_ctx,(num == 2) |
1164 | ?s->ctx->md5:s->ctx->sha1, NULL); | 1168 | ?s->ctx->md5:s->ctx->sha1, NULL); |
1165 | EVP_DigestUpdate(&md_ctx,&(s->s3->client_random[0]),SSL3_RANDOM_SIZE); | 1169 | EVP_DigestUpdate(&md_ctx,&(s->s3->client_random[0]),SSL3_RANDOM_SIZE); |
1166 | EVP_DigestUpdate(&md_ctx,&(s->s3->server_random[0]),SSL3_RANDOM_SIZE); | 1170 | EVP_DigestUpdate(&md_ctx,&(s->s3->server_random[0]),SSL3_RANDOM_SIZE); |
1167 | EVP_DigestUpdate(&md_ctx,param,param_len); | 1171 | EVP_DigestUpdate(&md_ctx,param,param_len); |
1172 | |||
1168 | EVP_DigestFinal_ex(&md_ctx,q,(unsigned int *)&i); | 1173 | EVP_DigestFinal_ex(&md_ctx,q,(unsigned int *)&i); |
1169 | q+=i; | 1174 | q+=i; |
1170 | j+=i; | 1175 | j+=i; |