diff options
| author | jsing <> | 2014-07-12 13:11:53 +0000 |
|---|---|---|
| committer | jsing <> | 2014-07-12 13:11:53 +0000 |
| commit | eda691287f99b3380367cbd224f295469c1c1dc1 (patch) | |
| tree | dd77c44528a0b25f7964c067da56be1302be9ee2 /src | |
| parent | f6d02d91130bc0ec3f15ccc3060f955bf75247e1 (diff) | |
| download | openbsd-eda691287f99b3380367cbd224f295469c1c1dc1.tar.gz openbsd-eda691287f99b3380367cbd224f295469c1c1dc1.tar.bz2 openbsd-eda691287f99b3380367cbd224f295469c1c1dc1.zip | |
Remove remnants from PSK, KRB5 and SRP.
ok beck@ miod@
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/d1_clnt.c | 8 | ||||
| -rw-r--r-- | src/lib/libssl/d1_srvr.c | 31 | ||||
| -rw-r--r-- | src/lib/libssl/s3_clnt.c | 25 | ||||
| -rw-r--r-- | src/lib/libssl/s3_pkt.c | 6 | ||||
| -rw-r--r-- | src/lib/libssl/s3_srvr.c | 56 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/d1_clnt.c | 8 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/d1_srvr.c | 31 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/s3_clnt.c | 25 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/s3_pkt.c | 6 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/s3_srvr.c | 56 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/ssl_ciph.c | 62 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/ssl_lib.c | 5 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/ssl_locl.h | 9 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_ciph.c | 62 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_lib.c | 5 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_locl.h | 9 |
16 files changed, 86 insertions, 318 deletions
diff --git a/src/lib/libssl/d1_clnt.c b/src/lib/libssl/d1_clnt.c index b85908c733..004fd6e04f 100644 --- a/src/lib/libssl/d1_clnt.c +++ b/src/lib/libssl/d1_clnt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: d1_clnt.c,v 1.29 2014/07/11 22:57:25 miod Exp $ */ | 1 | /* $OpenBSD: d1_clnt.c,v 1.30 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
| 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
| @@ -395,9 +395,9 @@ dtls1_connect(SSL *s) | |||
| 395 | s->init_num = 0; | 395 | s->init_num = 0; |
| 396 | break; | 396 | break; |
| 397 | } | 397 | } |
| 398 | /* Check if it is anon DH or PSK */ | 398 | /* Check if it is anon DH. */ |
| 399 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL) && | 399 | if (!(s->s3->tmp.new_cipher->algorithm_auth & |
| 400 | !(s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK)) { | 400 | SSL_aNULL)) { |
| 401 | ret = ssl3_get_server_certificate(s); | 401 | ret = ssl3_get_server_certificate(s); |
| 402 | if (ret <= 0) | 402 | if (ret <= 0) |
| 403 | goto end; | 403 | goto end; |
diff --git a/src/lib/libssl/d1_srvr.c b/src/lib/libssl/d1_srvr.c index 8531f2db2b..a94b7ed61b 100644 --- a/src/lib/libssl/d1_srvr.c +++ b/src/lib/libssl/d1_srvr.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: d1_srvr.c,v 1.31 2014/07/12 10:06:04 jsing Exp $ */ | 1 | /* $OpenBSD: d1_srvr.c,v 1.32 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
| 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
| @@ -427,9 +427,9 @@ dtls1_accept(SSL *s) | |||
| 427 | 427 | ||
| 428 | case SSL3_ST_SW_CERT_A: | 428 | case SSL3_ST_SW_CERT_A: |
| 429 | case SSL3_ST_SW_CERT_B: | 429 | case SSL3_ST_SW_CERT_B: |
| 430 | /* Check if it is anon DH or normal PSK */ | 430 | /* Check if it is anon DH. */ |
| 431 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL) && | 431 | if (!(s->s3->tmp.new_cipher->algorithm_auth & |
| 432 | !(s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK)) { | 432 | SSL_aNULL)) { |
| 433 | dtls1_start_timer(s); | 433 | dtls1_start_timer(s); |
| 434 | ret = dtls1_send_server_certificate(s); | 434 | ret = dtls1_send_server_certificate(s); |
| 435 | if (ret <= 0) | 435 | if (ret <= 0) |
| @@ -500,22 +500,13 @@ dtls1_accept(SSL *s) | |||
| 500 | * and in RFC 2246) ... except when the application | 500 | * and in RFC 2246) ... except when the application |
| 501 | * insists on verification (against the specs, but | 501 | * insists on verification (against the specs, but |
| 502 | * s3_clnt.c accepts this for SSL 3). | 502 | * s3_clnt.c accepts this for SSL 3). |
| 503 | * | ||
| 504 | * - We are using a Kerberos ciphersuite. | ||
| 505 | * | ||
| 506 | * - We are using normal PSK certificates and | ||
| 507 | * Certificate Requests are omitted | ||
| 508 | */ | 503 | */ |
| 509 | if (!(s->verify_mode & SSL_VERIFY_PEER) || | 504 | if (!(s->verify_mode & SSL_VERIFY_PEER) || |
| 510 | ((s->session->peer != NULL) && | 505 | ((s->session->peer != NULL) && |
| 511 | (s->verify_mode & SSL_VERIFY_CLIENT_ONCE)) || | 506 | (s->verify_mode & SSL_VERIFY_CLIENT_ONCE)) || |
| 512 | ((s->s3->tmp.new_cipher->algorithm_auth & | 507 | ((s->s3->tmp.new_cipher->algorithm_auth & |
| 513 | SSL_aNULL) && !(s->verify_mode & | 508 | SSL_aNULL) && !(s->verify_mode & |
| 514 | SSL_VERIFY_FAIL_IF_NO_PEER_CERT)) || | 509 | SSL_VERIFY_FAIL_IF_NO_PEER_CERT))) { |
| 515 | (s->s3->tmp.new_cipher->algorithm_auth & | ||
| 516 | SSL_aKRB5) || | ||
| 517 | (s->s3->tmp.new_cipher->algorithm_mkey & | ||
| 518 | SSL_kPSK)) { | ||
| 519 | /* no cert request */ | 510 | /* no cert request */ |
| 520 | skip = 1; | 511 | skip = 1; |
| 521 | s->s3->tmp.cert_request = 0; | 512 | s->s3->tmp.cert_request = 0; |
| @@ -1216,8 +1207,7 @@ dtls1_send_server_key_exchange(SSL *s) | |||
| 1216 | n += 2 + nr[i]; | 1207 | n += 2 + nr[i]; |
| 1217 | } | 1208 | } |
| 1218 | 1209 | ||
| 1219 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL) | 1210 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL)) { |
| 1220 | && !(s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK)) { | ||
| 1221 | if ((pkey = ssl_get_sign_pkey(s, | 1211 | if ((pkey = ssl_get_sign_pkey(s, |
| 1222 | s->s3->tmp.new_cipher, NULL)) == NULL) { | 1212 | s->s3->tmp.new_cipher, NULL)) == NULL) { |
| 1223 | al = SSL_AD_DECODE_ERROR; | 1213 | al = SSL_AD_DECODE_ERROR; |
| @@ -1463,12 +1453,9 @@ dtls1_send_server_certificate(SSL *s) | |||
| 1463 | if (s->state == SSL3_ST_SW_CERT_A) { | 1453 | if (s->state == SSL3_ST_SW_CERT_A) { |
| 1464 | x = ssl_get_server_send_cert(s); | 1454 | x = ssl_get_server_send_cert(s); |
| 1465 | if (x == NULL) { | 1455 | if (x == NULL) { |
| 1466 | /* VRS: allow null cert if auth == KRB5 */ | 1456 | SSLerr(SSL_F_DTLS1_SEND_SERVER_CERTIFICATE, |
| 1467 | if ((s->s3->tmp.new_cipher->algorithm_mkey != SSL_kKRB5) || | 1457 | ERR_R_INTERNAL_ERROR); |
| 1468 | (s->s3->tmp.new_cipher->algorithm_auth != SSL_aKRB5)) { | 1458 | return (0); |
| 1469 | SSLerr(SSL_F_DTLS1_SEND_SERVER_CERTIFICATE, ERR_R_INTERNAL_ERROR); | ||
| 1470 | return (0); | ||
| 1471 | } | ||
| 1472 | } | 1459 | } |
| 1473 | 1460 | ||
| 1474 | l = dtls1_output_cert_chain(s, x); | 1461 | l = dtls1_output_cert_chain(s, x); |
diff --git a/src/lib/libssl/s3_clnt.c b/src/lib/libssl/s3_clnt.c index 884b9f1efb..7d6681b3ac 100644 --- a/src/lib/libssl/s3_clnt.c +++ b/src/lib/libssl/s3_clnt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: s3_clnt.c,v 1.78 2014/07/11 22:57:25 miod Exp $ */ | 1 | /* $OpenBSD: s3_clnt.c,v 1.79 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -339,11 +339,9 @@ ssl3_connect(SSL *s) | |||
| 339 | s->init_num = 0; | 339 | s->init_num = 0; |
| 340 | break; | 340 | break; |
| 341 | } | 341 | } |
| 342 | /* Check if it is anon DH/ECDH or PSK */ | 342 | /* Check if it is anon DH/ECDH. */ |
| 343 | if (!(s->s3->tmp.new_cipher->algorithm_auth & | 343 | if (!(s->s3->tmp.new_cipher->algorithm_auth & |
| 344 | SSL_aNULL) && | 344 | SSL_aNULL)) { |
| 345 | !(s->s3->tmp.new_cipher->algorithm_mkey & | ||
| 346 | SSL_kPSK)) { | ||
| 347 | ret = ssl3_get_server_certificate(s); | 345 | ret = ssl3_get_server_certificate(s); |
| 348 | if (ret <= 0) | 346 | if (ret <= 0) |
| 349 | goto end; | 347 | goto end; |
| @@ -996,7 +994,6 @@ ssl3_get_server_certificate(SSL *s) | |||
| 996 | SESS_CERT *sc; | 994 | SESS_CERT *sc; |
| 997 | EVP_PKEY *pkey = NULL; | 995 | EVP_PKEY *pkey = NULL; |
| 998 | 996 | ||
| 999 | /* VRS: 0=> will allow null cert if auth == KRB5 */ | ||
| 1000 | int need_cert = 1; | 997 | int need_cert = 1; |
| 1001 | 998 | ||
| 1002 | n = s->method->ssl_get_message(s, SSL3_ST_CR_CERT_A, | 999 | n = s->method->ssl_get_message(s, SSL3_ST_CR_CERT_A, |
| @@ -1005,9 +1002,7 @@ ssl3_get_server_certificate(SSL *s) | |||
| 1005 | if (!ok) | 1002 | if (!ok) |
| 1006 | return ((int)n); | 1003 | return ((int)n); |
| 1007 | 1004 | ||
| 1008 | if ((s->s3->tmp.message_type == SSL3_MT_SERVER_KEY_EXCHANGE) || | 1005 | if ((s->s3->tmp.message_type == SSL3_MT_SERVER_KEY_EXCHANGE)) { |
| 1009 | ((s->s3->tmp.new_cipher->algorithm_auth & SSL_aKRB5) && | ||
| 1010 | (s->s3->tmp.message_type == SSL3_MT_SERVER_DONE))) { | ||
| 1011 | s->s3->tmp.reuse_message = 1; | 1006 | s->s3->tmp.reuse_message = 1; |
| 1012 | return (1); | 1007 | return (1); |
| 1013 | } | 1008 | } |
| @@ -1098,12 +1093,6 @@ ssl3_get_server_certificate(SSL *s) | |||
| 1098 | 1093 | ||
| 1099 | pkey = X509_get_pubkey(x); | 1094 | pkey = X509_get_pubkey(x); |
| 1100 | 1095 | ||
| 1101 | /* VRS: allow null cert if auth == KRB5 */ | ||
| 1102 | need_cert = ((s->s3->tmp.new_cipher->algorithm_mkey & SSL_kKRB5) && | ||
| 1103 | (s->s3->tmp.new_cipher->algorithm_auth & SSL_aKRB5)) | ||
| 1104 | ? 0 : 1; | ||
| 1105 | |||
| 1106 | |||
| 1107 | if (need_cert && ((pkey == NULL) || | 1096 | if (need_cert && ((pkey == NULL) || |
| 1108 | EVP_PKEY_missing_parameters(pkey))) { | 1097 | EVP_PKEY_missing_parameters(pkey))) { |
| 1109 | x = NULL; | 1098 | x = NULL; |
| @@ -1553,8 +1542,8 @@ ssl3_get_key_exchange(SSL *s) | |||
| 1553 | } | 1542 | } |
| 1554 | } | 1543 | } |
| 1555 | } else { | 1544 | } else { |
| 1556 | /* aNULL or kPSK do not need public keys */ | 1545 | /* aNULL does not need public keys. */ |
| 1557 | if (!(alg_a & SSL_aNULL) && !(alg_k & SSL_kPSK)) { | 1546 | if (!(alg_a & SSL_aNULL)) { |
| 1558 | SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, | 1547 | SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, |
| 1559 | ERR_R_INTERNAL_ERROR); | 1548 | ERR_R_INTERNAL_ERROR); |
| 1560 | goto err; | 1549 | goto err; |
| @@ -2615,7 +2604,7 @@ ssl3_check_cert_and_algorithm(SSL *s) | |||
| 2615 | alg_a = s->s3->tmp.new_cipher->algorithm_auth; | 2604 | alg_a = s->s3->tmp.new_cipher->algorithm_auth; |
| 2616 | 2605 | ||
| 2617 | /* We don't have a certificate. */ | 2606 | /* We don't have a certificate. */ |
| 2618 | if ((alg_a & (SSL_aDH|SSL_aNULL|SSL_aKRB5)) || (alg_k & SSL_kPSK)) | 2607 | if (alg_a & (SSL_aDH|SSL_aNULL)) |
| 2619 | return (1); | 2608 | return (1); |
| 2620 | 2609 | ||
| 2621 | sc = s->session->sess_cert; | 2610 | sc = s->session->sess_cert; |
diff --git a/src/lib/libssl/s3_pkt.c b/src/lib/libssl/s3_pkt.c index 237d90c581..cbd35ff7e3 100644 --- a/src/lib/libssl/s3_pkt.c +++ b/src/lib/libssl/s3_pkt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: s3_pkt.c,v 1.49 2014/07/10 08:51:14 tedu Exp $ */ | 1 | /* $OpenBSD: s3_pkt.c,v 1.50 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -1134,10 +1134,6 @@ start: | |||
| 1134 | SSL_R_NO_RENEGOTIATION); | 1134 | SSL_R_NO_RENEGOTIATION); |
| 1135 | goto f_err; | 1135 | goto f_err; |
| 1136 | } | 1136 | } |
| 1137 | #ifdef SSL_AD_MISSING_SRP_USERNAME | ||
| 1138 | else if (alert_descr == SSL_AD_MISSING_SRP_USERNAME) | ||
| 1139 | return (0); | ||
| 1140 | #endif | ||
| 1141 | } else if (alert_level == 2) { | 1137 | } else if (alert_level == 2) { |
| 1142 | /* fatal */ | 1138 | /* fatal */ |
| 1143 | s->rwstate = SSL_NOTHING; | 1139 | s->rwstate = SSL_NOTHING; |
diff --git a/src/lib/libssl/s3_srvr.c b/src/lib/libssl/s3_srvr.c index 2d1bee1723..e0a7d78995 100644 --- a/src/lib/libssl/s3_srvr.c +++ b/src/lib/libssl/s3_srvr.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: s3_srvr.c,v 1.76 2014/07/12 10:06:04 jsing Exp $ */ | 1 | /* $OpenBSD: s3_srvr.c,v 1.77 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -373,13 +373,9 @@ ssl3_accept(SSL *s) | |||
| 373 | 373 | ||
| 374 | case SSL3_ST_SW_CERT_A: | 374 | case SSL3_ST_SW_CERT_A: |
| 375 | case SSL3_ST_SW_CERT_B: | 375 | case SSL3_ST_SW_CERT_B: |
| 376 | /* Check if it is anon DH or anon ECDH, */ | 376 | /* Check if it is anon DH or anon ECDH. */ |
| 377 | /* normal PSK or KRB5 or SRP */ | 377 | if (!(s->s3->tmp.new_cipher->algorithm_auth & |
| 378 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL) | 378 | SSL_aNULL)) { |
| 379 | && !(s->s3->tmp.new_cipher->algorithm_mkey & | ||
| 380 | SSL_kPSK) | ||
| 381 | && !(s->s3->tmp.new_cipher->algorithm_auth & | ||
| 382 | SSL_aKRB5)) { | ||
| 383 | ret = ssl3_send_server_certificate(s); | 379 | ret = ssl3_send_server_certificate(s); |
| 384 | if (ret <= 0) | 380 | if (ret <= 0) |
| 385 | goto end; | 381 | goto end; |
| @@ -417,10 +413,7 @@ ssl3_accept(SSL *s) | |||
| 417 | 413 | ||
| 418 | /* | 414 | /* |
| 419 | * Only send if a DH key exchange, fortezza or | 415 | * Only send if a DH key exchange, fortezza or |
| 420 | * RSA but we have a sign only certificate | 416 | * RSA but we have a sign only certificate. |
| 421 | * | ||
| 422 | * PSK: send ServerKeyExchange if PSK identity | ||
| 423 | * hint is provided | ||
| 424 | * | 417 | * |
| 425 | * For ECC ciphersuites, we send a serverKeyExchange | 418 | * For ECC ciphersuites, we send a serverKeyExchange |
| 426 | * message only if the cipher suite is either | 419 | * message only if the cipher suite is either |
| @@ -428,13 +421,12 @@ ssl3_accept(SSL *s) | |||
| 428 | * server certificate contains the server's | 421 | * server certificate contains the server's |
| 429 | * public key for key exchange. | 422 | * public key for key exchange. |
| 430 | */ | 423 | */ |
| 431 | if (s->s3->tmp.use_rsa_tmp | 424 | if (s->s3->tmp.use_rsa_tmp || |
| 432 | || (alg_k & (SSL_kDHr|SSL_kDHd|SSL_kEDH)) | 425 | (alg_k & (SSL_kDHr|SSL_kDHd|SSL_kEDH)) || |
| 433 | || (alg_k & SSL_kEECDH) | 426 | (alg_k & SSL_kEECDH) || |
| 434 | || ((alg_k & SSL_kRSA) | 427 | ((alg_k & SSL_kRSA) && |
| 435 | && (s->cert->pkeys[SSL_PKEY_RSA_ENC].privatekey == | 428 | (s->cert->pkeys[SSL_PKEY_RSA_ENC].privatekey == |
| 436 | NULL | 429 | NULL))) { |
| 437 | ))) { | ||
| 438 | ret = ssl3_send_server_key_exchange(s); | 430 | ret = ssl3_send_server_key_exchange(s); |
| 439 | if (ret <= 0) | 431 | if (ret <= 0) |
| 440 | goto end; | 432 | goto end; |
| @@ -463,22 +455,13 @@ ssl3_accept(SSL *s) | |||
| 463 | * and in RFC 2246) ... except when the application | 455 | * and in RFC 2246) ... except when the application |
| 464 | * insists on verification (against the specs, but | 456 | * insists on verification (against the specs, but |
| 465 | * s3_clnt.c accepts this for SSL 3). | 457 | * s3_clnt.c accepts this for SSL 3). |
| 466 | * | ||
| 467 | * - We are using a Kerberos ciphersuite. | ||
| 468 | * | ||
| 469 | * - We are using normal PSK certificates and | ||
| 470 | * Certificate Requests are omitted | ||
| 471 | */ | 458 | */ |
| 472 | if (!(s->verify_mode & SSL_VERIFY_PEER) || | 459 | if (!(s->verify_mode & SSL_VERIFY_PEER) || |
| 473 | ((s->session->peer != NULL) && | 460 | ((s->session->peer != NULL) && |
| 474 | (s->verify_mode & SSL_VERIFY_CLIENT_ONCE)) || | 461 | (s->verify_mode & SSL_VERIFY_CLIENT_ONCE)) || |
| 475 | ((s->s3->tmp.new_cipher->algorithm_auth & | 462 | ((s->s3->tmp.new_cipher->algorithm_auth & |
| 476 | SSL_aNULL) && !(s->verify_mode & | 463 | SSL_aNULL) && !(s->verify_mode & |
| 477 | SSL_VERIFY_FAIL_IF_NO_PEER_CERT)) || | 464 | SSL_VERIFY_FAIL_IF_NO_PEER_CERT))) { |
| 478 | (s->s3->tmp.new_cipher->algorithm_auth & | ||
| 479 | SSL_aKRB5) || | ||
| 480 | (s->s3->tmp.new_cipher->algorithm_mkey & | ||
| 481 | SSL_kPSK)) { | ||
| 482 | /* No cert request */ | 465 | /* No cert request */ |
| 483 | skip = 1; | 466 | skip = 1; |
| 484 | s->s3->tmp.cert_request = 0; | 467 | s->s3->tmp.cert_request = 0; |
| @@ -1605,8 +1588,7 @@ ssl3_send_server_key_exchange(SSL *s) | |||
| 1605 | n += 2 + nr[i]; | 1588 | n += 2 + nr[i]; |
| 1606 | } | 1589 | } |
| 1607 | 1590 | ||
| 1608 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL) && | 1591 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL)) { |
| 1609 | !(s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK)) { | ||
| 1610 | if ((pkey = ssl_get_sign_pkey( | 1592 | if ((pkey = ssl_get_sign_pkey( |
| 1611 | s, s->s3->tmp.new_cipher, &md)) == NULL) { | 1593 | s, s->s3->tmp.new_cipher, &md)) == NULL) { |
| 1612 | al = SSL_AD_DECODE_ERROR; | 1594 | al = SSL_AD_DECODE_ERROR; |
| @@ -2681,15 +2663,9 @@ ssl3_send_server_certificate(SSL *s) | |||
| 2681 | if (s->state == SSL3_ST_SW_CERT_A) { | 2663 | if (s->state == SSL3_ST_SW_CERT_A) { |
| 2682 | x = ssl_get_server_send_cert(s); | 2664 | x = ssl_get_server_send_cert(s); |
| 2683 | if (x == NULL) { | 2665 | if (x == NULL) { |
| 2684 | /* VRS: allow null cert if auth == KRB5 */ | 2666 | SSLerr(SSL_F_SSL3_SEND_SERVER_CERTIFICATE, |
| 2685 | if ((s->s3->tmp.new_cipher->algorithm_auth != | 2667 | ERR_R_INTERNAL_ERROR); |
| 2686 | SSL_aKRB5) || | 2668 | return (0); |
| 2687 | (s->s3->tmp.new_cipher->algorithm_mkey & | ||
| 2688 | SSL_kKRB5)) { | ||
| 2689 | SSLerr(SSL_F_SSL3_SEND_SERVER_CERTIFICATE, | ||
| 2690 | ERR_R_INTERNAL_ERROR); | ||
| 2691 | return (0); | ||
| 2692 | } | ||
| 2693 | } | 2669 | } |
| 2694 | 2670 | ||
| 2695 | l = ssl3_output_cert_chain(s, x); | 2671 | l = ssl3_output_cert_chain(s, x); |
diff --git a/src/lib/libssl/src/ssl/d1_clnt.c b/src/lib/libssl/src/ssl/d1_clnt.c index b85908c733..004fd6e04f 100644 --- a/src/lib/libssl/src/ssl/d1_clnt.c +++ b/src/lib/libssl/src/ssl/d1_clnt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: d1_clnt.c,v 1.29 2014/07/11 22:57:25 miod Exp $ */ | 1 | /* $OpenBSD: d1_clnt.c,v 1.30 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
| 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
| @@ -395,9 +395,9 @@ dtls1_connect(SSL *s) | |||
| 395 | s->init_num = 0; | 395 | s->init_num = 0; |
| 396 | break; | 396 | break; |
| 397 | } | 397 | } |
| 398 | /* Check if it is anon DH or PSK */ | 398 | /* Check if it is anon DH. */ |
| 399 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL) && | 399 | if (!(s->s3->tmp.new_cipher->algorithm_auth & |
| 400 | !(s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK)) { | 400 | SSL_aNULL)) { |
| 401 | ret = ssl3_get_server_certificate(s); | 401 | ret = ssl3_get_server_certificate(s); |
| 402 | if (ret <= 0) | 402 | if (ret <= 0) |
| 403 | goto end; | 403 | goto end; |
diff --git a/src/lib/libssl/src/ssl/d1_srvr.c b/src/lib/libssl/src/ssl/d1_srvr.c index 8531f2db2b..a94b7ed61b 100644 --- a/src/lib/libssl/src/ssl/d1_srvr.c +++ b/src/lib/libssl/src/ssl/d1_srvr.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: d1_srvr.c,v 1.31 2014/07/12 10:06:04 jsing Exp $ */ | 1 | /* $OpenBSD: d1_srvr.c,v 1.32 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
| 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
| @@ -427,9 +427,9 @@ dtls1_accept(SSL *s) | |||
| 427 | 427 | ||
| 428 | case SSL3_ST_SW_CERT_A: | 428 | case SSL3_ST_SW_CERT_A: |
| 429 | case SSL3_ST_SW_CERT_B: | 429 | case SSL3_ST_SW_CERT_B: |
| 430 | /* Check if it is anon DH or normal PSK */ | 430 | /* Check if it is anon DH. */ |
| 431 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL) && | 431 | if (!(s->s3->tmp.new_cipher->algorithm_auth & |
| 432 | !(s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK)) { | 432 | SSL_aNULL)) { |
| 433 | dtls1_start_timer(s); | 433 | dtls1_start_timer(s); |
| 434 | ret = dtls1_send_server_certificate(s); | 434 | ret = dtls1_send_server_certificate(s); |
| 435 | if (ret <= 0) | 435 | if (ret <= 0) |
| @@ -500,22 +500,13 @@ dtls1_accept(SSL *s) | |||
| 500 | * and in RFC 2246) ... except when the application | 500 | * and in RFC 2246) ... except when the application |
| 501 | * insists on verification (against the specs, but | 501 | * insists on verification (against the specs, but |
| 502 | * s3_clnt.c accepts this for SSL 3). | 502 | * s3_clnt.c accepts this for SSL 3). |
| 503 | * | ||
| 504 | * - We are using a Kerberos ciphersuite. | ||
| 505 | * | ||
| 506 | * - We are using normal PSK certificates and | ||
| 507 | * Certificate Requests are omitted | ||
| 508 | */ | 503 | */ |
| 509 | if (!(s->verify_mode & SSL_VERIFY_PEER) || | 504 | if (!(s->verify_mode & SSL_VERIFY_PEER) || |
| 510 | ((s->session->peer != NULL) && | 505 | ((s->session->peer != NULL) && |
| 511 | (s->verify_mode & SSL_VERIFY_CLIENT_ONCE)) || | 506 | (s->verify_mode & SSL_VERIFY_CLIENT_ONCE)) || |
| 512 | ((s->s3->tmp.new_cipher->algorithm_auth & | 507 | ((s->s3->tmp.new_cipher->algorithm_auth & |
| 513 | SSL_aNULL) && !(s->verify_mode & | 508 | SSL_aNULL) && !(s->verify_mode & |
| 514 | SSL_VERIFY_FAIL_IF_NO_PEER_CERT)) || | 509 | SSL_VERIFY_FAIL_IF_NO_PEER_CERT))) { |
| 515 | (s->s3->tmp.new_cipher->algorithm_auth & | ||
| 516 | SSL_aKRB5) || | ||
| 517 | (s->s3->tmp.new_cipher->algorithm_mkey & | ||
| 518 | SSL_kPSK)) { | ||
| 519 | /* no cert request */ | 510 | /* no cert request */ |
| 520 | skip = 1; | 511 | skip = 1; |
| 521 | s->s3->tmp.cert_request = 0; | 512 | s->s3->tmp.cert_request = 0; |
| @@ -1216,8 +1207,7 @@ dtls1_send_server_key_exchange(SSL *s) | |||
| 1216 | n += 2 + nr[i]; | 1207 | n += 2 + nr[i]; |
| 1217 | } | 1208 | } |
| 1218 | 1209 | ||
| 1219 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL) | 1210 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL)) { |
| 1220 | && !(s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK)) { | ||
| 1221 | if ((pkey = ssl_get_sign_pkey(s, | 1211 | if ((pkey = ssl_get_sign_pkey(s, |
| 1222 | s->s3->tmp.new_cipher, NULL)) == NULL) { | 1212 | s->s3->tmp.new_cipher, NULL)) == NULL) { |
| 1223 | al = SSL_AD_DECODE_ERROR; | 1213 | al = SSL_AD_DECODE_ERROR; |
| @@ -1463,12 +1453,9 @@ dtls1_send_server_certificate(SSL *s) | |||
| 1463 | if (s->state == SSL3_ST_SW_CERT_A) { | 1453 | if (s->state == SSL3_ST_SW_CERT_A) { |
| 1464 | x = ssl_get_server_send_cert(s); | 1454 | x = ssl_get_server_send_cert(s); |
| 1465 | if (x == NULL) { | 1455 | if (x == NULL) { |
| 1466 | /* VRS: allow null cert if auth == KRB5 */ | 1456 | SSLerr(SSL_F_DTLS1_SEND_SERVER_CERTIFICATE, |
| 1467 | if ((s->s3->tmp.new_cipher->algorithm_mkey != SSL_kKRB5) || | 1457 | ERR_R_INTERNAL_ERROR); |
| 1468 | (s->s3->tmp.new_cipher->algorithm_auth != SSL_aKRB5)) { | 1458 | return (0); |
| 1469 | SSLerr(SSL_F_DTLS1_SEND_SERVER_CERTIFICATE, ERR_R_INTERNAL_ERROR); | ||
| 1470 | return (0); | ||
| 1471 | } | ||
| 1472 | } | 1459 | } |
| 1473 | 1460 | ||
| 1474 | l = dtls1_output_cert_chain(s, x); | 1461 | l = dtls1_output_cert_chain(s, x); |
diff --git a/src/lib/libssl/src/ssl/s3_clnt.c b/src/lib/libssl/src/ssl/s3_clnt.c index 884b9f1efb..7d6681b3ac 100644 --- a/src/lib/libssl/src/ssl/s3_clnt.c +++ b/src/lib/libssl/src/ssl/s3_clnt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: s3_clnt.c,v 1.78 2014/07/11 22:57:25 miod Exp $ */ | 1 | /* $OpenBSD: s3_clnt.c,v 1.79 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -339,11 +339,9 @@ ssl3_connect(SSL *s) | |||
| 339 | s->init_num = 0; | 339 | s->init_num = 0; |
| 340 | break; | 340 | break; |
| 341 | } | 341 | } |
| 342 | /* Check if it is anon DH/ECDH or PSK */ | 342 | /* Check if it is anon DH/ECDH. */ |
| 343 | if (!(s->s3->tmp.new_cipher->algorithm_auth & | 343 | if (!(s->s3->tmp.new_cipher->algorithm_auth & |
| 344 | SSL_aNULL) && | 344 | SSL_aNULL)) { |
| 345 | !(s->s3->tmp.new_cipher->algorithm_mkey & | ||
| 346 | SSL_kPSK)) { | ||
| 347 | ret = ssl3_get_server_certificate(s); | 345 | ret = ssl3_get_server_certificate(s); |
| 348 | if (ret <= 0) | 346 | if (ret <= 0) |
| 349 | goto end; | 347 | goto end; |
| @@ -996,7 +994,6 @@ ssl3_get_server_certificate(SSL *s) | |||
| 996 | SESS_CERT *sc; | 994 | SESS_CERT *sc; |
| 997 | EVP_PKEY *pkey = NULL; | 995 | EVP_PKEY *pkey = NULL; |
| 998 | 996 | ||
| 999 | /* VRS: 0=> will allow null cert if auth == KRB5 */ | ||
| 1000 | int need_cert = 1; | 997 | int need_cert = 1; |
| 1001 | 998 | ||
| 1002 | n = s->method->ssl_get_message(s, SSL3_ST_CR_CERT_A, | 999 | n = s->method->ssl_get_message(s, SSL3_ST_CR_CERT_A, |
| @@ -1005,9 +1002,7 @@ ssl3_get_server_certificate(SSL *s) | |||
| 1005 | if (!ok) | 1002 | if (!ok) |
| 1006 | return ((int)n); | 1003 | return ((int)n); |
| 1007 | 1004 | ||
| 1008 | if ((s->s3->tmp.message_type == SSL3_MT_SERVER_KEY_EXCHANGE) || | 1005 | if ((s->s3->tmp.message_type == SSL3_MT_SERVER_KEY_EXCHANGE)) { |
| 1009 | ((s->s3->tmp.new_cipher->algorithm_auth & SSL_aKRB5) && | ||
| 1010 | (s->s3->tmp.message_type == SSL3_MT_SERVER_DONE))) { | ||
| 1011 | s->s3->tmp.reuse_message = 1; | 1006 | s->s3->tmp.reuse_message = 1; |
| 1012 | return (1); | 1007 | return (1); |
| 1013 | } | 1008 | } |
| @@ -1098,12 +1093,6 @@ ssl3_get_server_certificate(SSL *s) | |||
| 1098 | 1093 | ||
| 1099 | pkey = X509_get_pubkey(x); | 1094 | pkey = X509_get_pubkey(x); |
| 1100 | 1095 | ||
| 1101 | /* VRS: allow null cert if auth == KRB5 */ | ||
| 1102 | need_cert = ((s->s3->tmp.new_cipher->algorithm_mkey & SSL_kKRB5) && | ||
| 1103 | (s->s3->tmp.new_cipher->algorithm_auth & SSL_aKRB5)) | ||
| 1104 | ? 0 : 1; | ||
| 1105 | |||
| 1106 | |||
| 1107 | if (need_cert && ((pkey == NULL) || | 1096 | if (need_cert && ((pkey == NULL) || |
| 1108 | EVP_PKEY_missing_parameters(pkey))) { | 1097 | EVP_PKEY_missing_parameters(pkey))) { |
| 1109 | x = NULL; | 1098 | x = NULL; |
| @@ -1553,8 +1542,8 @@ ssl3_get_key_exchange(SSL *s) | |||
| 1553 | } | 1542 | } |
| 1554 | } | 1543 | } |
| 1555 | } else { | 1544 | } else { |
| 1556 | /* aNULL or kPSK do not need public keys */ | 1545 | /* aNULL does not need public keys. */ |
| 1557 | if (!(alg_a & SSL_aNULL) && !(alg_k & SSL_kPSK)) { | 1546 | if (!(alg_a & SSL_aNULL)) { |
| 1558 | SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, | 1547 | SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, |
| 1559 | ERR_R_INTERNAL_ERROR); | 1548 | ERR_R_INTERNAL_ERROR); |
| 1560 | goto err; | 1549 | goto err; |
| @@ -2615,7 +2604,7 @@ ssl3_check_cert_and_algorithm(SSL *s) | |||
| 2615 | alg_a = s->s3->tmp.new_cipher->algorithm_auth; | 2604 | alg_a = s->s3->tmp.new_cipher->algorithm_auth; |
| 2616 | 2605 | ||
| 2617 | /* We don't have a certificate. */ | 2606 | /* We don't have a certificate. */ |
| 2618 | if ((alg_a & (SSL_aDH|SSL_aNULL|SSL_aKRB5)) || (alg_k & SSL_kPSK)) | 2607 | if (alg_a & (SSL_aDH|SSL_aNULL)) |
| 2619 | return (1); | 2608 | return (1); |
| 2620 | 2609 | ||
| 2621 | sc = s->session->sess_cert; | 2610 | sc = s->session->sess_cert; |
diff --git a/src/lib/libssl/src/ssl/s3_pkt.c b/src/lib/libssl/src/ssl/s3_pkt.c index 237d90c581..cbd35ff7e3 100644 --- a/src/lib/libssl/src/ssl/s3_pkt.c +++ b/src/lib/libssl/src/ssl/s3_pkt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: s3_pkt.c,v 1.49 2014/07/10 08:51:14 tedu Exp $ */ | 1 | /* $OpenBSD: s3_pkt.c,v 1.50 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -1134,10 +1134,6 @@ start: | |||
| 1134 | SSL_R_NO_RENEGOTIATION); | 1134 | SSL_R_NO_RENEGOTIATION); |
| 1135 | goto f_err; | 1135 | goto f_err; |
| 1136 | } | 1136 | } |
| 1137 | #ifdef SSL_AD_MISSING_SRP_USERNAME | ||
| 1138 | else if (alert_descr == SSL_AD_MISSING_SRP_USERNAME) | ||
| 1139 | return (0); | ||
| 1140 | #endif | ||
| 1141 | } else if (alert_level == 2) { | 1137 | } else if (alert_level == 2) { |
| 1142 | /* fatal */ | 1138 | /* fatal */ |
| 1143 | s->rwstate = SSL_NOTHING; | 1139 | s->rwstate = SSL_NOTHING; |
diff --git a/src/lib/libssl/src/ssl/s3_srvr.c b/src/lib/libssl/src/ssl/s3_srvr.c index 2d1bee1723..e0a7d78995 100644 --- a/src/lib/libssl/src/ssl/s3_srvr.c +++ b/src/lib/libssl/src/ssl/s3_srvr.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: s3_srvr.c,v 1.76 2014/07/12 10:06:04 jsing Exp $ */ | 1 | /* $OpenBSD: s3_srvr.c,v 1.77 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -373,13 +373,9 @@ ssl3_accept(SSL *s) | |||
| 373 | 373 | ||
| 374 | case SSL3_ST_SW_CERT_A: | 374 | case SSL3_ST_SW_CERT_A: |
| 375 | case SSL3_ST_SW_CERT_B: | 375 | case SSL3_ST_SW_CERT_B: |
| 376 | /* Check if it is anon DH or anon ECDH, */ | 376 | /* Check if it is anon DH or anon ECDH. */ |
| 377 | /* normal PSK or KRB5 or SRP */ | 377 | if (!(s->s3->tmp.new_cipher->algorithm_auth & |
| 378 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL) | 378 | SSL_aNULL)) { |
| 379 | && !(s->s3->tmp.new_cipher->algorithm_mkey & | ||
| 380 | SSL_kPSK) | ||
| 381 | && !(s->s3->tmp.new_cipher->algorithm_auth & | ||
| 382 | SSL_aKRB5)) { | ||
| 383 | ret = ssl3_send_server_certificate(s); | 379 | ret = ssl3_send_server_certificate(s); |
| 384 | if (ret <= 0) | 380 | if (ret <= 0) |
| 385 | goto end; | 381 | goto end; |
| @@ -417,10 +413,7 @@ ssl3_accept(SSL *s) | |||
| 417 | 413 | ||
| 418 | /* | 414 | /* |
| 419 | * Only send if a DH key exchange, fortezza or | 415 | * Only send if a DH key exchange, fortezza or |
| 420 | * RSA but we have a sign only certificate | 416 | * RSA but we have a sign only certificate. |
| 421 | * | ||
| 422 | * PSK: send ServerKeyExchange if PSK identity | ||
| 423 | * hint is provided | ||
| 424 | * | 417 | * |
| 425 | * For ECC ciphersuites, we send a serverKeyExchange | 418 | * For ECC ciphersuites, we send a serverKeyExchange |
| 426 | * message only if the cipher suite is either | 419 | * message only if the cipher suite is either |
| @@ -428,13 +421,12 @@ ssl3_accept(SSL *s) | |||
| 428 | * server certificate contains the server's | 421 | * server certificate contains the server's |
| 429 | * public key for key exchange. | 422 | * public key for key exchange. |
| 430 | */ | 423 | */ |
| 431 | if (s->s3->tmp.use_rsa_tmp | 424 | if (s->s3->tmp.use_rsa_tmp || |
| 432 | || (alg_k & (SSL_kDHr|SSL_kDHd|SSL_kEDH)) | 425 | (alg_k & (SSL_kDHr|SSL_kDHd|SSL_kEDH)) || |
| 433 | || (alg_k & SSL_kEECDH) | 426 | (alg_k & SSL_kEECDH) || |
| 434 | || ((alg_k & SSL_kRSA) | 427 | ((alg_k & SSL_kRSA) && |
| 435 | && (s->cert->pkeys[SSL_PKEY_RSA_ENC].privatekey == | 428 | (s->cert->pkeys[SSL_PKEY_RSA_ENC].privatekey == |
| 436 | NULL | 429 | NULL))) { |
| 437 | ))) { | ||
| 438 | ret = ssl3_send_server_key_exchange(s); | 430 | ret = ssl3_send_server_key_exchange(s); |
| 439 | if (ret <= 0) | 431 | if (ret <= 0) |
| 440 | goto end; | 432 | goto end; |
| @@ -463,22 +455,13 @@ ssl3_accept(SSL *s) | |||
| 463 | * and in RFC 2246) ... except when the application | 455 | * and in RFC 2246) ... except when the application |
| 464 | * insists on verification (against the specs, but | 456 | * insists on verification (against the specs, but |
| 465 | * s3_clnt.c accepts this for SSL 3). | 457 | * s3_clnt.c accepts this for SSL 3). |
| 466 | * | ||
| 467 | * - We are using a Kerberos ciphersuite. | ||
| 468 | * | ||
| 469 | * - We are using normal PSK certificates and | ||
| 470 | * Certificate Requests are omitted | ||
| 471 | */ | 458 | */ |
| 472 | if (!(s->verify_mode & SSL_VERIFY_PEER) || | 459 | if (!(s->verify_mode & SSL_VERIFY_PEER) || |
| 473 | ((s->session->peer != NULL) && | 460 | ((s->session->peer != NULL) && |
| 474 | (s->verify_mode & SSL_VERIFY_CLIENT_ONCE)) || | 461 | (s->verify_mode & SSL_VERIFY_CLIENT_ONCE)) || |
| 475 | ((s->s3->tmp.new_cipher->algorithm_auth & | 462 | ((s->s3->tmp.new_cipher->algorithm_auth & |
| 476 | SSL_aNULL) && !(s->verify_mode & | 463 | SSL_aNULL) && !(s->verify_mode & |
| 477 | SSL_VERIFY_FAIL_IF_NO_PEER_CERT)) || | 464 | SSL_VERIFY_FAIL_IF_NO_PEER_CERT))) { |
| 478 | (s->s3->tmp.new_cipher->algorithm_auth & | ||
| 479 | SSL_aKRB5) || | ||
| 480 | (s->s3->tmp.new_cipher->algorithm_mkey & | ||
| 481 | SSL_kPSK)) { | ||
| 482 | /* No cert request */ | 465 | /* No cert request */ |
| 483 | skip = 1; | 466 | skip = 1; |
| 484 | s->s3->tmp.cert_request = 0; | 467 | s->s3->tmp.cert_request = 0; |
| @@ -1605,8 +1588,7 @@ ssl3_send_server_key_exchange(SSL *s) | |||
| 1605 | n += 2 + nr[i]; | 1588 | n += 2 + nr[i]; |
| 1606 | } | 1589 | } |
| 1607 | 1590 | ||
| 1608 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL) && | 1591 | if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL)) { |
| 1609 | !(s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK)) { | ||
| 1610 | if ((pkey = ssl_get_sign_pkey( | 1592 | if ((pkey = ssl_get_sign_pkey( |
| 1611 | s, s->s3->tmp.new_cipher, &md)) == NULL) { | 1593 | s, s->s3->tmp.new_cipher, &md)) == NULL) { |
| 1612 | al = SSL_AD_DECODE_ERROR; | 1594 | al = SSL_AD_DECODE_ERROR; |
| @@ -2681,15 +2663,9 @@ ssl3_send_server_certificate(SSL *s) | |||
| 2681 | if (s->state == SSL3_ST_SW_CERT_A) { | 2663 | if (s->state == SSL3_ST_SW_CERT_A) { |
| 2682 | x = ssl_get_server_send_cert(s); | 2664 | x = ssl_get_server_send_cert(s); |
| 2683 | if (x == NULL) { | 2665 | if (x == NULL) { |
| 2684 | /* VRS: allow null cert if auth == KRB5 */ | 2666 | SSLerr(SSL_F_SSL3_SEND_SERVER_CERTIFICATE, |
| 2685 | if ((s->s3->tmp.new_cipher->algorithm_auth != | 2667 | ERR_R_INTERNAL_ERROR); |
| 2686 | SSL_aKRB5) || | 2668 | return (0); |
| 2687 | (s->s3->tmp.new_cipher->algorithm_mkey & | ||
| 2688 | SSL_kKRB5)) { | ||
| 2689 | SSLerr(SSL_F_SSL3_SEND_SERVER_CERTIFICATE, | ||
| 2690 | ERR_R_INTERNAL_ERROR); | ||
| 2691 | return (0); | ||
| 2692 | } | ||
| 2693 | } | 2669 | } |
| 2694 | 2670 | ||
| 2695 | l = ssl3_output_cert_chain(s, x); | 2671 | l = ssl3_output_cert_chain(s, x); |
diff --git a/src/lib/libssl/src/ssl/ssl_ciph.c b/src/lib/libssl/src/ssl/ssl_ciph.c index 9df4f8a0c9..a2dec527ca 100644 --- a/src/lib/libssl/src/ssl/ssl_ciph.c +++ b/src/lib/libssl/src/ssl/ssl_ciph.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_ciph.c,v 1.64 2014/07/12 07:52:36 guenther Exp $ */ | 1 | /* $OpenBSD: ssl_ciph.c,v 1.65 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -273,11 +273,6 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
| 273 | }, | 273 | }, |
| 274 | 274 | ||
| 275 | { | 275 | { |
| 276 | .name = SSL_TXT_kKRB5, | ||
| 277 | .algorithm_mkey = SSL_kKRB5, | ||
| 278 | }, | ||
| 279 | |||
| 280 | { | ||
| 281 | .name = SSL_TXT_kECDHr, | 276 | .name = SSL_TXT_kECDHr, |
| 282 | .algorithm_mkey = SSL_kECDHr, | 277 | .algorithm_mkey = SSL_kECDHr, |
| 283 | }, | 278 | }, |
| @@ -299,14 +294,6 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
| 299 | }, | 294 | }, |
| 300 | 295 | ||
| 301 | { | 296 | { |
| 302 | .name = SSL_TXT_kPSK, | ||
| 303 | .algorithm_mkey = SSL_kPSK, | ||
| 304 | }, | ||
| 305 | { | ||
| 306 | .name = SSL_TXT_kSRP, | ||
| 307 | .algorithm_mkey = SSL_kSRP, | ||
| 308 | }, | ||
| 309 | { | ||
| 310 | .name = SSL_TXT_kGOST, | 297 | .name = SSL_TXT_kGOST, |
| 311 | .algorithm_mkey = SSL_kGOST, | 298 | .algorithm_mkey = SSL_kGOST, |
| 312 | }, | 299 | }, |
| @@ -325,10 +312,6 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
| 325 | .algorithm_auth = SSL_aDSS, | 312 | .algorithm_auth = SSL_aDSS, |
| 326 | }, | 313 | }, |
| 327 | { | 314 | { |
| 328 | .name = SSL_TXT_aKRB5, | ||
| 329 | .algorithm_auth = SSL_aKRB5, | ||
| 330 | }, | ||
| 331 | { | ||
| 332 | .name = SSL_TXT_aNULL, | 315 | .name = SSL_TXT_aNULL, |
| 333 | .algorithm_auth = SSL_aNULL, | 316 | .algorithm_auth = SSL_aNULL, |
| 334 | }, | 317 | }, |
| @@ -350,10 +333,6 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
| 350 | .algorithm_auth = SSL_aECDSA, | 333 | .algorithm_auth = SSL_aECDSA, |
| 351 | }, | 334 | }, |
| 352 | { | 335 | { |
| 353 | .name = SSL_TXT_aPSK, | ||
| 354 | .algorithm_auth = SSL_aPSK, | ||
| 355 | }, | ||
| 356 | { | ||
| 357 | .name = SSL_TXT_aGOST94, | 336 | .name = SSL_TXT_aGOST94, |
| 358 | .algorithm_auth = SSL_aGOST94, | 337 | .algorithm_auth = SSL_aGOST94, |
| 359 | }, | 338 | }, |
| @@ -382,11 +361,6 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
| 382 | .algorithm_enc = SSL_eNULL, | 361 | .algorithm_enc = SSL_eNULL, |
| 383 | }, | 362 | }, |
| 384 | { | 363 | { |
| 385 | .name = SSL_TXT_KRB5, | ||
| 386 | .algorithm_mkey = SSL_kKRB5, | ||
| 387 | .algorithm_auth = SSL_aKRB5, | ||
| 388 | }, | ||
| 389 | { | ||
| 390 | .name = SSL_TXT_RSA, | 364 | .name = SSL_TXT_RSA, |
| 391 | .algorithm_mkey = SSL_kRSA, | 365 | .algorithm_mkey = SSL_kRSA, |
| 392 | .algorithm_auth = SSL_aRSA, | 366 | .algorithm_auth = SSL_aRSA, |
| @@ -401,16 +375,7 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
| 401 | .algorithm_mkey = SSL_kEECDH, | 375 | .algorithm_mkey = SSL_kEECDH, |
| 402 | .algorithm_auth = SSL_aNULL, | 376 | .algorithm_auth = SSL_aNULL, |
| 403 | }, | 377 | }, |
| 404 | { | 378 | |
| 405 | .name = SSL_TXT_PSK, | ||
| 406 | .algorithm_mkey = SSL_kPSK, | ||
| 407 | .algorithm_auth = SSL_aPSK, | ||
| 408 | }, | ||
| 409 | { | ||
| 410 | .name = SSL_TXT_SRP, | ||
| 411 | .algorithm_mkey = SSL_kSRP, | ||
| 412 | }, | ||
| 413 | |||
| 414 | /* symmetric encryption aliases */ | 379 | /* symmetric encryption aliases */ |
| 415 | { | 380 | { |
| 416 | .name = SSL_TXT_DES, | 381 | .name = SSL_TXT_DES, |
| @@ -881,11 +846,7 @@ ssl_cipher_get_disabled(unsigned long *mkey, unsigned long *auth, unsigned long | |||
| 881 | 846 | ||
| 882 | *mkey |= SSL_kDHr|SSL_kDHd; /* no such ciphersuites supported! */ | 847 | *mkey |= SSL_kDHr|SSL_kDHd; /* no such ciphersuites supported! */ |
| 883 | *auth |= SSL_aDH; | 848 | *auth |= SSL_aDH; |
| 884 | *mkey |= SSL_kKRB5; | 849 | |
| 885 | *auth |= SSL_aKRB5; | ||
| 886 | *mkey |= SSL_kPSK; | ||
| 887 | *auth |= SSL_aPSK; | ||
| 888 | *mkey |= SSL_kSRP; | ||
| 889 | /* Check for presence of GOST 34.10 algorithms, and if they | 850 | /* Check for presence of GOST 34.10 algorithms, and if they |
| 890 | * do not present, disable appropriate auth and key exchange */ | 851 | * do not present, disable appropriate auth and key exchange */ |
| 891 | if (!get_optional_pkey_id("gost94")) { | 852 | if (!get_optional_pkey_id("gost94")) { |
| @@ -1515,8 +1476,6 @@ ssl_create_cipher_list(const SSL_METHOD *ssl_method, | |||
| 1515 | ssl_cipher_apply_rule(0, 0, SSL_aECDH, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); | 1476 | ssl_cipher_apply_rule(0, 0, SSL_aECDH, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); |
| 1516 | /* ssl_cipher_apply_rule(0, 0, SSL_aDH, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); */ | 1477 | /* ssl_cipher_apply_rule(0, 0, SSL_aDH, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); */ |
| 1517 | ssl_cipher_apply_rule(0, SSL_kRSA, 0, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); | 1478 | ssl_cipher_apply_rule(0, SSL_kRSA, 0, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); |
| 1518 | ssl_cipher_apply_rule(0, SSL_kPSK, 0, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); | ||
| 1519 | ssl_cipher_apply_rule(0, SSL_kKRB5, 0, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); | ||
| 1520 | 1479 | ||
| 1521 | /* RC4 is sort-of broken -- move the the end */ | 1480 | /* RC4 is sort-of broken -- move the the end */ |
| 1522 | ssl_cipher_apply_rule(0, 0, 0, SSL_RC4, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); | 1481 | ssl_cipher_apply_rule(0, 0, 0, SSL_RC4, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); |
| @@ -1650,9 +1609,6 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
| 1650 | case SSL_kDHd: | 1609 | case SSL_kDHd: |
| 1651 | kx = "DH/DSS"; | 1610 | kx = "DH/DSS"; |
| 1652 | break; | 1611 | break; |
| 1653 | case SSL_kKRB5: | ||
| 1654 | kx = "KRB5"; | ||
| 1655 | break; | ||
| 1656 | case SSL_kEDH: | 1612 | case SSL_kEDH: |
| 1657 | kx = "DH"; | 1613 | kx = "DH"; |
| 1658 | break; | 1614 | break; |
| @@ -1665,12 +1621,6 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
| 1665 | case SSL_kEECDH: | 1621 | case SSL_kEECDH: |
| 1666 | kx = "ECDH"; | 1622 | kx = "ECDH"; |
| 1667 | break; | 1623 | break; |
| 1668 | case SSL_kPSK: | ||
| 1669 | kx = "PSK"; | ||
| 1670 | break; | ||
| 1671 | case SSL_kSRP: | ||
| 1672 | kx = "SRP"; | ||
| 1673 | break; | ||
| 1674 | default: | 1624 | default: |
| 1675 | kx = "unknown"; | 1625 | kx = "unknown"; |
| 1676 | } | 1626 | } |
| @@ -1685,9 +1635,6 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
| 1685 | case SSL_aDH: | 1635 | case SSL_aDH: |
| 1686 | au = "DH"; | 1636 | au = "DH"; |
| 1687 | break; | 1637 | break; |
| 1688 | case SSL_aKRB5: | ||
| 1689 | au = "KRB5"; | ||
| 1690 | break; | ||
| 1691 | case SSL_aECDH: | 1638 | case SSL_aECDH: |
| 1692 | au = "ECDH"; | 1639 | au = "ECDH"; |
| 1693 | break; | 1640 | break; |
| @@ -1697,9 +1644,6 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
| 1697 | case SSL_aECDSA: | 1644 | case SSL_aECDSA: |
| 1698 | au = "ECDSA"; | 1645 | au = "ECDSA"; |
| 1699 | break; | 1646 | break; |
| 1700 | case SSL_aPSK: | ||
| 1701 | au = "PSK"; | ||
| 1702 | break; | ||
| 1703 | default: | 1647 | default: |
| 1704 | au = "unknown"; | 1648 | au = "unknown"; |
| 1705 | break; | 1649 | break; |
diff --git a/src/lib/libssl/src/ssl/ssl_lib.c b/src/lib/libssl/src/ssl/ssl_lib.c index c3169204f6..beb8089475 100644 --- a/src/lib/libssl/src/ssl/ssl_lib.c +++ b/src/lib/libssl/src/ssl/ssl_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_lib.c,v 1.74 2014/07/11 09:24:44 beck Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.75 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -2137,9 +2137,6 @@ ssl_get_server_send_pkey(const SSL *s) | |||
| 2137 | i = SSL_PKEY_RSA_SIGN; | 2137 | i = SSL_PKEY_RSA_SIGN; |
| 2138 | else | 2138 | else |
| 2139 | i = SSL_PKEY_RSA_ENC; | 2139 | i = SSL_PKEY_RSA_ENC; |
| 2140 | } else if (alg_a & SSL_aKRB5) { | ||
| 2141 | /* VRS something else here? */ | ||
| 2142 | return (NULL); | ||
| 2143 | } else if (alg_a & SSL_aGOST94) { | 2140 | } else if (alg_a & SSL_aGOST94) { |
| 2144 | i = SSL_PKEY_GOST94; | 2141 | i = SSL_PKEY_GOST94; |
| 2145 | } else if (alg_a & SSL_aGOST01) { | 2142 | } else if (alg_a & SSL_aGOST01) { |
diff --git a/src/lib/libssl/src/ssl/ssl_locl.h b/src/lib/libssl/src/ssl/ssl_locl.h index c1e402b3a1..0d96ee5fe8 100644 --- a/src/lib/libssl/src/ssl/ssl_locl.h +++ b/src/lib/libssl/src/ssl/ssl_locl.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_locl.h,v 1.59 2014/07/11 08:17:36 miod Exp $ */ | 1 | /* $OpenBSD: ssl_locl.h,v 1.60 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -257,13 +257,10 @@ | |||
| 257 | #define SSL_kDHr 0x00000002L /* DH cert, RSA CA cert */ /* no such ciphersuites supported! */ | 257 | #define SSL_kDHr 0x00000002L /* DH cert, RSA CA cert */ /* no such ciphersuites supported! */ |
| 258 | #define SSL_kDHd 0x00000004L /* DH cert, DSA CA cert */ /* no such ciphersuite supported! */ | 258 | #define SSL_kDHd 0x00000004L /* DH cert, DSA CA cert */ /* no such ciphersuite supported! */ |
| 259 | #define SSL_kEDH 0x00000008L /* tmp DH key no DH cert */ | 259 | #define SSL_kEDH 0x00000008L /* tmp DH key no DH cert */ |
| 260 | #define SSL_kKRB5 0x00000010L /* Kerberos5 key exchange */ | ||
| 261 | #define SSL_kECDHr 0x00000020L /* ECDH cert, RSA CA cert */ | 260 | #define SSL_kECDHr 0x00000020L /* ECDH cert, RSA CA cert */ |
| 262 | #define SSL_kECDHe 0x00000040L /* ECDH cert, ECDSA CA cert */ | 261 | #define SSL_kECDHe 0x00000040L /* ECDH cert, ECDSA CA cert */ |
| 263 | #define SSL_kEECDH 0x00000080L /* ephemeral ECDH */ | 262 | #define SSL_kEECDH 0x00000080L /* ephemeral ECDH */ |
| 264 | #define SSL_kPSK 0x00000100L /* PSK */ | 263 | #define SSL_kGOST 0x00000200L /* GOST key exchange */ |
| 265 | #define SSL_kGOST 0x00000200L /* GOST key exchange */ | ||
| 266 | #define SSL_kSRP 0x00000400L /* SRP */ | ||
| 267 | 264 | ||
| 268 | /* Bits for algorithm_auth (server authentication) */ | 265 | /* Bits for algorithm_auth (server authentication) */ |
| 269 | #define SSL_aRSA 0x00000001L /* RSA auth */ | 266 | #define SSL_aRSA 0x00000001L /* RSA auth */ |
| @@ -271,9 +268,7 @@ | |||
| 271 | #define SSL_aNULL 0x00000004L /* no auth (i.e. use ADH or AECDH) */ | 268 | #define SSL_aNULL 0x00000004L /* no auth (i.e. use ADH or AECDH) */ |
| 272 | #define SSL_aDH 0x00000008L /* Fixed DH auth (kDHd or kDHr) */ /* no such ciphersuites supported! */ | 269 | #define SSL_aDH 0x00000008L /* Fixed DH auth (kDHd or kDHr) */ /* no such ciphersuites supported! */ |
| 273 | #define SSL_aECDH 0x00000010L /* Fixed ECDH auth (kECDHe or kECDHr) */ | 270 | #define SSL_aECDH 0x00000010L /* Fixed ECDH auth (kECDHe or kECDHr) */ |
| 274 | #define SSL_aKRB5 0x00000020L /* KRB5 auth */ | ||
| 275 | #define SSL_aECDSA 0x00000040L /* ECDSA auth*/ | 271 | #define SSL_aECDSA 0x00000040L /* ECDSA auth*/ |
| 276 | #define SSL_aPSK 0x00000080L /* PSK auth */ | ||
| 277 | #define SSL_aGOST94 0x00000100L /* GOST R 34.10-94 signature auth */ | 272 | #define SSL_aGOST94 0x00000100L /* GOST R 34.10-94 signature auth */ |
| 278 | #define SSL_aGOST01 0x00000200L /* GOST R 34.10-2001 signature auth */ | 273 | #define SSL_aGOST01 0x00000200L /* GOST R 34.10-2001 signature auth */ |
| 279 | 274 | ||
diff --git a/src/lib/libssl/ssl_ciph.c b/src/lib/libssl/ssl_ciph.c index 9df4f8a0c9..a2dec527ca 100644 --- a/src/lib/libssl/ssl_ciph.c +++ b/src/lib/libssl/ssl_ciph.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_ciph.c,v 1.64 2014/07/12 07:52:36 guenther Exp $ */ | 1 | /* $OpenBSD: ssl_ciph.c,v 1.65 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -273,11 +273,6 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
| 273 | }, | 273 | }, |
| 274 | 274 | ||
| 275 | { | 275 | { |
| 276 | .name = SSL_TXT_kKRB5, | ||
| 277 | .algorithm_mkey = SSL_kKRB5, | ||
| 278 | }, | ||
| 279 | |||
| 280 | { | ||
| 281 | .name = SSL_TXT_kECDHr, | 276 | .name = SSL_TXT_kECDHr, |
| 282 | .algorithm_mkey = SSL_kECDHr, | 277 | .algorithm_mkey = SSL_kECDHr, |
| 283 | }, | 278 | }, |
| @@ -299,14 +294,6 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
| 299 | }, | 294 | }, |
| 300 | 295 | ||
| 301 | { | 296 | { |
| 302 | .name = SSL_TXT_kPSK, | ||
| 303 | .algorithm_mkey = SSL_kPSK, | ||
| 304 | }, | ||
| 305 | { | ||
| 306 | .name = SSL_TXT_kSRP, | ||
| 307 | .algorithm_mkey = SSL_kSRP, | ||
| 308 | }, | ||
| 309 | { | ||
| 310 | .name = SSL_TXT_kGOST, | 297 | .name = SSL_TXT_kGOST, |
| 311 | .algorithm_mkey = SSL_kGOST, | 298 | .algorithm_mkey = SSL_kGOST, |
| 312 | }, | 299 | }, |
| @@ -325,10 +312,6 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
| 325 | .algorithm_auth = SSL_aDSS, | 312 | .algorithm_auth = SSL_aDSS, |
| 326 | }, | 313 | }, |
| 327 | { | 314 | { |
| 328 | .name = SSL_TXT_aKRB5, | ||
| 329 | .algorithm_auth = SSL_aKRB5, | ||
| 330 | }, | ||
| 331 | { | ||
| 332 | .name = SSL_TXT_aNULL, | 315 | .name = SSL_TXT_aNULL, |
| 333 | .algorithm_auth = SSL_aNULL, | 316 | .algorithm_auth = SSL_aNULL, |
| 334 | }, | 317 | }, |
| @@ -350,10 +333,6 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
| 350 | .algorithm_auth = SSL_aECDSA, | 333 | .algorithm_auth = SSL_aECDSA, |
| 351 | }, | 334 | }, |
| 352 | { | 335 | { |
| 353 | .name = SSL_TXT_aPSK, | ||
| 354 | .algorithm_auth = SSL_aPSK, | ||
| 355 | }, | ||
| 356 | { | ||
| 357 | .name = SSL_TXT_aGOST94, | 336 | .name = SSL_TXT_aGOST94, |
| 358 | .algorithm_auth = SSL_aGOST94, | 337 | .algorithm_auth = SSL_aGOST94, |
| 359 | }, | 338 | }, |
| @@ -382,11 +361,6 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
| 382 | .algorithm_enc = SSL_eNULL, | 361 | .algorithm_enc = SSL_eNULL, |
| 383 | }, | 362 | }, |
| 384 | { | 363 | { |
| 385 | .name = SSL_TXT_KRB5, | ||
| 386 | .algorithm_mkey = SSL_kKRB5, | ||
| 387 | .algorithm_auth = SSL_aKRB5, | ||
| 388 | }, | ||
| 389 | { | ||
| 390 | .name = SSL_TXT_RSA, | 364 | .name = SSL_TXT_RSA, |
| 391 | .algorithm_mkey = SSL_kRSA, | 365 | .algorithm_mkey = SSL_kRSA, |
| 392 | .algorithm_auth = SSL_aRSA, | 366 | .algorithm_auth = SSL_aRSA, |
| @@ -401,16 +375,7 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
| 401 | .algorithm_mkey = SSL_kEECDH, | 375 | .algorithm_mkey = SSL_kEECDH, |
| 402 | .algorithm_auth = SSL_aNULL, | 376 | .algorithm_auth = SSL_aNULL, |
| 403 | }, | 377 | }, |
| 404 | { | 378 | |
| 405 | .name = SSL_TXT_PSK, | ||
| 406 | .algorithm_mkey = SSL_kPSK, | ||
| 407 | .algorithm_auth = SSL_aPSK, | ||
| 408 | }, | ||
| 409 | { | ||
| 410 | .name = SSL_TXT_SRP, | ||
| 411 | .algorithm_mkey = SSL_kSRP, | ||
| 412 | }, | ||
| 413 | |||
| 414 | /* symmetric encryption aliases */ | 379 | /* symmetric encryption aliases */ |
| 415 | { | 380 | { |
| 416 | .name = SSL_TXT_DES, | 381 | .name = SSL_TXT_DES, |
| @@ -881,11 +846,7 @@ ssl_cipher_get_disabled(unsigned long *mkey, unsigned long *auth, unsigned long | |||
| 881 | 846 | ||
| 882 | *mkey |= SSL_kDHr|SSL_kDHd; /* no such ciphersuites supported! */ | 847 | *mkey |= SSL_kDHr|SSL_kDHd; /* no such ciphersuites supported! */ |
| 883 | *auth |= SSL_aDH; | 848 | *auth |= SSL_aDH; |
| 884 | *mkey |= SSL_kKRB5; | 849 | |
| 885 | *auth |= SSL_aKRB5; | ||
| 886 | *mkey |= SSL_kPSK; | ||
| 887 | *auth |= SSL_aPSK; | ||
| 888 | *mkey |= SSL_kSRP; | ||
| 889 | /* Check for presence of GOST 34.10 algorithms, and if they | 850 | /* Check for presence of GOST 34.10 algorithms, and if they |
| 890 | * do not present, disable appropriate auth and key exchange */ | 851 | * do not present, disable appropriate auth and key exchange */ |
| 891 | if (!get_optional_pkey_id("gost94")) { | 852 | if (!get_optional_pkey_id("gost94")) { |
| @@ -1515,8 +1476,6 @@ ssl_create_cipher_list(const SSL_METHOD *ssl_method, | |||
| 1515 | ssl_cipher_apply_rule(0, 0, SSL_aECDH, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); | 1476 | ssl_cipher_apply_rule(0, 0, SSL_aECDH, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); |
| 1516 | /* ssl_cipher_apply_rule(0, 0, SSL_aDH, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); */ | 1477 | /* ssl_cipher_apply_rule(0, 0, SSL_aDH, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); */ |
| 1517 | ssl_cipher_apply_rule(0, SSL_kRSA, 0, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); | 1478 | ssl_cipher_apply_rule(0, SSL_kRSA, 0, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); |
| 1518 | ssl_cipher_apply_rule(0, SSL_kPSK, 0, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); | ||
| 1519 | ssl_cipher_apply_rule(0, SSL_kKRB5, 0, 0, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); | ||
| 1520 | 1479 | ||
| 1521 | /* RC4 is sort-of broken -- move the the end */ | 1480 | /* RC4 is sort-of broken -- move the the end */ |
| 1522 | ssl_cipher_apply_rule(0, 0, 0, SSL_RC4, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); | 1481 | ssl_cipher_apply_rule(0, 0, 0, SSL_RC4, 0, 0, 0, CIPHER_ORD, -1, &head, &tail); |
| @@ -1650,9 +1609,6 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
| 1650 | case SSL_kDHd: | 1609 | case SSL_kDHd: |
| 1651 | kx = "DH/DSS"; | 1610 | kx = "DH/DSS"; |
| 1652 | break; | 1611 | break; |
| 1653 | case SSL_kKRB5: | ||
| 1654 | kx = "KRB5"; | ||
| 1655 | break; | ||
| 1656 | case SSL_kEDH: | 1612 | case SSL_kEDH: |
| 1657 | kx = "DH"; | 1613 | kx = "DH"; |
| 1658 | break; | 1614 | break; |
| @@ -1665,12 +1621,6 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
| 1665 | case SSL_kEECDH: | 1621 | case SSL_kEECDH: |
| 1666 | kx = "ECDH"; | 1622 | kx = "ECDH"; |
| 1667 | break; | 1623 | break; |
| 1668 | case SSL_kPSK: | ||
| 1669 | kx = "PSK"; | ||
| 1670 | break; | ||
| 1671 | case SSL_kSRP: | ||
| 1672 | kx = "SRP"; | ||
| 1673 | break; | ||
| 1674 | default: | 1624 | default: |
| 1675 | kx = "unknown"; | 1625 | kx = "unknown"; |
| 1676 | } | 1626 | } |
| @@ -1685,9 +1635,6 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
| 1685 | case SSL_aDH: | 1635 | case SSL_aDH: |
| 1686 | au = "DH"; | 1636 | au = "DH"; |
| 1687 | break; | 1637 | break; |
| 1688 | case SSL_aKRB5: | ||
| 1689 | au = "KRB5"; | ||
| 1690 | break; | ||
| 1691 | case SSL_aECDH: | 1638 | case SSL_aECDH: |
| 1692 | au = "ECDH"; | 1639 | au = "ECDH"; |
| 1693 | break; | 1640 | break; |
| @@ -1697,9 +1644,6 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
| 1697 | case SSL_aECDSA: | 1644 | case SSL_aECDSA: |
| 1698 | au = "ECDSA"; | 1645 | au = "ECDSA"; |
| 1699 | break; | 1646 | break; |
| 1700 | case SSL_aPSK: | ||
| 1701 | au = "PSK"; | ||
| 1702 | break; | ||
| 1703 | default: | 1647 | default: |
| 1704 | au = "unknown"; | 1648 | au = "unknown"; |
| 1705 | break; | 1649 | break; |
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index c3169204f6..beb8089475 100644 --- a/src/lib/libssl/ssl_lib.c +++ b/src/lib/libssl/ssl_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_lib.c,v 1.74 2014/07/11 09:24:44 beck Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.75 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -2137,9 +2137,6 @@ ssl_get_server_send_pkey(const SSL *s) | |||
| 2137 | i = SSL_PKEY_RSA_SIGN; | 2137 | i = SSL_PKEY_RSA_SIGN; |
| 2138 | else | 2138 | else |
| 2139 | i = SSL_PKEY_RSA_ENC; | 2139 | i = SSL_PKEY_RSA_ENC; |
| 2140 | } else if (alg_a & SSL_aKRB5) { | ||
| 2141 | /* VRS something else here? */ | ||
| 2142 | return (NULL); | ||
| 2143 | } else if (alg_a & SSL_aGOST94) { | 2140 | } else if (alg_a & SSL_aGOST94) { |
| 2144 | i = SSL_PKEY_GOST94; | 2141 | i = SSL_PKEY_GOST94; |
| 2145 | } else if (alg_a & SSL_aGOST01) { | 2142 | } else if (alg_a & SSL_aGOST01) { |
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h index c1e402b3a1..0d96ee5fe8 100644 --- a/src/lib/libssl/ssl_locl.h +++ b/src/lib/libssl/ssl_locl.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_locl.h,v 1.59 2014/07/11 08:17:36 miod Exp $ */ | 1 | /* $OpenBSD: ssl_locl.h,v 1.60 2014/07/12 13:11:53 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -257,13 +257,10 @@ | |||
| 257 | #define SSL_kDHr 0x00000002L /* DH cert, RSA CA cert */ /* no such ciphersuites supported! */ | 257 | #define SSL_kDHr 0x00000002L /* DH cert, RSA CA cert */ /* no such ciphersuites supported! */ |
| 258 | #define SSL_kDHd 0x00000004L /* DH cert, DSA CA cert */ /* no such ciphersuite supported! */ | 258 | #define SSL_kDHd 0x00000004L /* DH cert, DSA CA cert */ /* no such ciphersuite supported! */ |
| 259 | #define SSL_kEDH 0x00000008L /* tmp DH key no DH cert */ | 259 | #define SSL_kEDH 0x00000008L /* tmp DH key no DH cert */ |
| 260 | #define SSL_kKRB5 0x00000010L /* Kerberos5 key exchange */ | ||
| 261 | #define SSL_kECDHr 0x00000020L /* ECDH cert, RSA CA cert */ | 260 | #define SSL_kECDHr 0x00000020L /* ECDH cert, RSA CA cert */ |
| 262 | #define SSL_kECDHe 0x00000040L /* ECDH cert, ECDSA CA cert */ | 261 | #define SSL_kECDHe 0x00000040L /* ECDH cert, ECDSA CA cert */ |
| 263 | #define SSL_kEECDH 0x00000080L /* ephemeral ECDH */ | 262 | #define SSL_kEECDH 0x00000080L /* ephemeral ECDH */ |
| 264 | #define SSL_kPSK 0x00000100L /* PSK */ | 263 | #define SSL_kGOST 0x00000200L /* GOST key exchange */ |
| 265 | #define SSL_kGOST 0x00000200L /* GOST key exchange */ | ||
| 266 | #define SSL_kSRP 0x00000400L /* SRP */ | ||
| 267 | 264 | ||
| 268 | /* Bits for algorithm_auth (server authentication) */ | 265 | /* Bits for algorithm_auth (server authentication) */ |
| 269 | #define SSL_aRSA 0x00000001L /* RSA auth */ | 266 | #define SSL_aRSA 0x00000001L /* RSA auth */ |
| @@ -271,9 +268,7 @@ | |||
| 271 | #define SSL_aNULL 0x00000004L /* no auth (i.e. use ADH or AECDH) */ | 268 | #define SSL_aNULL 0x00000004L /* no auth (i.e. use ADH or AECDH) */ |
| 272 | #define SSL_aDH 0x00000008L /* Fixed DH auth (kDHd or kDHr) */ /* no such ciphersuites supported! */ | 269 | #define SSL_aDH 0x00000008L /* Fixed DH auth (kDHd or kDHr) */ /* no such ciphersuites supported! */ |
| 273 | #define SSL_aECDH 0x00000010L /* Fixed ECDH auth (kECDHe or kECDHr) */ | 270 | #define SSL_aECDH 0x00000010L /* Fixed ECDH auth (kECDHe or kECDHr) */ |
| 274 | #define SSL_aKRB5 0x00000020L /* KRB5 auth */ | ||
| 275 | #define SSL_aECDSA 0x00000040L /* ECDSA auth*/ | 271 | #define SSL_aECDSA 0x00000040L /* ECDSA auth*/ |
| 276 | #define SSL_aPSK 0x00000080L /* PSK auth */ | ||
| 277 | #define SSL_aGOST94 0x00000100L /* GOST R 34.10-94 signature auth */ | 272 | #define SSL_aGOST94 0x00000100L /* GOST R 34.10-94 signature auth */ |
| 278 | #define SSL_aGOST01 0x00000200L /* GOST R 34.10-2001 signature auth */ | 273 | #define SSL_aGOST01 0x00000200L /* GOST R 34.10-2001 signature auth */ |
| 279 | 274 | ||
