]>
Commit | Line | Data |
---|---|---|
1 | ||
2 | OpenSSL CHANGES | |
3 | _______________ | |
4 | ||
5 | Changes between 0.9.5a and 0.9.6 [xx XXX 2000] | |
6 | ||
7 | *) The type-safe stack code has been rejigged. It is now only compiled | |
8 | in when OpenSSL is configured with the DEBUG_SAFESTACK option and | |
9 | by default all type-specific stack functions are "#define"d back to | |
10 | standard stack functions. This results in more streamlined output | |
11 | but retains the type-safety checking possibilities of the original | |
12 | approach. | |
13 | [Geoff Thorpe] | |
14 | ||
15 | *) The STACK code has been cleaned up, and certain type declarations | |
16 | that didn't make a lot of sense have been brought in line. This has | |
17 | also involved a cleanup of sorts in safestack.h to more correctly | |
18 | map type-safe stack functions onto their plain stack counterparts. | |
19 | This work has also resulted in a variety of "const"ifications of | |
20 | lots of the code, especially "_cmp" operations which should normally | |
21 | be prototyped with "const" parameters anyway. | |
22 | [Geoff Thorpe] | |
23 | ||
24 | *) When generating bytes for the first time in md_rand.c, 'stir the pool' | |
25 | by seeding with STATE_SIZE dummy bytes (with zero entropy count). | |
26 | (The PRNG state consists of two parts, the large pool 'state' and 'md', | |
27 | where all of 'md' is used each time the PRNG is used, but 'state' | |
28 | is used only indexed by a cyclic counter. As entropy may not be | |
29 | well distributed from the beginning, 'md' is important as a | |
30 | chaining variable. However, the output function chains only half | |
31 | of 'md', i.e. 80 bits. ssleay_rand_add, on the other hand, chains | |
32 | all of 'md', and seeding with STATE_SIZE dummy bytes will result | |
33 | in all of 'state' being rewritten, with the new values depending | |
34 | on virtually all of 'md'. This overcomes the 80 bit limitation.) | |
35 | [Bodo Moeller] | |
36 | ||
37 | *) In ssl/s2_clnt.c and ssl/s3_clnt.c, call ERR_clear_error() when | |
38 | the handshake is continued after ssl_verify_cert_chain(); | |
39 | otherwise, if SSL_VERIFY_NONE is set, remaining error codes | |
40 | can lead to 'unexplainable' connection aborts later. | |
41 | [Bodo Moeller; problem tracked down by Lutz Jaenicke] | |
42 | ||
43 | *) Major EVP API cipher revision. | |
44 | Add hooks for extra EVP features. This allows various cipher | |
45 | parameters to be set in the EVP interface. Support added for variable | |
46 | key length ciphers via the EVP_CIPHER_CTX_set_key_length() function and | |
47 | setting of RC2 and RC5 parameters. | |
48 | ||
49 | Modify EVP_OpenInit() and EVP_SealInit() to cope with variable key length | |
50 | ciphers. | |
51 | ||
52 | Remove lots of duplicated code from the EVP library. For example *every* | |
53 | cipher init() function handles the 'iv' in the same way according to the | |
54 | cipher mode. They also all do nothing if the 'key' parameter is NULL and | |
55 | for CFB and OFB modes they zero ctx->num. | |
56 | ||
57 | New functionality allows removal of S/MIME code RC2 hack. | |
58 | ||
59 | Most of the routines have the same form and so can be declared in terms | |
60 | of macros. | |
61 | ||
62 | By shifting this to the top level EVP_CipherInit() it can be removed from | |
63 | all individual ciphers. If the cipher wants to handle IVs or keys | |
64 | differently it can set the EVP_CIPH_CUSTOM_IV or EVP_CIPH_ALWAYS_CALL_INIT | |
65 | flags. | |
66 | ||
67 | Change lots of functions like EVP_EncryptUpdate() to now return a | |
68 | value: although software versions of the algorithms cannot fail | |
69 | any installed hardware versions can. | |
70 | [Steve Henson] | |
71 | ||
72 | *) Implement SSL_OP_TLS_ROLLBACK_BUG: In ssl3_get_client_key_exchange, if | |
73 | this option is set, tolerate broken clients that send the negotiated | |
74 | protocol version number instead of the requested protocol version | |
75 | number. | |
76 | [Bodo Moeller] | |
77 | ||
78 | *) Call dh_tmp_cb (set by ..._TMP_DH_CB) with correct 'is_export' flag; | |
79 | i.e. non-zero for export ciphersuites, zero otherwise. | |
80 | Previous versions had this flag inverted, inconsistent with | |
81 | rsa_tmp_cb (..._TMP_RSA_CB). | |
82 | [Bodo Moeller; problem reported by Amit Chopra] | |
83 | ||
84 | *) Add missing DSA library text string. Work around for some IIS | |
85 | key files with invalid SEQUENCE encoding. | |
86 | [Steve Henson] | |
87 | ||
88 | *) Add a document (doc/standards.txt) that list all kinds of standards | |
89 | and so on that are implemented in OpenSSL. | |
90 | [Richard Levitte] | |
91 | ||
92 | *) Enhance c_rehash script. Old version would mishandle certificates | |
93 | with the same subject name hash and wouldn't handle CRLs at all. | |
94 | Added -fingerprint option to crl utility, to support new c_rehash | |
95 | features. | |
96 | [Steve Henson] | |
97 | ||
98 | *) Eliminate non-ANSI declarations in crypto.h and stack.h. | |
99 |