14 KiB
14 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Fixed
- Clean up cached PEMs at the end of a Session. #203
3.3.1 (2021-02-12)
Changed
- Skip keychain password prompt on macOS. #200
Fixed
- Restore app group in keychain queries about password references. #201
3.3.0 (2021-01-28)
Added
- Handle
--data-ciphers
anddata-ciphers-fallback
from OpenVPN 2.5 - Support DNS over HTTPS (DoH) and TLS (DoT).
Changed
- Pick tunnel password reference from an existing keychain item context.
Fixed
- Do not override network DNS settings when not provided by VPN. #197
3.2.0 (2021-01-07)
Changed
- Encoding of internal provider configuration.
3.1.0 (2020-12-28)
Added
- Parse
--tun-mtu
option.
Changed
- Update API to access current Wi-Fi SSID.
- Refactor access to keychain.
3.0.0 (2020-11-15)
Added
- Support for Apple Silicon (macOS arm64).
- Customize IV_UI_VER (pahnev). #178
Changed
- Deployment targets raised to iOS 12.0 and macOS 10.15
- Use active profile name in VPN configuration (device settings).
Fixed
- Incorrect tunnel bundle identifiers in Demo. #176
- IV_PLAT in peer info was hardcoded to "mac" (pahnev). #177
2.2.7 (2020-06-11)
Fixed
- Code cleanup.
2.2.6 (2020-05-12)
Fixed
- Address concerns from Guido Vranken fuzzers. #141
2.2.5 (2020-05-12)
Changed
- Improve IP Header parsing (roop). #171
2.2.4 (2020-05-10)
Added
- Support for SAN hostname in certificates (jaroslavas). #168
Fixed
- IPv6 traffic broken on Mojave. #146, #169
- Restore tunnel MTU setting (ueshiba). #148
- Transient connected state upon connection failure (rob-patchett). #128
2.2.3 (2020-04-21)
Changed
- Upgrade OpenSSL to 1.1.1g. #166
2.2.2 (2020-04-20)
Changed
- Upgrade OpenSSL to 1.1.1f. #165
Fixed
- Index out of range during negotiation (Grivus). #143
- Handle server shutdown/restart (remote
--explicit-exit-notify
). #131 - Abrupt disconnection upon unknown packet key id (johankool). #161
- Handle explicit IPv4/IPv6 protocols (
4
or6
suffix in--proto
). #153 - Mitigate IP traffic breaking on Mojave. #146
- Pointer warnings from Xcode 11.4 upgrade.
2.2.1 (2019-12-14)
Fixed
- Keep-alive pings coalescing over time.
- Ping timeout not checked for if keep-alive is disabled.
2.2.0 (2019-12-11)
Changed
- Require explicit
--ca
and--cipher
in .ovpn configuration file.
2.1.0 (2019-11-03)
Added
- Allow keep-alive timeout to be configured by the server or client (Robert Patchett). #122
- Support for proxy autoconfiguration URL (ThinkChaos). #125
- Support multiple DNS search domains. #127
Changed
- Upgrade OpenSSL to 1.1.1d. #123
Fixed
- Session negotiation succeeds too early (Robert Patchett). #124
- Handle
vpn_gateway
literal in--route
.
2.0.5 (2019-09-26)
Fixed
- OpenSSL framework structure on macOS makes binary invalid when uploaded to App Store Connect.
- Potential OOB in memcmp() (Guido Vranken).
2.0.3 (2019-09-06)
Fixed
- Deadlock on shutdown (further fixes). #106
- Regression with negotiation failing due to .staleSession error. #120
2.0.2 (2019-07-27)
Fixed
- Deadlock on shutdown. #106
- Stuck on SOFT_RESET. #105
- Tunnel dies unexpectedly on macOS. #111
- Recover from ENOBUFS. #112
2.0.1 (2019-05-28)
Fixed
- Regression in LZO subspec.
2.0.0 (2019-05-28)
Changed
- Major refactoring.
1.7.1 (2019-05-14)
Added
- Partially support
--redirect-gateway block-local
. #81
Fixed
- Authentication failure due to local options. #95
- Customize security level (to tolerate weak certificates). #97
- Connection stalls on server-initiated SOFT_RESET.
- Wrong configuration mutability.
1.7.0 (2019-04-28)
Changed
- Do not redirect all traffic to VPN unless
--redirect-gateway
specified. #90 - Upgrade OpenSSL to 1.1.0j.
Fixed
- SoftEther sends an incomplete PUSH_REPLY. #86
- Authentication/Decrypt errors with TLS wrapping. #88, #61
- Broken DNS when no servers provided. #84
- UDP may disconnect on high-speed upload link. #87
- Client certificate may fail when private key in .ovpn is encrypted. #91
- DNS is unreachable when VPN is not default gateway. #94
1.6.2 (2019-04-17)
Added
- Basic support for proxy settings (no PAC). #74
Changed
- Make
hostname
optional and pickresolvedAddresses
if nil.
Fixed
- Negotiation times out with SoftEther. #67
- Unable to handle continuated PUSH_REPLY. #71
- TCP requiring multiple PUSH_REQUEST. #73
- DNS inconsistencies. #85
1.6.1 (2019-04-07)
Fixed
- Cipher/digest erroneously required by AppExtension.
1.6.0 (2019-04-06)
Added
- Handle
dhcp-option DOMAIN
. #77
Changed
- Refactor configuration parser for reuse.
Fixed
1.5.2 (2019-04-01)
Added
- Optional data count report via
TunnelKitProvider.Configuration.dataCount(in:)
.
Changed
- Upgraded to Swift 5.
Fixed
checksEKU
not propagated to TunnelKitProvider.
1.5.1 (2019-03-25)
Added
Fixed
1.5.0 (2019-03-20)
Added
1.4.3 (2019-03-18)
Fixed
- Several reconnection issues.
- Missing EKU flag evaluation.
1.4.2 (2019-03-05)
Added
- Shut down if server pushes a compressed data packet.
Fixed
- Custom DNS servers were not applied.
- Reject
<connection>
blocks as unsupported.
1.4.1 (2019-02-25)
Added
Changed
- Enable or disable EKU according to
remote-cert-tls server
in .ovpn file. #64
Fixed
- Compiling errors in demo target.
- Linking errors with OpenSSL.
- A few potential vulnerabilities.
1.4.0 (2018-11-12)
Added
- Parser for .ovpn configuration files. #47
Changed
- Due to #47,
SocketType
andEndpointProtocol
were moved to Core subspec.
1.3.1 (2018-11-07)
Fixed
- IPv4/UInt32 conversions are not endianness-agnostic. #46
1.3.0 (2018-10-28)
Changed
- Refactored tunnel configuration API for increased code reuse. #44
Deprecated
- Use high-level accessories instead of
debugLogKey
andlastErrorKey
. #45
Fixed
- IPv4/UInt32 calculations were wrong.
1.2.2 (2018-10-25)
Changed
- Debug log is saved to group container rather than
UserDefaults
. #43
Fixed
- Handle server-initiated renegotiation. #41
- Potentially private data (e.g. Internet addresses) is now masked in debug log. #42
1.2.1 (2018-10-24)
Added
- Configuration key
lastErrorKey
for reporting errors to host app. #40 - Server extended key usage validation (EKU). #27
Fixed
- CA file was not closed after MD5 calculation when using PIA patches.
- Mitigated an issue with MTU in TCP mode during negotiation. #39
1.2.0 (2018-10-20)
Added
- Support for
--tls-auth
wrapping. #34 - Support for
--tls-crypt
wrapping. #35 - Parser for static OpenVPN keys from file. #36
Fixed
- Handling of mixed DATA_V1/DATA_V2 packets. #30
1.1.2 (2018-10-18)
Added
- Restored support for PIA patches. #32
1.1.1 (2018-10-10)
Fixed
- Make CA non-optional. #28
1.1.0 (2018-09-26)
Added
- Client certificate verification. #3
- Support for both
--comp-lzo
and--compress
compression framing. #2, #5, #10 - Routes setup from PUSH_REPLY. #7
- Support for IPv6. #8
- Support for server-side NCP. #11
- Property to mark ciphers not requiring digest auth (e.g. GCM). #13
Codable
implementations for native Swift serialization. #15- More cipher and digest algorithms. #16
- Negotiated compression framing from PUSH_REPLY. #19
- Customizable keep-alive. #20
- Negotiated keep-alive from PUSH_REPLY. #22
- Peer-info metadata.
Changed
- Raised iOS target to 11 (drops 32-bit support).
- Upgraded OpenSSL from 1.1.0h to 1.1.0i.
- Minor adjustments for Xcode 10 / Swift 4.2.
- Deep refactoring of control channel for future extensibility.
- App group moved out of tunnel configuration, to make it more platform-agnostic and coherent to serialize.
- Keep-alive is disabled by default.
- Several internal renamings.
Fixed
- Sensitive data logged in PUSH_REPLY. #12
- Bad interpretation of 0 seconds between renegotiations. #18
- Incorrect behavior on data-related failures. #21
1.0.0 (2018-08-23)
Added
- Initial fork from https://github.com/pia-foss/tunnel-apple
Removed
- Non-standard PIA patches.