Loweynet
Révision | 252948a5235856e93a1035c3f74a68442c8ea0ff (tree) |
---|---|
l'heure | 2013-02-07 23:13:56 |
Auteur | s_kawamoto <s_kawamoto@user...> |
Commiter | s_kawamoto |
Update OpenSSL to 1.0.1d.
@@ -2,6 +2,49 @@ | ||
2 | 2 | OpenSSL CHANGES |
3 | 3 | _______________ |
4 | 4 | |
5 | + Changes between 1.0.1c and 1.0.1d [5 Feb 2013] | |
6 | + | |
7 | + *) Make the decoding of SSLv3, TLS and DTLS CBC records constant time. | |
8 | + | |
9 | + This addresses the flaw in CBC record processing discovered by | |
10 | + Nadhem Alfardan and Kenny Paterson. Details of this attack can be found | |
11 | + at: http://www.isg.rhul.ac.uk/tls/ | |
12 | + | |
13 | + Thanks go to Nadhem Alfardan and Kenny Paterson of the Information | |
14 | + Security Group at Royal Holloway, University of London | |
15 | + (www.isg.rhul.ac.uk) for discovering this flaw and Adam Langley and | |
16 | + Emilia Käsper for the initial patch. | |
17 | + (CVE-2013-0169) | |
18 | + [Emilia Käsper, Adam Langley, Ben Laurie, Andy Polyakov, Steve Henson] | |
19 | + | |
20 | + *) Fix flaw in AESNI handling of TLS 1.2 and 1.1 records for CBC mode | |
21 | + ciphersuites which can be exploited in a denial of service attack. | |
22 | + Thanks go to and to Adam Langley <agl@chromium.org> for discovering | |
23 | + and detecting this bug and to Wolfgang Ettlinger | |
24 | + <wolfgang.ettlinger@gmail.com> for independently discovering this issue. | |
25 | + (CVE-2012-2686) | |
26 | + [Adam Langley] | |
27 | + | |
28 | + *) Return an error when checking OCSP signatures when key is NULL. | |
29 | + This fixes a DoS attack. (CVE-2013-0166) | |
30 | + [Steve Henson] | |
31 | + | |
32 | + *) Make openssl verify return errors. | |
33 | + [Chris Palmer <palmer@google.com> and Ben Laurie] | |
34 | + | |
35 | + *) Call OCSP Stapling callback after ciphersuite has been chosen, so | |
36 | + the right response is stapled. Also change SSL_get_certificate() | |
37 | + so it returns the certificate actually sent. | |
38 | + See http://rt.openssl.org/Ticket/Display.html?id=2836. | |
39 | + [Rob Stradling <rob.stradling@comodo.com>] | |
40 | + | |
41 | + *) Fix possible deadlock when decoding public keys. | |
42 | + [Steve Henson] | |
43 | + | |
44 | + *) Don't use TLS 1.0 record version number in initial client hello | |
45 | + if renegotiating. | |
46 | + [Steve Henson] | |
47 | + | |
5 | 48 | Changes between 1.0.1b and 1.0.1c [10 May 2012] |
6 | 49 | |
7 | 50 | *) Sanity check record length before skipping explicit IV in TLS |
@@ -83,7 +83,7 @@ OpenSSL - Frequently Asked Questions | ||
83 | 83 | * Which is the current version of OpenSSL? |
84 | 84 | |
85 | 85 | The current version is available from <URL: http://www.openssl.org>. |
86 | -OpenSSL 1.0.1c was released on May 10th, 2012. | |
86 | +OpenSSL 1.0.1d was released on Feb 5th, 2013. | |
87 | 87 | |
88 | 88 | In addition to the current stable release, you can also access daily |
89 | 89 | snapshots of the OpenSSL development version at <URL: |
@@ -488,10 +488,10 @@ void CRYPTO_get_mem_debug_functions(void (**m)(void *,int,const char *,int,int), | ||
488 | 488 | long (**go)(void)); |
489 | 489 | |
490 | 490 | void *CRYPTO_malloc_locked(int num, const char *file, int line); |
491 | -void CRYPTO_free_locked(void *); | |
491 | +void CRYPTO_free_locked(void *ptr); | |
492 | 492 | void *CRYPTO_malloc(int num, const char *file, int line); |
493 | 493 | char *CRYPTO_strdup(const char *str, const char *file, int line); |
494 | -void CRYPTO_free(void *); | |
494 | +void CRYPTO_free(void *ptr); | |
495 | 495 | void *CRYPTO_realloc(void *addr,int num, const char *file, int line); |
496 | 496 | void *CRYPTO_realloc_clean(void *addr,int old_num,int num,const char *file, |
497 | 497 | int line); |
@@ -574,6 +574,13 @@ void OPENSSL_init(void); | ||
574 | 574 | #define fips_cipher_abort(alg) while(0) |
575 | 575 | #endif |
576 | 576 | |
577 | +/* CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. It | |
578 | + * takes an amount of time dependent on |len|, but independent of the contents | |
579 | + * of |a| and |b|. Unlike memcmp, it cannot be used to put elements into a | |
580 | + * defined order as the return value when a != b is undefined, other than to be | |
581 | + * non-zero. */ | |
582 | +int CRYPTO_memcmp(const void *a, const void *b, size_t len); | |
583 | + | |
577 | 584 | /* BEGIN ERROR CODES */ |
578 | 585 | /* The following lines are auto generated by the script mkerr.pl. Any changes |
579 | 586 | * made after this point may be overwritten when the script is next run. |
@@ -72,8 +72,12 @@ | ||
72 | 72 | #elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_) |
73 | 73 | #include <sys/timeval.h> |
74 | 74 | #else |
75 | +#if defined(OPENSSL_SYS_VXWORKS) | |
76 | +#include <sys/times.h> | |
77 | +#else | |
75 | 78 | #include <sys/time.h> |
76 | 79 | #endif |
80 | +#endif | |
77 | 81 | |
78 | 82 | #ifdef __cplusplus |
79 | 83 | extern "C" { |
@@ -274,10 +274,10 @@ int EC_GROUP_get_curve_name(const EC_GROUP *group); | ||
274 | 274 | void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); |
275 | 275 | int EC_GROUP_get_asn1_flag(const EC_GROUP *group); |
276 | 276 | |
277 | -void EC_GROUP_set_point_conversion_form(EC_GROUP *, point_conversion_form_t); | |
277 | +void EC_GROUP_set_point_conversion_form(EC_GROUP *group, point_conversion_form_t form); | |
278 | 278 | point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); |
279 | 279 | |
280 | -unsigned char *EC_GROUP_get0_seed(const EC_GROUP *); | |
280 | +unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); | |
281 | 281 | size_t EC_GROUP_get_seed_len(const EC_GROUP *); |
282 | 282 | size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); |
283 | 283 |
@@ -626,8 +626,8 @@ int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX *c | ||
626 | 626 | */ |
627 | 627 | int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx); |
628 | 628 | |
629 | -int EC_POINT_make_affine(const EC_GROUP *, EC_POINT *, BN_CTX *); | |
630 | -int EC_POINTs_make_affine(const EC_GROUP *, size_t num, EC_POINT *[], BN_CTX *); | |
629 | +int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); | |
630 | +int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, EC_POINT *points[], BN_CTX *ctx); | |
631 | 631 | |
632 | 632 | /** Computes r = generator * n sum_{i=0}^num p[i] * m[i] |
633 | 633 | * \param group underlying EC_GROUP object |
@@ -800,16 +800,24 @@ const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); | ||
800 | 800 | int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); |
801 | 801 | |
802 | 802 | unsigned EC_KEY_get_enc_flags(const EC_KEY *key); |
803 | -void EC_KEY_set_enc_flags(EC_KEY *, unsigned int); | |
804 | -point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *); | |
805 | -void EC_KEY_set_conv_form(EC_KEY *, point_conversion_form_t); | |
803 | +void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); | |
804 | +point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); | |
805 | +void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); | |
806 | 806 | /* functions to set/get method specific data */ |
807 | -void *EC_KEY_get_key_method_data(EC_KEY *, | |
807 | +void *EC_KEY_get_key_method_data(EC_KEY *key, | |
808 | 808 | void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *)); |
809 | -void EC_KEY_insert_key_method_data(EC_KEY *, void *data, | |
809 | +/** Sets the key method data of an EC_KEY object, if none has yet been set. | |
810 | + * \param key EC_KEY object | |
811 | + * \param data opaque data to install. | |
812 | + * \param dup_func a function that duplicates |data|. | |
813 | + * \param free_func a function that frees |data|. | |
814 | + * \param clear_free_func a function that wipes and frees |data|. | |
815 | + * \return the previously set data pointer, or NULL if |data| was inserted. | |
816 | + */ | |
817 | +void *EC_KEY_insert_key_method_data(EC_KEY *key, void *data, | |
810 | 818 | void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *)); |
811 | 819 | /* wrapper functions for the underlying EC_GROUP object */ |
812 | -void EC_KEY_set_asn1_flag(EC_KEY *, int); | |
820 | +void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); | |
813 | 821 | |
814 | 822 | /** Creates a table of pre-computed multiples of the generator to |
815 | 823 | * accelerate further EC_KEY operations. |
@@ -402,7 +402,6 @@ struct evp_cipher_st | ||
402 | 402 | /* Length of tag for TLS */ |
403 | 403 | #define EVP_GCM_TLS_TAG_LEN 16 |
404 | 404 | |
405 | - | |
406 | 405 | typedef struct evp_cipher_info_st |
407 | 406 | { |
408 | 407 | const EVP_CIPHER *cipher; |
@@ -789,8 +788,8 @@ const EVP_CIPHER *EVP_aes_128_cfb128(void); | ||
789 | 788 | # define EVP_aes_128_cfb EVP_aes_128_cfb128 |
790 | 789 | const EVP_CIPHER *EVP_aes_128_ofb(void); |
791 | 790 | const EVP_CIPHER *EVP_aes_128_ctr(void); |
792 | -const EVP_CIPHER *EVP_aes_128_gcm(void); | |
793 | 791 | const EVP_CIPHER *EVP_aes_128_ccm(void); |
792 | +const EVP_CIPHER *EVP_aes_128_gcm(void); | |
794 | 793 | const EVP_CIPHER *EVP_aes_128_xts(void); |
795 | 794 | const EVP_CIPHER *EVP_aes_192_ecb(void); |
796 | 795 | const EVP_CIPHER *EVP_aes_192_cbc(void); |
@@ -800,8 +799,8 @@ const EVP_CIPHER *EVP_aes_192_cfb128(void); | ||
800 | 799 | # define EVP_aes_192_cfb EVP_aes_192_cfb128 |
801 | 800 | const EVP_CIPHER *EVP_aes_192_ofb(void); |
802 | 801 | const EVP_CIPHER *EVP_aes_192_ctr(void); |
803 | -const EVP_CIPHER *EVP_aes_192_gcm(void); | |
804 | 802 | const EVP_CIPHER *EVP_aes_192_ccm(void); |
803 | +const EVP_CIPHER *EVP_aes_192_gcm(void); | |
805 | 804 | const EVP_CIPHER *EVP_aes_256_ecb(void); |
806 | 805 | const EVP_CIPHER *EVP_aes_256_cbc(void); |
807 | 806 | const EVP_CIPHER *EVP_aes_256_cfb1(void); |
@@ -810,8 +809,8 @@ const EVP_CIPHER *EVP_aes_256_cfb128(void); | ||
810 | 809 | # define EVP_aes_256_cfb EVP_aes_256_cfb128 |
811 | 810 | const EVP_CIPHER *EVP_aes_256_ofb(void); |
812 | 811 | const EVP_CIPHER *EVP_aes_256_ctr(void); |
813 | -const EVP_CIPHER *EVP_aes_256_gcm(void); | |
814 | 812 | const EVP_CIPHER *EVP_aes_256_ccm(void); |
813 | +const EVP_CIPHER *EVP_aes_256_gcm(void); | |
815 | 814 | const EVP_CIPHER *EVP_aes_256_xts(void); |
816 | 815 | #if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1) |
817 | 816 | const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); |
@@ -1243,6 +1242,8 @@ void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, | ||
1243 | 1242 | int (*ctrl_str)(EVP_PKEY_CTX *ctx, |
1244 | 1243 | const char *type, const char *value)); |
1245 | 1244 | |
1245 | +void EVP_add_alg_module(void); | |
1246 | + | |
1246 | 1247 | /* BEGIN ERROR CODES */ |
1247 | 1248 | /* The following lines are auto generated by the script mkerr.pl. Any changes |
1248 | 1249 | * made after this point may be overwritten when the script is next run. |
@@ -1257,6 +1258,7 @@ void ERR_load_EVP_strings(void); | ||
1257 | 1258 | #define EVP_F_AES_INIT_KEY 133 |
1258 | 1259 | #define EVP_F_AES_XTS 172 |
1259 | 1260 | #define EVP_F_AES_XTS_CIPHER 175 |
1261 | +#define EVP_F_ALG_MODULE_INIT 177 | |
1260 | 1262 | #define EVP_F_CAMELLIA_INIT_KEY 159 |
1261 | 1263 | #define EVP_F_CMAC_INIT 173 |
1262 | 1264 | #define EVP_F_D2I_PKEY 100 |
@@ -1350,15 +1352,19 @@ void ERR_load_EVP_strings(void); | ||
1350 | 1352 | #define EVP_R_DIFFERENT_PARAMETERS 153 |
1351 | 1353 | #define EVP_R_DISABLED_FOR_FIPS 163 |
1352 | 1354 | #define EVP_R_ENCODE_ERROR 115 |
1355 | +#define EVP_R_ERROR_LOADING_SECTION 165 | |
1356 | +#define EVP_R_ERROR_SETTING_FIPS_MODE 166 | |
1353 | 1357 | #define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119 |
1354 | 1358 | #define EVP_R_EXPECTING_AN_RSA_KEY 127 |
1355 | 1359 | #define EVP_R_EXPECTING_A_DH_KEY 128 |
1356 | 1360 | #define EVP_R_EXPECTING_A_DSA_KEY 129 |
1357 | 1361 | #define EVP_R_EXPECTING_A_ECDSA_KEY 141 |
1358 | 1362 | #define EVP_R_EXPECTING_A_EC_KEY 142 |
1363 | +#define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 | |
1359 | 1364 | #define EVP_R_INITIALIZATION_ERROR 134 |
1360 | 1365 | #define EVP_R_INPUT_NOT_INITIALIZED 111 |
1361 | 1366 | #define EVP_R_INVALID_DIGEST 152 |
1367 | +#define EVP_R_INVALID_FIPS_MODE 168 | |
1362 | 1368 | #define EVP_R_INVALID_KEY_LENGTH 130 |
1363 | 1369 | #define EVP_R_INVALID_OPERATION 148 |
1364 | 1370 | #define EVP_R_IV_TOO_LARGE 102 |
@@ -1383,6 +1389,7 @@ void ERR_load_EVP_strings(void); | ||
1383 | 1389 | #define EVP_R_TOO_LARGE 164 |
1384 | 1390 | #define EVP_R_UNKNOWN_CIPHER 160 |
1385 | 1391 | #define EVP_R_UNKNOWN_DIGEST 161 |
1392 | +#define EVP_R_UNKNOWN_OPTION 169 | |
1386 | 1393 | #define EVP_R_UNKNOWN_PBE_ALGORITHM 121 |
1387 | 1394 | #define EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS 135 |
1388 | 1395 | #define EVP_R_UNSUPPORTED_ALGORITHM 156 |
@@ -25,11 +25,11 @@ | ||
25 | 25 | * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for |
26 | 26 | * major minor fix final patch/beta) |
27 | 27 | */ |
28 | -#define OPENSSL_VERSION_NUMBER 0x1000103fL | |
28 | +#define OPENSSL_VERSION_NUMBER 0x1000104fL | |
29 | 29 | #ifdef OPENSSL_FIPS |
30 | -#define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1c-fips 10 May 2012" | |
30 | +#define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1d-fips 5 Feb 2013" | |
31 | 31 | #else |
32 | -#define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1c 10 May 2012" | |
32 | +#define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1d 5 Feb 2013" | |
33 | 33 | #endif |
34 | 34 | #define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT |
35 | 35 |
@@ -280,7 +280,7 @@ struct rsa_st | ||
280 | 280 | |
281 | 281 | RSA * RSA_new(void); |
282 | 282 | RSA * RSA_new_method(ENGINE *engine); |
283 | -int RSA_size(const RSA *); | |
283 | +int RSA_size(const RSA *rsa); | |
284 | 284 | |
285 | 285 | /* Deprecated version */ |
286 | 286 | #ifndef OPENSSL_NO_DEPRECATED |
@@ -493,6 +493,9 @@ struct ssl_session_st | ||
493 | 493 | char *psk_identity_hint; |
494 | 494 | char *psk_identity; |
495 | 495 | #endif |
496 | + /* Used to indicate that session resumption is not allowed. | |
497 | + * Applications can also set this bit for a new session via | |
498 | + * not_resumable_session_cb to disable session caching and tickets. */ | |
496 | 499 | int not_resumable; |
497 | 500 | |
498 | 501 | /* The cert is the certificate used to establish this connection */ |
@@ -535,7 +538,7 @@ struct ssl_session_st | ||
535 | 538 | #endif /* OPENSSL_NO_EC */ |
536 | 539 | /* RFC4507 info */ |
537 | 540 | unsigned char *tlsext_tick; /* Session ticket */ |
538 | - size_t tlsext_ticklen; /* Session ticket length */ | |
541 | + size_t tlsext_ticklen; /* Session ticket length */ | |
539 | 542 | long tlsext_tick_lifetime_hint; /* Session lifetime hint in seconds */ |
540 | 543 | #endif |
541 | 544 | #ifndef OPENSSL_NO_SRP |
@@ -927,6 +930,7 @@ struct ssl_ctx_st | ||
927 | 930 | /* Callback for status request */ |
928 | 931 | int (*tlsext_status_cb)(SSL *ssl, void *arg); |
929 | 932 | void *tlsext_status_arg; |
933 | + | |
930 | 934 | /* draft-rescorla-tls-opaque-prf-input-00.txt information */ |
931 | 935 | int (*tlsext_opaque_prf_input_callback)(SSL *, void *peerinput, size_t len, void *arg); |
932 | 936 | void *tlsext_opaque_prf_input_callback_arg; |
@@ -952,6 +956,7 @@ struct ssl_ctx_st | ||
952 | 956 | #endif |
953 | 957 | |
954 | 958 | #ifndef OPENSSL_NO_TLSEXT |
959 | + | |
955 | 960 | # ifndef OPENSSL_NO_NEXTPROTONEG |
956 | 961 | /* Next protocol negotiation information */ |
957 | 962 | /* (for experimental NPN extension). */ |
@@ -2206,6 +2211,7 @@ void ERR_load_SSL_strings(void); | ||
2206 | 2211 | #define SSL_F_SSL_GET_NEW_SESSION 181 |
2207 | 2212 | #define SSL_F_SSL_GET_PREV_SESSION 217 |
2208 | 2213 | #define SSL_F_SSL_GET_SERVER_SEND_CERT 182 |
2214 | +#define SSL_F_SSL_GET_SERVER_SEND_PKEY 317 | |
2209 | 2215 | #define SSL_F_SSL_GET_SIGN_PKEY 183 |
2210 | 2216 | #define SSL_F_SSL_INIT_WBIO_BUFFER 184 |
2211 | 2217 | #define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 |
@@ -578,8 +578,10 @@ typedef struct ssl3_state_st | ||
578 | 578 | #define SSL3_ST_CW_CERT_VRFY_B (0x191|SSL_ST_CONNECT) |
579 | 579 | #define SSL3_ST_CW_CHANGE_A (0x1A0|SSL_ST_CONNECT) |
580 | 580 | #define SSL3_ST_CW_CHANGE_B (0x1A1|SSL_ST_CONNECT) |
581 | +#ifndef OPENSSL_NO_NEXTPROTONEG | |
581 | 582 | #define SSL3_ST_CW_NEXT_PROTO_A (0x200|SSL_ST_CONNECT) |
582 | 583 | #define SSL3_ST_CW_NEXT_PROTO_B (0x201|SSL_ST_CONNECT) |
584 | +#endif | |
583 | 585 | #define SSL3_ST_CW_FINISHED_A (0x1B0|SSL_ST_CONNECT) |
584 | 586 | #define SSL3_ST_CW_FINISHED_B (0x1B1|SSL_ST_CONNECT) |
585 | 587 | /* read from server */ |
@@ -629,8 +631,10 @@ typedef struct ssl3_state_st | ||
629 | 631 | #define SSL3_ST_SR_CERT_VRFY_B (0x1A1|SSL_ST_ACCEPT) |
630 | 632 | #define SSL3_ST_SR_CHANGE_A (0x1B0|SSL_ST_ACCEPT) |
631 | 633 | #define SSL3_ST_SR_CHANGE_B (0x1B1|SSL_ST_ACCEPT) |
634 | +#ifndef OPENSSL_NO_NEXTPROTONEG | |
632 | 635 | #define SSL3_ST_SR_NEXT_PROTO_A (0x210|SSL_ST_ACCEPT) |
633 | 636 | #define SSL3_ST_SR_NEXT_PROTO_B (0x211|SSL_ST_ACCEPT) |
637 | +#endif | |
634 | 638 | #define SSL3_ST_SR_FINISHED_A (0x1C0|SSL_ST_ACCEPT) |
635 | 639 | #define SSL3_ST_SR_FINISHED_B (0x1C1|SSL_ST_ACCEPT) |
636 | 640 | /* write to client */ |
@@ -655,7 +659,9 @@ typedef struct ssl3_state_st | ||
655 | 659 | #define SSL3_MT_CLIENT_KEY_EXCHANGE 16 |
656 | 660 | #define SSL3_MT_FINISHED 20 |
657 | 661 | #define SSL3_MT_CERTIFICATE_STATUS 22 |
662 | +#ifndef OPENSSL_NO_NEXTPROTONEG | |
658 | 663 | #define SSL3_MT_NEXT_PROTO 67 |
664 | +#endif | |
659 | 665 | #define DTLS1_MT_HELLO_VERIFY_REQUEST 3 |
660 | 666 | |
661 | 667 |
@@ -193,17 +193,17 @@ | ||
193 | 193 | #undef SSL_CTX_set_srp_username_callback |
194 | 194 | #define SSL_CTX_set_srp_username_callback SSL_CTX_set_srp_un_cb |
195 | 195 | #undef ssl_add_clienthello_use_srtp_ext |
196 | -#define ssl_add_clienthello_use_srtp_ext ssl_add_clihello_use_srtp_ext | |
196 | +#define ssl_add_clienthello_use_srtp_ext ssl_add_clihello_use_srtp_ext | |
197 | 197 | #undef ssl_add_serverhello_use_srtp_ext |
198 | -#define ssl_add_serverhello_use_srtp_ext ssl_add_serhello_use_srtp_ext | |
198 | +#define ssl_add_serverhello_use_srtp_ext ssl_add_serhello_use_srtp_ext | |
199 | 199 | #undef ssl_parse_clienthello_use_srtp_ext |
200 | -#define ssl_parse_clienthello_use_srtp_ext ssl_parse_clihello_use_srtp_ext | |
200 | +#define ssl_parse_clienthello_use_srtp_ext ssl_parse_clihello_use_srtp_ext | |
201 | 201 | #undef ssl_parse_serverhello_use_srtp_ext |
202 | -#define ssl_parse_serverhello_use_srtp_ext ssl_parse_serhello_use_srtp_ext | |
202 | +#define ssl_parse_serverhello_use_srtp_ext ssl_parse_serhello_use_srtp_ext | |
203 | 203 | #undef SSL_CTX_set_next_protos_advertised_cb |
204 | -#define SSL_CTX_set_next_protos_advertised_cb SSL_CTX_set_next_protos_adv_cb | |
204 | +#define SSL_CTX_set_next_protos_advertised_cb SSL_CTX_set_next_protos_adv_cb | |
205 | 205 | #undef SSL_CTX_set_next_proto_select_cb |
206 | -#define SSL_CTX_set_next_proto_select_cb SSL_CTX_set_next_proto_sel_cb | |
206 | +#define SSL_CTX_set_next_proto_select_cb SSL_CTX_set_next_proto_sel_cb | |
207 | 207 | |
208 | 208 | /* Hack some long ENGINE names */ |
209 | 209 | #undef ENGINE_get_default_BN_mod_exp_crt |
@@ -316,8 +316,6 @@ | ||
316 | 316 | #define ec_GFp_simple_point_set_to_infinity ec_GFp_simple_pt_set_to_inf |
317 | 317 | #undef ec_GFp_simple_points_make_affine |
318 | 318 | #define ec_GFp_simple_points_make_affine ec_GFp_simple_pts_make_affine |
319 | -#undef ec_GFp_simple_group_get_curve_GFp | |
320 | -#define ec_GFp_simple_group_get_curve_GFp ec_GFp_simple_grp_get_curve_GFp | |
321 | 319 | #undef ec_GFp_simple_set_Jprojective_coordinates_GFp |
322 | 320 | #define ec_GFp_simple_set_Jprojective_coordinates_GFp \ |
323 | 321 | ec_GFp_smp_set_Jproj_coords_GFp |
@@ -5,6 +5,14 @@ | ||
5 | 5 | This file gives a brief overview of the major changes between each OpenSSL |
6 | 6 | release. For more details please read the CHANGES file. |
7 | 7 | |
8 | + Major changes between OpenSSL 1.0.1c and OpenSSL 1.0.1d: | |
9 | + | |
10 | + o Fix renegotiation in TLS 1.1, 1.2 by using the correct TLS version. | |
11 | + o Include the fips configuration module. | |
12 | + o Fix OCSP bad key DoS attack CVE-2013-0166 | |
13 | + o Fix for SSL/TLS/DTLS CBC plaintext recovery attack CVE-2013-0169 | |
14 | + o Fix for TLS AESNI record handling flaw CVE-2012-2686 | |
15 | + | |
8 | 16 | Major changes between OpenSSL 1.0.1b and OpenSSL 1.0.1c: |
9 | 17 | |
10 | 18 | o Fix TLS/DTLS record length checking bug CVE-2012-2333 |
@@ -1,5 +1,5 @@ | ||
1 | 1 | |
2 | - OpenSSL 1.0.1c 10 May 2012 | |
2 | + OpenSSL 1.0.1d 5 Feb 2013 | |
3 | 3 | |
4 | 4 | Copyright (c) 1998-2011 The OpenSSL Project |
5 | 5 | Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson |
@@ -116,10 +116,10 @@ BOOL LoadOpenSSL() | ||
116 | 116 | return FALSE; |
117 | 117 | #ifdef ENABLE_PROCESS_PROTECTION |
118 | 118 | // 同梱するOpenSSLのバージョンに合わせてSHA1ハッシュ値を変更すること |
119 | - // ssleay32.dll 1.0.1c | |
120 | - RegisterTrustedModuleSHA1Hash("\x8A\xB5\x6D\x5E\x0B\x31\x80\x5E\x21\x55\x2D\x6E\x4F\xAF\xB1\x47\x7B\xD3\xB5\x23"); | |
121 | - // libeay32.dll 1.0.1c | |
122 | - RegisterTrustedModuleSHA1Hash("\xB4\x88\x17\x2E\x5C\x26\x9D\x62\x83\x65\x3A\xC1\x1B\xC9\x6E\x70\x1A\x8D\x6E\x76"); | |
119 | + // ssleay32.dll 1.0.1d | |
120 | + RegisterTrustedModuleSHA1Hash("\x52\x2F\xA2\x9D\xDC\x20\x73\x1D\xDF\x08\xEF\x79\x63\xA8\xB7\xC7\x68\xAC\x9F\xF4"); | |
121 | + // libeay32.dll 1.0.1d | |
122 | + RegisterTrustedModuleSHA1Hash("\x16\x46\x92\xB4\x55\x67\xA4\x0B\x25\x0B\xBF\x05\xA7\xC7\x9E\xB7\x0F\x6E\xBE\x0D"); | |
123 | 123 | #endif |
124 | 124 | g_hOpenSSL = LoadLibrary("ssleay32.dll"); |
125 | 125 | // バージョン固定のためlibssl32.dllの読み込みは脆弱性の原因になり得るので廃止 |