diff options
Diffstat (limited to 'src/lib/libssl/ssl_ciph.c')
| -rw-r--r-- | src/lib/libssl/ssl_ciph.c | 133 |
1 files changed, 14 insertions, 119 deletions
diff --git a/src/lib/libssl/ssl_ciph.c b/src/lib/libssl/ssl_ciph.c index 92d1e94d6a..54ba7ef5b4 100644 --- a/src/lib/libssl/ssl_ciph.c +++ b/src/lib/libssl/ssl_ciph.c | |||
| @@ -162,13 +162,11 @@ | |||
| 162 | #define SSL_ENC_CAMELLIA256_IDX 9 | 162 | #define SSL_ENC_CAMELLIA256_IDX 9 |
| 163 | #define SSL_ENC_GOST89_IDX 10 | 163 | #define SSL_ENC_GOST89_IDX 10 |
| 164 | #define SSL_ENC_SEED_IDX 11 | 164 | #define SSL_ENC_SEED_IDX 11 |
| 165 | #define SSL_ENC_AES128GCM_IDX 12 | 165 | #define SSL_ENC_NUM_IDX 12 |
| 166 | #define SSL_ENC_AES256GCM_IDX 13 | ||
| 167 | #define SSL_ENC_NUM_IDX 14 | ||
| 168 | 166 | ||
| 169 | 167 | ||
| 170 | static const EVP_CIPHER *ssl_cipher_methods[SSL_ENC_NUM_IDX]={ | 168 | static const EVP_CIPHER *ssl_cipher_methods[SSL_ENC_NUM_IDX]={ |
| 171 | NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL | 169 | NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
| 172 | }; | 170 | }; |
| 173 | 171 | ||
| 174 | #define SSL_COMP_NULL_IDX 0 | 172 | #define SSL_COMP_NULL_IDX 0 |
| @@ -181,32 +179,28 @@ static STACK_OF(SSL_COMP) *ssl_comp_methods=NULL; | |||
| 181 | #define SSL_MD_SHA1_IDX 1 | 179 | #define SSL_MD_SHA1_IDX 1 |
| 182 | #define SSL_MD_GOST94_IDX 2 | 180 | #define SSL_MD_GOST94_IDX 2 |
| 183 | #define SSL_MD_GOST89MAC_IDX 3 | 181 | #define SSL_MD_GOST89MAC_IDX 3 |
| 184 | #define SSL_MD_SHA256_IDX 4 | ||
| 185 | #define SSL_MD_SHA384_IDX 5 | ||
| 186 | /*Constant SSL_MAX_DIGEST equal to size of digests array should be | 182 | /*Constant SSL_MAX_DIGEST equal to size of digests array should be |
| 187 | * defined in the | 183 | * defined in the |
| 188 | * ssl_locl.h */ | 184 | * ssl_locl.h */ |
| 189 | #define SSL_MD_NUM_IDX SSL_MAX_DIGEST | 185 | #define SSL_MD_NUM_IDX SSL_MAX_DIGEST |
| 190 | static const EVP_MD *ssl_digest_methods[SSL_MD_NUM_IDX]={ | 186 | static const EVP_MD *ssl_digest_methods[SSL_MD_NUM_IDX]={ |
| 191 | NULL,NULL,NULL,NULL,NULL,NULL | 187 | NULL,NULL,NULL,NULL |
| 192 | }; | 188 | }; |
| 193 | /* PKEY_TYPE for GOST89MAC is known in advance, but, because | 189 | /* PKEY_TYPE for GOST89MAC is known in advance, but, because |
| 194 | * implementation is engine-provided, we'll fill it only if | 190 | * implementation is engine-provided, we'll fill it only if |
| 195 | * corresponding EVP_PKEY_METHOD is found | 191 | * corresponding EVP_PKEY_METHOD is found |
| 196 | */ | 192 | */ |
| 197 | static int ssl_mac_pkey_id[SSL_MD_NUM_IDX]={ | 193 | static int ssl_mac_pkey_id[SSL_MD_NUM_IDX]={ |
| 198 | EVP_PKEY_HMAC,EVP_PKEY_HMAC,EVP_PKEY_HMAC,NID_undef, | 194 | EVP_PKEY_HMAC,EVP_PKEY_HMAC,EVP_PKEY_HMAC,NID_undef |
| 199 | EVP_PKEY_HMAC,EVP_PKEY_HMAC | ||
| 200 | }; | 195 | }; |
| 201 | 196 | ||
| 202 | static int ssl_mac_secret_size[SSL_MD_NUM_IDX]={ | 197 | static int ssl_mac_secret_size[SSL_MD_NUM_IDX]={ |
| 203 | 0,0,0,0,0,0 | 198 | 0,0,0,0 |
| 204 | }; | 199 | }; |
| 205 | 200 | ||
| 206 | static int ssl_handshake_digest_flag[SSL_MD_NUM_IDX]={ | 201 | static int ssl_handshake_digest_flag[SSL_MD_NUM_IDX]={ |
| 207 | SSL_HANDSHAKE_MAC_MD5,SSL_HANDSHAKE_MAC_SHA, | 202 | SSL_HANDSHAKE_MAC_MD5,SSL_HANDSHAKE_MAC_SHA, |
| 208 | SSL_HANDSHAKE_MAC_GOST94, 0, SSL_HANDSHAKE_MAC_SHA256, | 203 | SSL_HANDSHAKE_MAC_GOST94,0 |
| 209 | SSL_HANDSHAKE_MAC_SHA384 | ||
| 210 | }; | 204 | }; |
| 211 | 205 | ||
| 212 | #define CIPHER_ADD 1 | 206 | #define CIPHER_ADD 1 |
| @@ -253,7 +247,6 @@ static const SSL_CIPHER cipher_aliases[]={ | |||
| 253 | {0,SSL_TXT_ECDH,0, SSL_kECDHr|SSL_kECDHe|SSL_kEECDH,0,0,0,0,0,0,0,0}, | 247 | {0,SSL_TXT_ECDH,0, SSL_kECDHr|SSL_kECDHe|SSL_kEECDH,0,0,0,0,0,0,0,0}, |
| 254 | 248 | ||
| 255 | {0,SSL_TXT_kPSK,0, SSL_kPSK, 0,0,0,0,0,0,0,0}, | 249 | {0,SSL_TXT_kPSK,0, SSL_kPSK, 0,0,0,0,0,0,0,0}, |
| 256 | {0,SSL_TXT_kSRP,0, SSL_kSRP, 0,0,0,0,0,0,0,0}, | ||
| 257 | {0,SSL_TXT_kGOST,0, SSL_kGOST,0,0,0,0,0,0,0,0}, | 250 | {0,SSL_TXT_kGOST,0, SSL_kGOST,0,0,0,0,0,0,0,0}, |
| 258 | 251 | ||
| 259 | /* server authentication aliases */ | 252 | /* server authentication aliases */ |
| @@ -280,7 +273,6 @@ static const SSL_CIPHER cipher_aliases[]={ | |||
| 280 | {0,SSL_TXT_ADH,0, SSL_kEDH,SSL_aNULL,0,0,0,0,0,0,0}, | 273 | {0,SSL_TXT_ADH,0, SSL_kEDH,SSL_aNULL,0,0,0,0,0,0,0}, |
| 281 | {0,SSL_TXT_AECDH,0, SSL_kEECDH,SSL_aNULL,0,0,0,0,0,0,0}, | 274 | {0,SSL_TXT_AECDH,0, SSL_kEECDH,SSL_aNULL,0,0,0,0,0,0,0}, |
| 282 | {0,SSL_TXT_PSK,0, SSL_kPSK,SSL_aPSK,0,0,0,0,0,0,0}, | 275 | {0,SSL_TXT_PSK,0, SSL_kPSK,SSL_aPSK,0,0,0,0,0,0,0}, |
| 283 | {0,SSL_TXT_SRP,0, SSL_kSRP,0,0,0,0,0,0,0,0}, | ||
| 284 | 276 | ||
| 285 | 277 | ||
| 286 | /* symmetric encryption aliases */ | 278 | /* symmetric encryption aliases */ |
| @@ -291,10 +283,9 @@ static const SSL_CIPHER cipher_aliases[]={ | |||
| 291 | {0,SSL_TXT_IDEA,0, 0,0,SSL_IDEA, 0,0,0,0,0,0}, | 283 | {0,SSL_TXT_IDEA,0, 0,0,SSL_IDEA, 0,0,0,0,0,0}, |
| 292 | {0,SSL_TXT_SEED,0, 0,0,SSL_SEED, 0,0,0,0,0,0}, | 284 | {0,SSL_TXT_SEED,0, 0,0,SSL_SEED, 0,0,0,0,0,0}, |
| 293 | {0,SSL_TXT_eNULL,0, 0,0,SSL_eNULL, 0,0,0,0,0,0}, | 285 | {0,SSL_TXT_eNULL,0, 0,0,SSL_eNULL, 0,0,0,0,0,0}, |
| 294 | {0,SSL_TXT_AES128,0, 0,0,SSL_AES128|SSL_AES128GCM,0,0,0,0,0,0}, | 286 | {0,SSL_TXT_AES128,0, 0,0,SSL_AES128,0,0,0,0,0,0}, |
| 295 | {0,SSL_TXT_AES256,0, 0,0,SSL_AES256|SSL_AES256GCM,0,0,0,0,0,0}, | 287 | {0,SSL_TXT_AES256,0, 0,0,SSL_AES256,0,0,0,0,0,0}, |
| 296 | {0,SSL_TXT_AES,0, 0,0,SSL_AES,0,0,0,0,0,0}, | 288 | {0,SSL_TXT_AES,0, 0,0,SSL_AES128|SSL_AES256,0,0,0,0,0,0}, |
| 297 | {0,SSL_TXT_AES_GCM,0, 0,0,SSL_AES128GCM|SSL_AES256GCM,0,0,0,0,0,0}, | ||
| 298 | {0,SSL_TXT_CAMELLIA128,0,0,0,SSL_CAMELLIA128,0,0,0,0,0,0}, | 289 | {0,SSL_TXT_CAMELLIA128,0,0,0,SSL_CAMELLIA128,0,0,0,0,0,0}, |
| 299 | {0,SSL_TXT_CAMELLIA256,0,0,0,SSL_CAMELLIA256,0,0,0,0,0,0}, | 290 | {0,SSL_TXT_CAMELLIA256,0,0,0,SSL_CAMELLIA256,0,0,0,0,0,0}, |
| 300 | {0,SSL_TXT_CAMELLIA ,0,0,0,SSL_CAMELLIA128|SSL_CAMELLIA256,0,0,0,0,0,0}, | 291 | {0,SSL_TXT_CAMELLIA ,0,0,0,SSL_CAMELLIA128|SSL_CAMELLIA256,0,0,0,0,0,0}, |
| @@ -305,8 +296,6 @@ static const SSL_CIPHER cipher_aliases[]={ | |||
| 305 | {0,SSL_TXT_SHA,0, 0,0,0,SSL_SHA1, 0,0,0,0,0}, | 296 | {0,SSL_TXT_SHA,0, 0,0,0,SSL_SHA1, 0,0,0,0,0}, |
| 306 | {0,SSL_TXT_GOST94,0, 0,0,0,SSL_GOST94, 0,0,0,0,0}, | 297 | {0,SSL_TXT_GOST94,0, 0,0,0,SSL_GOST94, 0,0,0,0,0}, |
| 307 | {0,SSL_TXT_GOST89MAC,0, 0,0,0,SSL_GOST89MAC, 0,0,0,0,0}, | 298 | {0,SSL_TXT_GOST89MAC,0, 0,0,0,SSL_GOST89MAC, 0,0,0,0,0}, |
| 308 | {0,SSL_TXT_SHA256,0, 0,0,0,SSL_SHA256, 0,0,0,0,0}, | ||
| 309 | {0,SSL_TXT_SHA384,0, 0,0,0,SSL_SHA384, 0,0,0,0,0}, | ||
| 310 | 299 | ||
| 311 | /* protocol version aliases */ | 300 | /* protocol version aliases */ |
| 312 | {0,SSL_TXT_SSLV2,0, 0,0,0,0,SSL_SSLV2, 0,0,0,0}, | 301 | {0,SSL_TXT_SSLV2,0, 0,0,0,0,SSL_SSLV2, 0,0,0,0}, |
| @@ -390,11 +379,6 @@ void ssl_load_ciphers(void) | |||
| 390 | ssl_cipher_methods[SSL_ENC_SEED_IDX]= | 379 | ssl_cipher_methods[SSL_ENC_SEED_IDX]= |
| 391 | EVP_get_cipherbyname(SN_seed_cbc); | 380 | EVP_get_cipherbyname(SN_seed_cbc); |
| 392 | 381 | ||
| 393 | ssl_cipher_methods[SSL_ENC_AES128GCM_IDX]= | ||
| 394 | EVP_get_cipherbyname(SN_aes_128_gcm); | ||
| 395 | ssl_cipher_methods[SSL_ENC_AES256GCM_IDX]= | ||
| 396 | EVP_get_cipherbyname(SN_aes_256_gcm); | ||
| 397 | |||
| 398 | ssl_digest_methods[SSL_MD_MD5_IDX]= | 382 | ssl_digest_methods[SSL_MD_MD5_IDX]= |
| 399 | EVP_get_digestbyname(SN_md5); | 383 | EVP_get_digestbyname(SN_md5); |
| 400 | ssl_mac_secret_size[SSL_MD_MD5_IDX]= | 384 | ssl_mac_secret_size[SSL_MD_MD5_IDX]= |
| @@ -420,14 +404,6 @@ void ssl_load_ciphers(void) | |||
| 420 | ssl_mac_secret_size[SSL_MD_GOST89MAC_IDX]=32; | 404 | ssl_mac_secret_size[SSL_MD_GOST89MAC_IDX]=32; |
| 421 | } | 405 | } |
| 422 | 406 | ||
| 423 | ssl_digest_methods[SSL_MD_SHA256_IDX]= | ||
| 424 | EVP_get_digestbyname(SN_sha256); | ||
| 425 | ssl_mac_secret_size[SSL_MD_SHA256_IDX]= | ||
| 426 | EVP_MD_size(ssl_digest_methods[SSL_MD_SHA256_IDX]); | ||
| 427 | ssl_digest_methods[SSL_MD_SHA384_IDX]= | ||
| 428 | EVP_get_digestbyname(SN_sha384); | ||
| 429 | ssl_mac_secret_size[SSL_MD_SHA384_IDX]= | ||
| 430 | EVP_MD_size(ssl_digest_methods[SSL_MD_SHA384_IDX]); | ||
| 431 | } | 407 | } |
| 432 | #ifndef OPENSSL_NO_COMP | 408 | #ifndef OPENSSL_NO_COMP |
| 433 | 409 | ||
| @@ -550,12 +526,6 @@ int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc, | |||
| 550 | case SSL_SEED: | 526 | case SSL_SEED: |
| 551 | i=SSL_ENC_SEED_IDX; | 527 | i=SSL_ENC_SEED_IDX; |
| 552 | break; | 528 | break; |
| 553 | case SSL_AES128GCM: | ||
| 554 | i=SSL_ENC_AES128GCM_IDX; | ||
| 555 | break; | ||
| 556 | case SSL_AES256GCM: | ||
| 557 | i=SSL_ENC_AES256GCM_IDX; | ||
| 558 | break; | ||
| 559 | default: | 529 | default: |
| 560 | i= -1; | 530 | i= -1; |
| 561 | break; | 531 | break; |
| @@ -579,12 +549,6 @@ int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc, | |||
| 579 | case SSL_SHA1: | 549 | case SSL_SHA1: |
| 580 | i=SSL_MD_SHA1_IDX; | 550 | i=SSL_MD_SHA1_IDX; |
| 581 | break; | 551 | break; |
| 582 | case SSL_SHA256: | ||
| 583 | i=SSL_MD_SHA256_IDX; | ||
| 584 | break; | ||
| 585 | case SSL_SHA384: | ||
| 586 | i=SSL_MD_SHA384_IDX; | ||
| 587 | break; | ||
| 588 | case SSL_GOST94: | 552 | case SSL_GOST94: |
| 589 | i = SSL_MD_GOST94_IDX; | 553 | i = SSL_MD_GOST94_IDX; |
| 590 | break; | 554 | break; |
| @@ -600,45 +564,17 @@ int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc, | |||
| 600 | *md=NULL; | 564 | *md=NULL; |
| 601 | if (mac_pkey_type!=NULL) *mac_pkey_type = NID_undef; | 565 | if (mac_pkey_type!=NULL) *mac_pkey_type = NID_undef; |
| 602 | if (mac_secret_size!=NULL) *mac_secret_size = 0; | 566 | if (mac_secret_size!=NULL) *mac_secret_size = 0; |
| 603 | if (c->algorithm_mac == SSL_AEAD) | 567 | |
| 604 | mac_pkey_type = NULL; | ||
| 605 | } | 568 | } |
| 606 | else | 569 | else |
| 607 | { | 570 | { |
| 608 | *md=ssl_digest_methods[i]; | 571 | *md=ssl_digest_methods[i]; |
| 609 | if (mac_pkey_type!=NULL) *mac_pkey_type = ssl_mac_pkey_id[i]; | 572 | if (mac_pkey_type!=NULL) *mac_pkey_type = ssl_mac_pkey_id[i]; |
| 610 | if (mac_secret_size!=NULL) *mac_secret_size = ssl_mac_secret_size[i]; | 573 | if (mac_secret_size!=NULL) *mac_secret_size = ssl_mac_secret_size[i]; |
| 611 | } | 574 | } |
| 612 | |||
| 613 | if ((*enc != NULL) && | ||
| 614 | (*md != NULL || (EVP_CIPHER_flags(*enc)&EVP_CIPH_FLAG_AEAD_CIPHER)) && | ||
| 615 | (!mac_pkey_type||*mac_pkey_type != NID_undef)) | ||
| 616 | { | ||
| 617 | const EVP_CIPHER *evp; | ||
| 618 | |||
| 619 | if (s->ssl_version>>8 != TLS1_VERSION_MAJOR || | ||
| 620 | s->ssl_version < TLS1_VERSION) | ||
| 621 | return 1; | ||
| 622 | |||
| 623 | #ifdef OPENSSL_FIPS | ||
| 624 | if (FIPS_mode()) | ||
| 625 | return 1; | ||
| 626 | #endif | ||
| 627 | 575 | ||
| 628 | if (c->algorithm_enc == SSL_RC4 && | 576 | if ((*enc != NULL) && (*md != NULL) && (!mac_pkey_type||*mac_pkey_type != NID_undef)) |
| 629 | c->algorithm_mac == SSL_MD5 && | ||
| 630 | (evp=EVP_get_cipherbyname("RC4-HMAC-MD5"))) | ||
| 631 | *enc = evp, *md = NULL; | ||
| 632 | else if (c->algorithm_enc == SSL_AES128 && | ||
| 633 | c->algorithm_mac == SSL_SHA1 && | ||
| 634 | (evp=EVP_get_cipherbyname("AES-128-CBC-HMAC-SHA1"))) | ||
| 635 | *enc = evp, *md = NULL; | ||
| 636 | else if (c->algorithm_enc == SSL_AES256 && | ||
| 637 | c->algorithm_mac == SSL_SHA1 && | ||
| 638 | (evp=EVP_get_cipherbyname("AES-256-CBC-HMAC-SHA1"))) | ||
| 639 | *enc = evp, *md = NULL; | ||
| 640 | return(1); | 577 | return(1); |
| 641 | } | ||
| 642 | else | 578 | else |
| 643 | return(0); | 579 | return(0); |
| 644 | } | 580 | } |
| @@ -649,11 +585,9 @@ int ssl_get_handshake_digest(int idx, long *mask, const EVP_MD **md) | |||
| 649 | { | 585 | { |
| 650 | return 0; | 586 | return 0; |
| 651 | } | 587 | } |
| 588 | if (ssl_handshake_digest_flag[idx]==0) return 0; | ||
| 652 | *mask = ssl_handshake_digest_flag[idx]; | 589 | *mask = ssl_handshake_digest_flag[idx]; |
| 653 | if (*mask) | 590 | *md = ssl_digest_methods[idx]; |
| 654 | *md = ssl_digest_methods[idx]; | ||
| 655 | else | ||
| 656 | *md = NULL; | ||
| 657 | return 1; | 591 | return 1; |
| 658 | } | 592 | } |
| 659 | 593 | ||
| @@ -728,9 +662,6 @@ static void ssl_cipher_get_disabled(unsigned long *mkey, unsigned long *auth, un | |||
| 728 | *mkey |= SSL_kPSK; | 662 | *mkey |= SSL_kPSK; |
| 729 | *auth |= SSL_aPSK; | 663 | *auth |= SSL_aPSK; |
| 730 | #endif | 664 | #endif |
| 731 | #ifdef OPENSSL_NO_SRP | ||
| 732 | *mkey |= SSL_kSRP; | ||
| 733 | #endif | ||
| 734 | /* Check for presence of GOST 34.10 algorithms, and if they | 665 | /* Check for presence of GOST 34.10 algorithms, and if they |
| 735 | * do not present, disable appropriate auth and key exchange */ | 666 | * do not present, disable appropriate auth and key exchange */ |
| 736 | if (!get_optional_pkey_id("gost94")) { | 667 | if (!get_optional_pkey_id("gost94")) { |
| @@ -756,8 +687,6 @@ static void ssl_cipher_get_disabled(unsigned long *mkey, unsigned long *auth, un | |||
| 756 | *enc |= (ssl_cipher_methods[SSL_ENC_IDEA_IDX] == NULL) ? SSL_IDEA:0; | 687 | *enc |= (ssl_cipher_methods[SSL_ENC_IDEA_IDX] == NULL) ? SSL_IDEA:0; |
| 757 | *enc |= (ssl_cipher_methods[SSL_ENC_AES128_IDX] == NULL) ? SSL_AES128:0; | 688 | *enc |= (ssl_cipher_methods[SSL_ENC_AES128_IDX] == NULL) ? SSL_AES128:0; |
| 758 | *enc |= (ssl_cipher_methods[SSL_ENC_AES256_IDX] == NULL) ? SSL_AES256:0; | 689 | *enc |= (ssl_cipher_methods[SSL_ENC_AES256_IDX] == NULL) ? SSL_AES256:0; |
| 759 | *enc |= (ssl_cipher_methods[SSL_ENC_AES128GCM_IDX] == NULL) ? SSL_AES128GCM:0; | ||
| 760 | *enc |= (ssl_cipher_methods[SSL_ENC_AES256GCM_IDX] == NULL) ? SSL_AES256GCM:0; | ||
| 761 | *enc |= (ssl_cipher_methods[SSL_ENC_CAMELLIA128_IDX] == NULL) ? SSL_CAMELLIA128:0; | 690 | *enc |= (ssl_cipher_methods[SSL_ENC_CAMELLIA128_IDX] == NULL) ? SSL_CAMELLIA128:0; |
| 762 | *enc |= (ssl_cipher_methods[SSL_ENC_CAMELLIA256_IDX] == NULL) ? SSL_CAMELLIA256:0; | 691 | *enc |= (ssl_cipher_methods[SSL_ENC_CAMELLIA256_IDX] == NULL) ? SSL_CAMELLIA256:0; |
| 763 | *enc |= (ssl_cipher_methods[SSL_ENC_GOST89_IDX] == NULL) ? SSL_eGOST2814789CNT:0; | 692 | *enc |= (ssl_cipher_methods[SSL_ENC_GOST89_IDX] == NULL) ? SSL_eGOST2814789CNT:0; |
| @@ -765,8 +694,6 @@ static void ssl_cipher_get_disabled(unsigned long *mkey, unsigned long *auth, un | |||
| 765 | 694 | ||
| 766 | *mac |= (ssl_digest_methods[SSL_MD_MD5_IDX ] == NULL) ? SSL_MD5 :0; | 695 | *mac |= (ssl_digest_methods[SSL_MD_MD5_IDX ] == NULL) ? SSL_MD5 :0; |
| 767 | *mac |= (ssl_digest_methods[SSL_MD_SHA1_IDX] == NULL) ? SSL_SHA1:0; | 696 | *mac |= (ssl_digest_methods[SSL_MD_SHA1_IDX] == NULL) ? SSL_SHA1:0; |
| 768 | *mac |= (ssl_digest_methods[SSL_MD_SHA256_IDX] == NULL) ? SSL_SHA256:0; | ||
| 769 | *mac |= (ssl_digest_methods[SSL_MD_SHA384_IDX] == NULL) ? SSL_SHA384:0; | ||
| 770 | *mac |= (ssl_digest_methods[SSL_MD_GOST94_IDX] == NULL) ? SSL_GOST94:0; | 697 | *mac |= (ssl_digest_methods[SSL_MD_GOST94_IDX] == NULL) ? SSL_GOST94:0; |
| 771 | *mac |= (ssl_digest_methods[SSL_MD_GOST89MAC_IDX] == NULL || ssl_mac_pkey_id[SSL_MD_GOST89MAC_IDX]==NID_undef)? SSL_GOST89MAC:0; | 698 | *mac |= (ssl_digest_methods[SSL_MD_GOST89MAC_IDX] == NULL || ssl_mac_pkey_id[SSL_MD_GOST89MAC_IDX]==NID_undef)? SSL_GOST89MAC:0; |
| 772 | 699 | ||
| @@ -797,9 +724,6 @@ static void ssl_cipher_collect_ciphers(const SSL_METHOD *ssl_method, | |||
| 797 | c = ssl_method->get_cipher(i); | 724 | c = ssl_method->get_cipher(i); |
| 798 | /* drop those that use any of that is not available */ | 725 | /* drop those that use any of that is not available */ |
| 799 | if ((c != NULL) && c->valid && | 726 | if ((c != NULL) && c->valid && |
| 800 | #ifdef OPENSSL_FIPS | ||
| 801 | (!FIPS_mode() || (c->algo_strength & SSL_FIPS)) && | ||
| 802 | #endif | ||
| 803 | !(c->algorithm_mkey & disabled_mkey) && | 727 | !(c->algorithm_mkey & disabled_mkey) && |
| 804 | !(c->algorithm_auth & disabled_auth) && | 728 | !(c->algorithm_auth & disabled_auth) && |
| 805 | !(c->algorithm_enc & disabled_enc) && | 729 | !(c->algorithm_enc & disabled_enc) && |
| @@ -1499,11 +1423,7 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *ssl_method, | |||
| 1499 | */ | 1423 | */ |
| 1500 | for (curr = head; curr != NULL; curr = curr->next) | 1424 | for (curr = head; curr != NULL; curr = curr->next) |
| 1501 | { | 1425 | { |
| 1502 | #ifdef OPENSSL_FIPS | ||
| 1503 | if (curr->active && (!FIPS_mode() || curr->cipher->algo_strength & SSL_FIPS)) | ||
| 1504 | #else | ||
| 1505 | if (curr->active) | 1426 | if (curr->active) |
| 1506 | #endif | ||
| 1507 | { | 1427 | { |
| 1508 | sk_SSL_CIPHER_push(cipherstack, curr->cipher); | 1428 | sk_SSL_CIPHER_push(cipherstack, curr->cipher); |
| 1509 | #ifdef CIPHER_DEBUG | 1429 | #ifdef CIPHER_DEBUG |
| @@ -1560,8 +1480,6 @@ char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
| 1560 | ver="SSLv2"; | 1480 | ver="SSLv2"; |
| 1561 | else if (alg_ssl & SSL_SSLV3) | 1481 | else if (alg_ssl & SSL_SSLV3) |
| 1562 | ver="SSLv3"; | 1482 | ver="SSLv3"; |
| 1563 | else if (alg_ssl & SSL_TLSV1_2) | ||
| 1564 | ver="TLSv1.2"; | ||
| 1565 | else | 1483 | else |
| 1566 | ver="unknown"; | 1484 | ver="unknown"; |
| 1567 | 1485 | ||
| @@ -1594,9 +1512,6 @@ char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
| 1594 | case SSL_kPSK: | 1512 | case SSL_kPSK: |
| 1595 | kx="PSK"; | 1513 | kx="PSK"; |
| 1596 | break; | 1514 | break; |
| 1597 | case SSL_kSRP: | ||
| 1598 | kx="SRP"; | ||
| 1599 | break; | ||
| 1600 | default: | 1515 | default: |
| 1601 | kx="unknown"; | 1516 | kx="unknown"; |
| 1602 | } | 1517 | } |
| @@ -1659,12 +1574,6 @@ char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
| 1659 | case SSL_AES256: | 1574 | case SSL_AES256: |
| 1660 | enc="AES(256)"; | 1575 | enc="AES(256)"; |
| 1661 | break; | 1576 | break; |
| 1662 | case SSL_AES128GCM: | ||
| 1663 | enc="AESGCM(128)"; | ||
| 1664 | break; | ||
| 1665 | case SSL_AES256GCM: | ||
| 1666 | enc="AESGCM(256)"; | ||
| 1667 | break; | ||
| 1668 | case SSL_CAMELLIA128: | 1577 | case SSL_CAMELLIA128: |
| 1669 | enc="Camellia(128)"; | 1578 | enc="Camellia(128)"; |
| 1670 | break; | 1579 | break; |
| @@ -1687,15 +1596,6 @@ char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
| 1687 | case SSL_SHA1: | 1596 | case SSL_SHA1: |
| 1688 | mac="SHA1"; | 1597 | mac="SHA1"; |
| 1689 | break; | 1598 | break; |
| 1690 | case SSL_SHA256: | ||
| 1691 | mac="SHA256"; | ||
| 1692 | break; | ||
| 1693 | case SSL_SHA384: | ||
| 1694 | mac="SHA384"; | ||
| 1695 | break; | ||
| 1696 | case SSL_AEAD: | ||
| 1697 | mac="AEAD"; | ||
| 1698 | break; | ||
| 1699 | default: | 1599 | default: |
| 1700 | mac="unknown"; | 1600 | mac="unknown"; |
| 1701 | break; | 1601 | break; |
| @@ -1753,11 +1653,6 @@ int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits) | |||
| 1753 | return(ret); | 1653 | return(ret); |
| 1754 | } | 1654 | } |
| 1755 | 1655 | ||
| 1756 | unsigned long SSL_CIPHER_get_id(const SSL_CIPHER *c) | ||
| 1757 | { | ||
| 1758 | return c->id; | ||
| 1759 | } | ||
| 1760 | |||
| 1761 | SSL_COMP *ssl3_comp_find(STACK_OF(SSL_COMP) *sk, int n) | 1656 | SSL_COMP *ssl3_comp_find(STACK_OF(SSL_COMP) *sk, int n) |
| 1762 | { | 1657 | { |
| 1763 | SSL_COMP *ctmp; | 1658 | SSL_COMP *ctmp; |
