1# Change Log
2
3## [Unreleased]
4
5## [v0.10.35] - 2021-06-18
6
7### Fixed
8
9* Fixed a memory leak in `Deriver`.
10
11### Added
12
13* Added support for OpenSSL 3.x.x.
14* Added `SslStream::peek`.
15
16## [v0.10.34] - 2021-04-28
17
18### Added
19
20* Added `Dh::set_private_key` and `DhRef::private_key`.
21* Added `EcPointRef::affine_coordinates`.
22* Added `TryFrom` implementations to convert between `PKey` and specific key types.
23* Added `X509StoreBuilderRef::set_flags`.
24
25## [v0.10.33] - 2021-03-13
26
27### Fixed
28
29* `Dh::generate_params` now uses `DH_generate_params_ex` rather than the deprecated `DH_generated_params` function.
30
31### Added
32
33* Added `Asn1Type`.
34* Added `CmsContentInfoRef::decrypt_without_cert_check`.
35* Added `EcPointRef::{is_infinity, is_on_curve}`.
36* Added `Encrypter::set_rsa_oaep_label`.
37* Added `MessageDigest::sm3`.
38* Added `Pkcs7Ref::signers`.
39* Added `Cipher::nid`.
40* Added `X509Ref::authority_info` and `AccessDescription::{method, location}`.
41* Added `X509NameBuilder::{append_entry_by_text_with_type, append_entry_by_nid_with_type}`.
42
43## [v0.10.32] - 2020-12-24
44
45### Fixed
46
47* Fixed `Ssl::new` to take a `&SslContextRef` rather than `&SslContext`.
48
49### Added
50
51* Added the `encrypt` module to support asymmetric encryption and decryption with `PKey`s.
52* Added `MessageDigest::from_name`.
53* Added `ConnectConfiguration::into_ssl`.
54* Added the ability to create unconnected `SslStream`s directly from an `Ssl` and transport stream
55    without performing any part of the handshake with `SslStream::new`.
56* Added `SslStream::{read_early_data, write_early_data, connect, accept, do_handshake, stateless}`.
57* Implemented `ToOwned` for `SslContextRef`.
58* Added `SslRef::{set_connect_state, set_accept_state}`.
59
60### Deprecated
61
62* Deprecated `SslStream::from_raw_parts` in favor of `Ssl::from_ptr` and `SslStream::new`.
63* Deprecated `SslStreamBuilder` in favor of methods on `Ssl` and `SslStream`.
64
65## [v0.10.31] - 2020-12-09
66
67### Added
68
69* Added `Asn1Object::from_str`.
70* Added `Dh::from_pgq`, `DhRef::prime_p`, `DhRef::prime_q`, `DhRef::generator`, `DhRef::generate_params`,
71    `DhRef::generate_key`, `DhRef::public_key`, and `DhRef::compute_key`.
72* Added `Pkcs7::from_der` and `Pkcs7Ref::to_der`.
73* Added `Id::X25519`, `Id::X448`, `PKey::generate_x25519`, and `PKey::generate_x448`.
74* Added `SrtpProfileId::SRTP_AEAD_AES_128_GCM` and `SrtpProfileId::SRTP_AEAD_AES_256_GCM`.
75* Added `SslContextBuilder::verify_param` and `SslContextBuilder::verify_param_mut`.
76* Added `X509Ref::subject_name_hash` and `X509Ref::version`.
77* Added `X509StoreBuilderRef::add_lookup`, and the `X509Lookup` type.
78* Added `X509VerifyFlags`, `X509VerifyParamRef::set_flags`, `X509VerifyParamRef::clear_flags`
79    `X509VerifyParamRef::get_flags`.
80
81## [v0.10.30] - 2020-06-25
82
83### Fixed
84
85* `DsaRef::private_key_to_pem` can no longer be called without a private key.
86
87### Changed
88
89* Improved the `Debug` implementations of many types.
90
91### Added
92
93* Added `is_empty` implementations for `Asn1StringRef` and `Asn1BitStringRef`.
94* Added `EcPointRef::{to_pem, to_dir}` and `EcKeyRef::{public_key_from_pem, public_key_from_der}`.
95* Added `Default` implementations for many types.
96* Added `Debug` implementations for many types.
97* Added `SslStream::from_raw_parts`.
98* Added `SslRef::set_mtu`.
99* Added `Cipher::{aes_128_ocb, aes_192_ocb, aes_256_ocb}`.
100
101### Deprecated
102
103* Deprecated `SslStreamBuilder::set_dtls_mtu_size` in favor of `SslRef::set_mtu`.
104
105## [v0.10.29] - 2020-04-07
106
107### Fixed
108
109* Fixed a memory leak in `X509Builder::append_extension`.
110
111### Added
112
113* Added `SslConnector::into_context` and `SslConnector::context`.
114* Added `SslAcceptor::into_context` and `SslAcceptor::context`.
115* Added `SslMethod::tls_client` and `SslMethod::tls_server`.
116* Added `SslContextBuilder::set_cert_store`.
117* Added `SslContextRef::verify_mode` and `SslRef::verify_mode`.
118* Added `SslRef::is_init_finished`.
119* Added `X509Object`.
120* Added `X509StoreRef::objects`.
121
122## [v0.10.28] - 2020-02-04
123
124### Fixed
125
126* Fixed the mutability of `Signer::sign_oneshot` and `Verifier::verify_oneshot`. This is unfortunately a breaking
127    change, but a necessary soundness fix.
128
129## [v0.10.27] - 2020-01-29
130
131### Added
132
133* Added `MessageDigest::null`.
134* Added `PKey::private_key_from_pkcs8`.
135* Added `SslOptions::NO_RENEGOTIATION`.
136* Added `SslStreamBuilder::set_dtls_mtu_size`.
137
138## [v0.10.26] - 2019-11-22
139
140### Fixed
141
142* Fixed improper handling of the IV buffer in `envelope::{Seal, Unseal}`.
143
144### Added
145
146* Added `Asn1TimeRef::{diff, compare}`.
147* Added `Asn1Time::from_unix`.
148* Added `PartialEq` and `PartialOrd` implementations for `Asn1Time` and `Asn1TimeRef`.
149* Added `base64::{encode_block, decode_block}`.
150* Added `EcGroupRef::order_bits`.
151* Added `Clone` implementations for `Sha1`, `Sha224`, `Sha256`, `Sha384`, and `Sha512`.
152* Added `SslContextBuilder::{set_sigalgs_list, set_groups_list}`.
153
154## [v0.10.25] - 2019-10-02
155
156### Fixed
157
158* Fixed a memory leak in `EcdsaSig::from_private_components` when using OpenSSL 1.0.x.
159
160### Added
161
162* Added support for Ed25519 and Ed448 keys.
163* Implemented `ToOwned` for `PKeyRef` and `Clone` for `PKey`.
164
165## [v0.10.24] - 2019-07-19
166
167### Fixed
168
169* Worked around an OpenSSL 1.0.x bug triggered by code calling `SSL_set_app_data`.
170
171### Added
172
173* Added `aes::{wrap_key, unwrap_key}`.
174* Added `CmsContentInfoRef::to_pem` and `CmsContentInfo::from_pem`.
175* Added `DsaRef::private_key_to_pem`.
176* Added `EcGroupRef::{cofactor, generator}`.
177* Added `EcPointRef::to_owned`.
178* Added a `Debug` implementation for `EcKey`.
179* Added `SslAcceptor::{mozilla_intermediate_v5, mozilla_modern_v5}`.
180* Added `Cipher::{aes_128_ofb, aes_192_ecb, aes_192_cbc, aes_192_ctr, aes_192_cfb1, aes_192_cfb128, aes_192_cfb8,
181    aes_192_gcm, aes_192_ccm, aes_192_ofb, aes_256_ofb}`.
182
183## [v0.10.23] - 2019-05-18
184
185### Fixed
186
187* Fixed session callbacks when an `Ssl`'s context is replaced.
188
189### Added
190
191* Added `SslContextBuilder::add_client_ca`.
192
193## [v0.10.22] - 2019-05-08
194
195### Added
196
197* Added support for the LibreSSL 2.9.x series.
198
199## [v0.10.21] - 2019-04-30
200
201### Fixed
202
203* Fixed overly conservatifve buffer size checks in `Crypter` when using stream ciphers.
204
205### Added
206
207* Added bindings to envelope encryption APIs.
208* Added `PkeyRef::size`.
209
210## [v0.10.20] - 2019-03-20
211
212### Added
213
214* Added `CmsContentInfo::from_der` and `CmsContentInfo::encrypt`.
215* Added `X509Ref::verify` and `X509ReqRef::verify`.
216* Implemented `PartialEq` and `Eq` for `MessageDigest`.
217* Added `MessageDigest::type_` and `EcGroupRef::curve_name`.
218
219## [v0.10.19] - 2019-03-01
220
221### Added
222
223* The openssl-sys build script now logs the values of environment variables.
224* Added `ERR_PACK` to openssl-sys.
225* The `ERR_*` functions in openssl-sys are const functions when building against newer Rust versions.
226* Implemented `Clone` for `Dsa`.
227* Added `SslContextRef::add_session` and `SslContextRef::remove_session`.
228* Added `SslSessionRef::time`, `SslSessionRef::timeout`, and `SslSessionRef::protocol_version`.
229* Added `SslContextBuilder::set_session_cache_size` and `SslContextRef::session_cache_size`.
230
231## [v0.10.18] - 2019-02-22
232
233### Fixed
234
235* Fixed the return type of `ssl::cipher_name`.
236
237## [v0.10.17] - 2019-02-22
238
239### Added
240
241* Implemented `AsRef<str>` and `AsRef<[u8]>` for `OpenSslString`.
242* Added `Asn1Integer::from_bn`.
243* Added `RsaRef::check_key`.
244* Added `Asn1Time::from_str` and `Asn1Time::from_str_x509`.
245* Added `Rsa::generate_with_e`.
246* Added `Cipher::des_ede3_cfb64`.
247* Added `SslCipherRef::standard_name` and `ssl::cipher_name`.
248
249## [v0.10.16] - 2018-12-16
250
251### Added
252
253* Added SHA3 and SHAKE to `MessageDigest`.
254* Added `rand::keep_random_devices_open`.
255* Added support for LibreSSL 2.9.0.
256
257## [v0.10.15] - 2018-10-22
258
259### Added
260
261* Implemented `DoubleEndedIterator` for stack iterators.
262
263## [v0.10.14] - 2018-10-18
264
265### Fixed
266
267* Made some accidentally exposed internal functions private.
268
269### Added
270
271* Added support for LibreSSL 2.8.
272
273### Changed
274
275* The OpenSSL version used with the `vendored` feature has been upgraded from 1.1.0 to 1.1.1.
276
277## [v0.10.13] - 2018-10-14
278
279### Fixed
280
281* Fixed a double-free in the `SslContextBuilder::set_get_session_callback` API.
282
283### Added
284
285* Added `SslContextBuilder::set_client_hello_callback`.
286* Added support for LibreSSL 2.8.1.
287* Added `EcdsaSig::from_der` and `EcdsaSig::to_der`.
288* Added PKCS#7 support.
289
290## [v0.10.12] - 2018-09-13
291
292### Fixed
293
294* Fixed handling of SNI callbacks during renegotiation.
295
296### Added
297
298* Added `SslRef::get_shutdown` and `SslRef::set_shutdown`.
299* Added support for SRTP in DTLS sessions.
300* Added support for LibreSSL 2.8.0.
301
302## [v0.10.11] - 2018-08-04
303
304### Added
305
306* The new `vendored` cargo feature will cause openssl-sys to compile and statically link to a
307    vendored copy of OpenSSL.
308* Added `SslContextBuilder::set_psk_server_callback`.
309* Added `DsaRef::pub_key` and `DsaRef::priv_key`.
310* Added `Dsa::from_private_components` and `Dsa::from_public_components`.
311* Added `X509NameRef::entries`.
312
313### Deprecated
314
315* `SslContextBuilder::set_psk_callback` has been renamed to
316    `SslContextBuilder::set_psk_client_callback` and deprecated.
317
318## [v0.10.10] - 2018-06-06
319
320### Added
321
322* Added `SslRef::set_alpn_protos`.
323* Added `SslContextBuilder::set_ciphersuites`.
324
325## [v0.10.9] - 2018-06-01
326
327### Fixed
328
329* Fixed a use-after-free in `CmsContentInfo::sign`.
330* `SslRef::servername` now returns `None` rather than panicking on a non-UTF8 name.
331
332### Added
333
334* Added `MessageDigest::from_nid`.
335* Added `Nid::signature_algorithms`, `Nid::long_name`, and `Nid::short_name`.
336* Added early data and early keying material export support for TLS 1.3.
337* Added `SslRef::verified_chain`.
338* Added `SslRef::servername_raw` which returns a `&[u8]` rather than `&str`.
339* Added `SslRef::finished` and `SslRef::peer_finished`.
340* Added `X509Ref::digest` to replace `X509Ref::fingerprint`.
341* `X509StoreBuilder` and `X509Store` now implement `Sync` and `Send`.
342
343### Deprecated
344
345* `X509Ref::fingerprint` has been deprecated in favor of `X509Ref::digest`.
346
347## [v0.10.8] - 2018-05-20
348
349### Fixed
350
351* `openssl-sys` will now detect Homebrew-installed OpenSSL when installed to a non-default
352    directory.
353* The `X509_V_ERR_INVALID_CALL`, `X509_V_ERR_STORE_LOOKUP`, and
354    `X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION` constants in `openssl-sys` are now only present when
355    building against 1.1.0g and up rather than 1.1.0.
356* `SslContextBuilder::max_proto_version` and `SslContextBuilder::min_proto_version` are only present
357    when building against 1.1.0g and up rather than 1.1.0.
358
359### Added
360
361* Added `CmsContentInfo::sign`.
362* Added `Clone` and `ToOwned` implementations to `Rsa` and `RsaRef` respectively.
363* The `min_proto_version` and `max_proto_version` methods are available when linking against
364    LibreSSL 2.6.1 and up in addition to OpenSSL.
365* `X509VerifyParam` is available when linking against LibreSSL 2.6.1 and up in addition to OpenSSL.
366* ALPN support is available when linking against LibreSSL 2.6.1 and up in addition to OpenSSL.
367* `Stack` and `StackRef` are now `Sync` and `Send`.
368
369## [v0.10.7] - 2018-04-30
370
371### Added
372
373* Added `X509Req::public_key` and `X509Req::extensions`.
374* Added `RsaPrivateKeyBuilder` to allow control over initialization of optional components of an RSA
375    private key.
376* Added DER encode/decode support to `SslSession`.
377* openssl-sys now provides the `DEP_OPENSSL_VERSION_NUMBER` and
378    `DEP_OPENSSL_LIBRESSL_VERSION_NUMBER` environment variables to downstream build scripts which
379    contains the hex-encoded version number of the OpenSSL or LibreSSL distribution being built
380    against. The other variables are deprecated.
381
382## [v0.10.6] - 2018-03-05
383
384### Added
385
386* Added `SslOptions::ENABLE_MIDDLEBOX_COMPAT`.
387* Added more `Sync` and `Send` implementations.
388* Added `PKeyRef::id`.
389* Added `Padding::PKCS1_PSS`.
390* Added `Signer::set_rsa_pss_saltlen`, `Signer::set_rsa_mgf1_md`, `Signer::set_rsa_pss_saltlen`, and
391    `Signer::set_rsa_mgf1_md`
392* Added `X509StoreContextRef::verify` to directly verify certificates.
393* Added low level ECDSA support.
394* Added support for TLSv1.3 custom extensions. (OpenSSL 1.1.1 only)
395* Added AES-CCM support.
396* Added `EcKey::from_private_components`.
397* Added CMAC support.
398* Added support for LibreSSL 2.7.
399* Added `X509Ref::serial_number`.
400* Added `Asn1IntegerRef::to_bn`.
401* Added support for TLSv1.3 stateless handshakes. (OpenSSL 1.1.1 only)
402
403### Changed
404
405* The Cargo features previously used to gate access to version-specific OpenSSL APIs have been
406    removed. Those APIs will be available automatically when building against an appropriate OpenSSL
407    version.
408* Fixed `PKey::private_key_from_der` to return a `PKey<Private>` rather than a `PKey<Public>`. This
409    is technically a breaking change but the function was pretty useless previously.
410
411### Deprecated
412
413* `X509CheckFlags::FLAG_NO_WILDCARDS` has been renamed to `X509CheckFlags::NO_WILDCARDS` and the old
414    name deprecated.
415
416## [v0.10.5] - 2018-02-28
417
418### Fixed
419
420* `ErrorStack`'s `Display` implementation no longer writes an empty string if it contains no errors.
421
422### Added
423
424* Added `SslRef::version2`.
425* Added `Cipher::des_ede3_cbc`.
426* Added `SslRef::export_keying_material`.
427* Added the ability to push an `Error` or `ErrorStack` back onto OpenSSL's error stack. Various
428    callback bindings use this to propagate errors properly.
429* Added `SslContextBuilder::set_cookie_generate_cb` and `SslContextBuilder::set_cookie_verify_cb`.
430* Added `SslContextBuilder::set_max_proto_version`, `SslContextBuilder::set_min_proto_version`,
431    `SslContextBuilder::max_proto_version`, and `SslContextBuilder::min_proto_version`.
432
433### Changed
434
435* Updated `SslConnector`'s default cipher list to match Python's.
436
437### Deprecated
438
439* `SslRef::version` has been deprecated. Use `SslRef::version_str` instead.
440
441## [v0.10.4] - 2018-02-18
442
443### Added
444
445* Added OpenSSL 1.1.1 support.
446* Added `Rsa::public_key_from_pem_pkcs1`.
447* Added `SslOptions::NO_TLSV1_3`. (OpenSSL 1.1.1 only)
448* Added `SslVersion`.
449* Added `SslSessionCacheMode` and `SslContextBuilder::set_session_cache_mode`.
450* Added `SslContextBuilder::set_new_session_callback`,
451    `SslContextBuilder::set_remove_session_callback`, and
452    `SslContextBuilder::set_get_session_callback`.
453* Added `SslContextBuilder::set_keylog_callback`. (OpenSSL 1.1.1 only)
454* Added `SslRef::client_random` and `SslRef::server_random`. (OpenSSL 1.1.0+ only)
455
456### Fixed
457
458* The `SslAcceptorBuilder::mozilla_modern` constructor now disables TLSv1.0 and TLSv1.1 in
459    accordance with Mozilla's recommendations.
460
461## [v0.10.3] - 2018-02-12
462
463### Added
464
465* OpenSSL is now automatically detected on FreeBSD systems.
466* Added `GeneralName` accessors for `rfc822Name` and `uri` variants.
467* Added DES-EDE3 support.
468
469### Fixed
470
471* Fixed a memory leak in `X509StoreBuilder::add_cert`.
472
473## [v0.10.2] - 2018-01-11
474
475### Added
476
477* Added `ConnectConfiguration::set_use_server_name_indication` and
478    `ConnectConfiguration::set_verify_hostname` for use in contexts where you don't have ownership
479    of the `ConnectConfiguration`.
480
481## [v0.10.1] - 2018-01-10
482
483### Added
484
485* Added a `From<ErrorStack> for ssl::Error` implementation.
486
487## [v0.10.0] - 2018-01-10
488
489### Compatibility
490
491* openssl 0.10 still uses openssl-sys 0.9, so openssl 0.9 and 0.10 can coexist without issue.
492
493### Added
494
495* The `ssl::select_next_proto` function can be used to easily implement the ALPN selection callback
496    in a "standard" way.
497* FIPS mode support is available in the `fips` module.
498* Accessors for the Issuer and Issuer Alternative Name fields of X509 certificates have been added.
499* The `X509VerifyResult` can now be set in the certificate verification callback via
500    `X509StoreContextRef::set_error`.
501
502### Changed
503
504* All constants have been moved to associated constants of their type. For example, `bn::MSB_ONE`
505    is now `bn::MsbOption::ONE`.
506* Asymmetric key types are now parameterized over what they contain. In OpenSSL, the same type is
507    used for key parameters, public keys, and private keys. Unfortunately, some APIs simply assume
508    that certain components are present and will segfault trying to use things that aren't there.
509
510    The `pkey` module contains new tag types named `Params`, `Public`, and `Private`, and the
511    `Dh`, `Dsa`, `EcKey`, `Rsa`, and `PKey` have a type parameter set to one of those values. This
512    allows the `Signer` constructor to indicate that it requires a private key at compile time for
513    example. Previously, `Signer` would simply segfault if provided a key without private
514    components.
515* ALPN support has been changed to more directly model OpenSSL's own APIs. Instead of a single
516    method used for both the server and client sides which performed everything automatically, the
517    `SslContextBuilder::set_alpn_protos` and `SslContextBuilder::set_alpn_select_callback` handle
518    the client and server sides respectively.
519* `SslConnector::danger_connect_without_providing_domain_for_certificate_verification_and_server_name_indication`
520    has been removed in favor of new methods which provide more control. The
521    `ConnectConfiguration::use_server_name_indication` method controls the use of Server Name
522    Indication (SNI), and the `ConnectConfiguration::verify_hostname` method controls the use of
523    hostname verification. These can be controlled independently, and if both are disabled, the
524    domain argument to `ConnectConfiguration::connect` is ignored.
525* Shared secret derivation is now handled by the new `derive::Deriver` type rather than
526    `pkey::PKeyContext`, which has been removed.
527* `ssl::Error` is now no longer an enum, and provides more direct access to the relevant state.
528* `SslConnectorBuilder::new` has been moved and renamed to `SslConnector::builder`.
529* `SslAcceptorBuilder::mozilla_intermediate` and `SslAcceptorBuilder::mozilla_modern` have been
530    moved to `SslAcceptor` and no longer take the private key and certificate chain. Install those
531    manually after creating the builder.
532* `X509VerifyError` is now `X509VerifyResult` and can now have the "ok" value in addition to error
533    values.
534* `x509::X509FileType` is now `ssl::SslFiletype`.
535* Asymmetric key serialization and deserialization methods now document the formats that they
536    correspond to, and some have been renamed to better indicate that.
537
538### Removed
539
540* All deprecated APIs have been removed.
541* NPN support has been removed. It has been supersceded by ALPN, and is hopefully no longer being
542    used in practice. If you still depend on it, please file an issue!
543* `SslRef::compression` has been removed.
544* Some `ssl::SslOptions` flags have been removed as they no longer do anything.
545
546## Older
547
548Look at the [release tags] for information about older releases.
549
550[Unreleased]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.35...master
551[v0.10.35]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.34...openssl-v0.10.35
552[v0.10.34]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.33...openssl-v0.10.34
553[v0.10.33]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.32...openssl-v0.10.33
554[v0.10.32]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.31...openssl-v0.10.32
555[v0.10.31]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.30...openssl-v0.10.31
556[v0.10.30]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.29...openssl-v0.10.30
557[v0.10.29]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.28...openssl-v0.10.29
558[v0.10.28]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.27...openssl-v0.10.28
559[v0.10.27]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.26...openssl-v0.10.27
560[v0.10.26]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.25...openssl-v0.10.26
561[v0.10.25]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.24...openssl-v0.10.25
562[v0.10.24]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.23...openssl-v0.10.24
563[v0.10.23]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.22...openssl-v0.10.23
564[v0.10.22]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.21...openssl-v0.10.22
565[v0.10.21]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.20...openssl-v0.10.21
566[v0.10.20]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.19...openssl-v0.10.20
567[v0.10.19]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.18...openssl-v0.10.19
568[v0.10.18]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.17...openssl-v0.10.18
569[v0.10.17]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.16...openssl-v0.10.17
570[v0.10.16]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.15...openssl-v0.10.16
571[v0.10.15]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.14...openssl-v0.10.15
572[v0.10.14]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.13...openssl-v0.10.14
573[v0.10.13]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.12...openssl-v0.10.13
574[v0.10.12]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.11...openssl-v0.10.12
575[v0.10.11]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.10...openssl-v0.10.11
576[v0.10.10]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.9...openssl-v0.10.10
577[v0.10.9]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.8...openssl-v0.10.9
578[v0.10.8]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.7...openssl-v0.10.8
579[v0.10.7]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.6...openssl-v0.10.7
580[v0.10.6]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.5...openssl-v0.10.6
581[v0.10.5]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.4...openssl-v0.10.5
582[v0.10.4]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.3...openssl-v0.10.4
583[v0.10.3]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.2...openssl-v0.10.3
584[v0.10.2]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.1...openssl-v0.10.2
585[v0.10.1]: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.0...openssl-v0.10.1
586[v0.10.0]: https://github.com/sfackler/rust-openssl/compare/v0.9.23...openssl-v0.10.0
587[release tags]: https://github.com/sfackler/rust-openssl/releases
588