diff options
author | markus <> | 2002-07-30 16:00:16 +0000 |
---|---|---|
committer | markus <> | 2002-07-30 16:00:16 +0000 |
commit | b16c13ed2fd774b1e93a0165b809fda9376b3fc4 (patch) | |
tree | 5cd7e8e3dd15c5a8b25bce74c5b82182b5081b19 | |
parent | c54a116b266c232d9e0ffad482eb5f8b98130ac4 (diff) | |
download | openbsd-b16c13ed2fd774b1e93a0165b809fda9376b3fc4.tar.gz openbsd-b16c13ed2fd774b1e93a0165b809fda9376b3fc4.tar.bz2 openbsd-b16c13ed2fd774b1e93a0165b809fda9376b3fc4.zip |
sync with http://www.openssl.org/news/patch_20020730_0_9_7.txt
(adds fix for unused kerberos and engine code, and some more
assertions, as well as a 64bit integer string fix for conf_mod.c)
-rw-r--r-- | src/lib/libcrypto/conf/conf_mod.c | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/engine/hw_cswift.c | 16 | ||||
-rw-r--r-- | src/lib/libssl/s3_clnt.c | 1 | ||||
-rw-r--r-- | src/lib/libssl/s3_srvr.c | 18 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/conf/conf_mod.c | 2 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/engine/hw_cswift.c | 16 | ||||
-rw-r--r-- | src/lib/libssl/src/ssl/s3_clnt.c | 1 | ||||
-rw-r--r-- | src/lib/libssl/src/ssl/s3_srvr.c | 18 |
8 files changed, 48 insertions, 26 deletions
diff --git a/src/lib/libcrypto/conf/conf_mod.c b/src/lib/libcrypto/conf/conf_mod.c index f92babc2e2..edcc08921c 100644 --- a/src/lib/libcrypto/conf/conf_mod.c +++ b/src/lib/libcrypto/conf/conf_mod.c | |||
@@ -230,7 +230,7 @@ static int module_run(const CONF *cnf, char *name, char *value, | |||
230 | { | 230 | { |
231 | if (!(flags & CONF_MFLAGS_SILENT)) | 231 | if (!(flags & CONF_MFLAGS_SILENT)) |
232 | { | 232 | { |
233 | char rcode[10]; | 233 | char rcode[DECIMAL_SIZE(ret)+1]; |
234 | CONFerr(CONF_F_CONF_MODULES_LOAD, CONF_R_MODULE_INITIALIZATION_ERROR); | 234 | CONFerr(CONF_F_CONF_MODULES_LOAD, CONF_R_MODULE_INITIALIZATION_ERROR); |
235 | sprintf(rcode, "%-8d", ret); | 235 | sprintf(rcode, "%-8d", ret); |
236 | ERR_add_error_data(6, "module=", name, ", value=", value, ", retcode=", rcode); | 236 | ERR_add_error_data(6, "module=", name, ", value=", value, ", retcode=", rcode); |
diff --git a/src/lib/libcrypto/engine/hw_cswift.c b/src/lib/libcrypto/engine/hw_cswift.c index d8b380550f..da732abce0 100644 --- a/src/lib/libcrypto/engine/hw_cswift.c +++ b/src/lib/libcrypto/engine/hw_cswift.c | |||
@@ -484,7 +484,7 @@ static int cswift_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | |||
484 | goto err; | 484 | goto err; |
485 | default: | 485 | default: |
486 | { | 486 | { |
487 | char tmpbuf[20]; | 487 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
488 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP,CSWIFT_R_REQUEST_FAILED); | 488 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP,CSWIFT_R_REQUEST_FAILED); |
489 | sprintf(tmpbuf, "%ld", sw_status); | 489 | sprintf(tmpbuf, "%ld", sw_status); |
490 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 490 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -501,7 +501,7 @@ static int cswift_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | |||
501 | if((sw_status = p_CSwift_SimpleRequest(hac, SW_CMD_MODEXP, &arg, 1, | 501 | if((sw_status = p_CSwift_SimpleRequest(hac, SW_CMD_MODEXP, &arg, 1, |
502 | &res, 1)) != SW_OK) | 502 | &res, 1)) != SW_OK) |
503 | { | 503 | { |
504 | char tmpbuf[20]; | 504 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
505 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP,CSWIFT_R_REQUEST_FAILED); | 505 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP,CSWIFT_R_REQUEST_FAILED); |
506 | sprintf(tmpbuf, "%ld", sw_status); | 506 | sprintf(tmpbuf, "%ld", sw_status); |
507 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 507 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -591,7 +591,7 @@ static int cswift_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | |||
591 | goto err; | 591 | goto err; |
592 | default: | 592 | default: |
593 | { | 593 | { |
594 | char tmpbuf[20]; | 594 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
595 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_REQUEST_FAILED); | 595 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_REQUEST_FAILED); |
596 | sprintf(tmpbuf, "%ld", sw_status); | 596 | sprintf(tmpbuf, "%ld", sw_status); |
597 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 597 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -608,7 +608,7 @@ static int cswift_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | |||
608 | if((sw_status = p_CSwift_SimpleRequest(hac, SW_CMD_MODEXP_CRT, &arg, 1, | 608 | if((sw_status = p_CSwift_SimpleRequest(hac, SW_CMD_MODEXP_CRT, &arg, 1, |
609 | &res, 1)) != SW_OK) | 609 | &res, 1)) != SW_OK) |
610 | { | 610 | { |
611 | char tmpbuf[20]; | 611 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
612 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_REQUEST_FAILED); | 612 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_REQUEST_FAILED); |
613 | sprintf(tmpbuf, "%ld", sw_status); | 613 | sprintf(tmpbuf, "%ld", sw_status); |
614 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 614 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -723,7 +723,7 @@ static DSA_SIG *cswift_dsa_sign(const unsigned char *dgst, int dlen, DSA *dsa) | |||
723 | goto err; | 723 | goto err; |
724 | default: | 724 | default: |
725 | { | 725 | { |
726 | char tmpbuf[20]; | 726 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
727 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_SIGN,CSWIFT_R_REQUEST_FAILED); | 727 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_SIGN,CSWIFT_R_REQUEST_FAILED); |
728 | sprintf(tmpbuf, "%ld", sw_status); | 728 | sprintf(tmpbuf, "%ld", sw_status); |
729 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 729 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -741,7 +741,7 @@ static DSA_SIG *cswift_dsa_sign(const unsigned char *dgst, int dlen, DSA *dsa) | |||
741 | &res, 1); | 741 | &res, 1); |
742 | if(sw_status != SW_OK) | 742 | if(sw_status != SW_OK) |
743 | { | 743 | { |
744 | char tmpbuf[20]; | 744 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
745 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_SIGN,CSWIFT_R_REQUEST_FAILED); | 745 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_SIGN,CSWIFT_R_REQUEST_FAILED); |
746 | sprintf(tmpbuf, "%ld", sw_status); | 746 | sprintf(tmpbuf, "%ld", sw_status); |
747 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 747 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -835,7 +835,7 @@ static int cswift_dsa_verify(const unsigned char *dgst, int dgst_len, | |||
835 | goto err; | 835 | goto err; |
836 | default: | 836 | default: |
837 | { | 837 | { |
838 | char tmpbuf[20]; | 838 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
839 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_VERIFY,CSWIFT_R_REQUEST_FAILED); | 839 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_VERIFY,CSWIFT_R_REQUEST_FAILED); |
840 | sprintf(tmpbuf, "%ld", sw_status); | 840 | sprintf(tmpbuf, "%ld", sw_status); |
841 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 841 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -857,7 +857,7 @@ static int cswift_dsa_verify(const unsigned char *dgst, int dgst_len, | |||
857 | &res, 1); | 857 | &res, 1); |
858 | if(sw_status != SW_OK) | 858 | if(sw_status != SW_OK) |
859 | { | 859 | { |
860 | char tmpbuf[20]; | 860 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
861 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_VERIFY,CSWIFT_R_REQUEST_FAILED); | 861 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_VERIFY,CSWIFT_R_REQUEST_FAILED); |
862 | sprintf(tmpbuf, "%ld", sw_status); | 862 | sprintf(tmpbuf, "%ld", sw_status); |
863 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 863 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
diff --git a/src/lib/libssl/s3_clnt.c b/src/lib/libssl/s3_clnt.c index b6be748932..5d3efac2cd 100644 --- a/src/lib/libssl/s3_clnt.c +++ b/src/lib/libssl/s3_clnt.c | |||
@@ -1597,6 +1597,7 @@ static int ssl3_send_client_key_exchange(SSL *s) | |||
1597 | SSL_MAX_MASTER_KEY_LENGTH); | 1597 | SSL_MAX_MASTER_KEY_LENGTH); |
1598 | EVP_EncryptFinal_ex(&ciph_ctx,&(epms[outl]),&padl); | 1598 | EVP_EncryptFinal_ex(&ciph_ctx,&(epms[outl]),&padl); |
1599 | outl += padl; | 1599 | outl += padl; |
1600 | die(outl <= sizeof epms); | ||
1600 | EVP_CIPHER_CTX_cleanup(&ciph_ctx); | 1601 | EVP_CIPHER_CTX_cleanup(&ciph_ctx); |
1601 | 1602 | ||
1602 | /* KerberosWrapper.EncryptedPreMasterSecret */ | 1603 | /* KerberosWrapper.EncryptedPreMasterSecret */ |
diff --git a/src/lib/libssl/s3_srvr.c b/src/lib/libssl/s3_srvr.c index 3748cd7c24..f03c290a3e 100644 --- a/src/lib/libssl/s3_srvr.c +++ b/src/lib/libssl/s3_srvr.c | |||
@@ -114,14 +114,14 @@ | |||
114 | 114 | ||
115 | 115 | ||
116 | #include <stdio.h> | 116 | #include <stdio.h> |
117 | #include "ssl_locl.h" | ||
118 | #include "kssl_lcl.h" | ||
117 | #include <openssl/buffer.h> | 119 | #include <openssl/buffer.h> |
118 | #include <openssl/rand.h> | 120 | #include <openssl/rand.h> |
119 | #include <openssl/objects.h> | 121 | #include <openssl/objects.h> |
120 | #include <openssl/evp.h> | 122 | #include <openssl/evp.h> |
121 | #include <openssl/x509.h> | 123 | #include <openssl/x509.h> |
122 | #include <openssl/krb5_asn.h> | 124 | #include <openssl/krb5_asn.h> |
123 | #include "ssl_locl.h" | ||
124 | #include "kssl_lcl.h" | ||
125 | #include <openssl/md5.h> | 125 | #include <openssl/md5.h> |
126 | 126 | ||
127 | static SSL_METHOD *ssl3_get_server_method(int ver); | 127 | static SSL_METHOD *ssl3_get_server_method(int ver); |
@@ -1560,8 +1560,8 @@ static int ssl3_get_client_key_exchange(SSL *s) | |||
1560 | EVP_CIPHER *enc = NULL; | 1560 | EVP_CIPHER *enc = NULL; |
1561 | unsigned char iv[EVP_MAX_IV_LENGTH]; | 1561 | unsigned char iv[EVP_MAX_IV_LENGTH]; |
1562 | unsigned char pms[SSL_MAX_MASTER_KEY_LENGTH | 1562 | unsigned char pms[SSL_MAX_MASTER_KEY_LENGTH |
1563 | + EVP_MAX_IV_LENGTH + 1]; | 1563 | + EVP_MAX_BLOCK_LENGTH]; |
1564 | int padl, outl = sizeof(pms); | 1564 | int padl, outl; |
1565 | krb5_timestamp authtime = 0; | 1565 | krb5_timestamp authtime = 0; |
1566 | krb5_ticket_times ttimes; | 1566 | krb5_ticket_times ttimes; |
1567 | 1567 | ||
@@ -1584,6 +1584,16 @@ static int ssl3_get_client_key_exchange(SSL *s) | |||
1584 | enc_pms.data = (char *)p; | 1584 | enc_pms.data = (char *)p; |
1585 | p+=enc_pms.length; | 1585 | p+=enc_pms.length; |
1586 | 1586 | ||
1587 | /* Note that the length is checked again below, | ||
1588 | ** after decryption | ||
1589 | */ | ||
1590 | if(enc_pms.length > sizeof pms) | ||
1591 | { | ||
1592 | SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, | ||
1593 | SSL_R_DATA_LENGTH_TOO_LONG); | ||
1594 | goto err; | ||
1595 | } | ||
1596 | |||
1587 | if (n != enc_ticket.length + authenticator.length + | 1597 | if (n != enc_ticket.length + authenticator.length + |
1588 | enc_pms.length + 6) | 1598 | enc_pms.length + 6) |
1589 | { | 1599 | { |
diff --git a/src/lib/libssl/src/crypto/conf/conf_mod.c b/src/lib/libssl/src/crypto/conf/conf_mod.c index f92babc2e2..edcc08921c 100644 --- a/src/lib/libssl/src/crypto/conf/conf_mod.c +++ b/src/lib/libssl/src/crypto/conf/conf_mod.c | |||
@@ -230,7 +230,7 @@ static int module_run(const CONF *cnf, char *name, char *value, | |||
230 | { | 230 | { |
231 | if (!(flags & CONF_MFLAGS_SILENT)) | 231 | if (!(flags & CONF_MFLAGS_SILENT)) |
232 | { | 232 | { |
233 | char rcode[10]; | 233 | char rcode[DECIMAL_SIZE(ret)+1]; |
234 | CONFerr(CONF_F_CONF_MODULES_LOAD, CONF_R_MODULE_INITIALIZATION_ERROR); | 234 | CONFerr(CONF_F_CONF_MODULES_LOAD, CONF_R_MODULE_INITIALIZATION_ERROR); |
235 | sprintf(rcode, "%-8d", ret); | 235 | sprintf(rcode, "%-8d", ret); |
236 | ERR_add_error_data(6, "module=", name, ", value=", value, ", retcode=", rcode); | 236 | ERR_add_error_data(6, "module=", name, ", value=", value, ", retcode=", rcode); |
diff --git a/src/lib/libssl/src/crypto/engine/hw_cswift.c b/src/lib/libssl/src/crypto/engine/hw_cswift.c index d8b380550f..da732abce0 100644 --- a/src/lib/libssl/src/crypto/engine/hw_cswift.c +++ b/src/lib/libssl/src/crypto/engine/hw_cswift.c | |||
@@ -484,7 +484,7 @@ static int cswift_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | |||
484 | goto err; | 484 | goto err; |
485 | default: | 485 | default: |
486 | { | 486 | { |
487 | char tmpbuf[20]; | 487 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
488 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP,CSWIFT_R_REQUEST_FAILED); | 488 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP,CSWIFT_R_REQUEST_FAILED); |
489 | sprintf(tmpbuf, "%ld", sw_status); | 489 | sprintf(tmpbuf, "%ld", sw_status); |
490 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 490 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -501,7 +501,7 @@ static int cswift_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | |||
501 | if((sw_status = p_CSwift_SimpleRequest(hac, SW_CMD_MODEXP, &arg, 1, | 501 | if((sw_status = p_CSwift_SimpleRequest(hac, SW_CMD_MODEXP, &arg, 1, |
502 | &res, 1)) != SW_OK) | 502 | &res, 1)) != SW_OK) |
503 | { | 503 | { |
504 | char tmpbuf[20]; | 504 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
505 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP,CSWIFT_R_REQUEST_FAILED); | 505 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP,CSWIFT_R_REQUEST_FAILED); |
506 | sprintf(tmpbuf, "%ld", sw_status); | 506 | sprintf(tmpbuf, "%ld", sw_status); |
507 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 507 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -591,7 +591,7 @@ static int cswift_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | |||
591 | goto err; | 591 | goto err; |
592 | default: | 592 | default: |
593 | { | 593 | { |
594 | char tmpbuf[20]; | 594 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
595 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_REQUEST_FAILED); | 595 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_REQUEST_FAILED); |
596 | sprintf(tmpbuf, "%ld", sw_status); | 596 | sprintf(tmpbuf, "%ld", sw_status); |
597 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 597 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -608,7 +608,7 @@ static int cswift_mod_exp_crt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, | |||
608 | if((sw_status = p_CSwift_SimpleRequest(hac, SW_CMD_MODEXP_CRT, &arg, 1, | 608 | if((sw_status = p_CSwift_SimpleRequest(hac, SW_CMD_MODEXP_CRT, &arg, 1, |
609 | &res, 1)) != SW_OK) | 609 | &res, 1)) != SW_OK) |
610 | { | 610 | { |
611 | char tmpbuf[20]; | 611 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
612 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_REQUEST_FAILED); | 612 | CSWIFTerr(CSWIFT_F_CSWIFT_MOD_EXP_CRT,CSWIFT_R_REQUEST_FAILED); |
613 | sprintf(tmpbuf, "%ld", sw_status); | 613 | sprintf(tmpbuf, "%ld", sw_status); |
614 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 614 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -723,7 +723,7 @@ static DSA_SIG *cswift_dsa_sign(const unsigned char *dgst, int dlen, DSA *dsa) | |||
723 | goto err; | 723 | goto err; |
724 | default: | 724 | default: |
725 | { | 725 | { |
726 | char tmpbuf[20]; | 726 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
727 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_SIGN,CSWIFT_R_REQUEST_FAILED); | 727 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_SIGN,CSWIFT_R_REQUEST_FAILED); |
728 | sprintf(tmpbuf, "%ld", sw_status); | 728 | sprintf(tmpbuf, "%ld", sw_status); |
729 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 729 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -741,7 +741,7 @@ static DSA_SIG *cswift_dsa_sign(const unsigned char *dgst, int dlen, DSA *dsa) | |||
741 | &res, 1); | 741 | &res, 1); |
742 | if(sw_status != SW_OK) | 742 | if(sw_status != SW_OK) |
743 | { | 743 | { |
744 | char tmpbuf[20]; | 744 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
745 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_SIGN,CSWIFT_R_REQUEST_FAILED); | 745 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_SIGN,CSWIFT_R_REQUEST_FAILED); |
746 | sprintf(tmpbuf, "%ld", sw_status); | 746 | sprintf(tmpbuf, "%ld", sw_status); |
747 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 747 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -835,7 +835,7 @@ static int cswift_dsa_verify(const unsigned char *dgst, int dgst_len, | |||
835 | goto err; | 835 | goto err; |
836 | default: | 836 | default: |
837 | { | 837 | { |
838 | char tmpbuf[20]; | 838 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
839 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_VERIFY,CSWIFT_R_REQUEST_FAILED); | 839 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_VERIFY,CSWIFT_R_REQUEST_FAILED); |
840 | sprintf(tmpbuf, "%ld", sw_status); | 840 | sprintf(tmpbuf, "%ld", sw_status); |
841 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 841 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
@@ -857,7 +857,7 @@ static int cswift_dsa_verify(const unsigned char *dgst, int dgst_len, | |||
857 | &res, 1); | 857 | &res, 1); |
858 | if(sw_status != SW_OK) | 858 | if(sw_status != SW_OK) |
859 | { | 859 | { |
860 | char tmpbuf[20]; | 860 | char tmpbuf[DECIMAL_SIZE(sw_status)+1]; |
861 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_VERIFY,CSWIFT_R_REQUEST_FAILED); | 861 | CSWIFTerr(CSWIFT_F_CSWIFT_DSA_VERIFY,CSWIFT_R_REQUEST_FAILED); |
862 | sprintf(tmpbuf, "%ld", sw_status); | 862 | sprintf(tmpbuf, "%ld", sw_status); |
863 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); | 863 | ERR_add_error_data(2, "CryptoSwift error number is ",tmpbuf); |
diff --git a/src/lib/libssl/src/ssl/s3_clnt.c b/src/lib/libssl/src/ssl/s3_clnt.c index b6be748932..5d3efac2cd 100644 --- a/src/lib/libssl/src/ssl/s3_clnt.c +++ b/src/lib/libssl/src/ssl/s3_clnt.c | |||
@@ -1597,6 +1597,7 @@ static int ssl3_send_client_key_exchange(SSL *s) | |||
1597 | SSL_MAX_MASTER_KEY_LENGTH); | 1597 | SSL_MAX_MASTER_KEY_LENGTH); |
1598 | EVP_EncryptFinal_ex(&ciph_ctx,&(epms[outl]),&padl); | 1598 | EVP_EncryptFinal_ex(&ciph_ctx,&(epms[outl]),&padl); |
1599 | outl += padl; | 1599 | outl += padl; |
1600 | die(outl <= sizeof epms); | ||
1600 | EVP_CIPHER_CTX_cleanup(&ciph_ctx); | 1601 | EVP_CIPHER_CTX_cleanup(&ciph_ctx); |
1601 | 1602 | ||
1602 | /* KerberosWrapper.EncryptedPreMasterSecret */ | 1603 | /* KerberosWrapper.EncryptedPreMasterSecret */ |
diff --git a/src/lib/libssl/src/ssl/s3_srvr.c b/src/lib/libssl/src/ssl/s3_srvr.c index 3748cd7c24..f03c290a3e 100644 --- a/src/lib/libssl/src/ssl/s3_srvr.c +++ b/src/lib/libssl/src/ssl/s3_srvr.c | |||
@@ -114,14 +114,14 @@ | |||
114 | 114 | ||
115 | 115 | ||
116 | #include <stdio.h> | 116 | #include <stdio.h> |
117 | #include "ssl_locl.h" | ||
118 | #include "kssl_lcl.h" | ||
117 | #include <openssl/buffer.h> | 119 | #include <openssl/buffer.h> |
118 | #include <openssl/rand.h> | 120 | #include <openssl/rand.h> |
119 | #include <openssl/objects.h> | 121 | #include <openssl/objects.h> |
120 | #include <openssl/evp.h> | 122 | #include <openssl/evp.h> |
121 | #include <openssl/x509.h> | 123 | #include <openssl/x509.h> |
122 | #include <openssl/krb5_asn.h> | 124 | #include <openssl/krb5_asn.h> |
123 | #include "ssl_locl.h" | ||
124 | #include "kssl_lcl.h" | ||
125 | #include <openssl/md5.h> | 125 | #include <openssl/md5.h> |
126 | 126 | ||
127 | static SSL_METHOD *ssl3_get_server_method(int ver); | 127 | static SSL_METHOD *ssl3_get_server_method(int ver); |
@@ -1560,8 +1560,8 @@ static int ssl3_get_client_key_exchange(SSL *s) | |||
1560 | EVP_CIPHER *enc = NULL; | 1560 | EVP_CIPHER *enc = NULL; |
1561 | unsigned char iv[EVP_MAX_IV_LENGTH]; | 1561 | unsigned char iv[EVP_MAX_IV_LENGTH]; |
1562 | unsigned char pms[SSL_MAX_MASTER_KEY_LENGTH | 1562 | unsigned char pms[SSL_MAX_MASTER_KEY_LENGTH |
1563 | + EVP_MAX_IV_LENGTH + 1]; | 1563 | + EVP_MAX_BLOCK_LENGTH]; |
1564 | int padl, outl = sizeof(pms); | 1564 | int padl, outl; |
1565 | krb5_timestamp authtime = 0; | 1565 | krb5_timestamp authtime = 0; |
1566 | krb5_ticket_times ttimes; | 1566 | krb5_ticket_times ttimes; |
1567 | 1567 | ||
@@ -1584,6 +1584,16 @@ static int ssl3_get_client_key_exchange(SSL *s) | |||
1584 | enc_pms.data = (char *)p; | 1584 | enc_pms.data = (char *)p; |
1585 | p+=enc_pms.length; | 1585 | p+=enc_pms.length; |
1586 | 1586 | ||
1587 | /* Note that the length is checked again below, | ||
1588 | ** after decryption | ||
1589 | */ | ||
1590 | if(enc_pms.length > sizeof pms) | ||
1591 | { | ||
1592 | SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, | ||
1593 | SSL_R_DATA_LENGTH_TOO_LONG); | ||
1594 | goto err; | ||
1595 | } | ||
1596 | |||
1587 | if (n != enc_ticket.length + authenticator.length + | 1597 | if (n != enc_ticket.length + authenticator.length + |
1588 | enc_pms.length + 6) | 1598 | enc_pms.length + 6) |
1589 | { | 1599 | { |