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