- Added standalone server example
- Made send APIs asynchronous (breaking change)
- Introduced new requiresClosing state
- Use new requiresClosing state for alert handling
- Prevent clients t from crashing when using empty PSK
- Let server actually perform shutdown on connection loss
- Let client throw SocketException if not connected anymore
- Added support for M1 Macs using OpenSSL installed via Homebrew
- Introduced a new
DtlsTimeoutException
- Fixed a bug that could cause a segmentation fault for the server when a client closed the connection
- Fixed a bug that caused failed client-side handshakes to emit uncatchable Exceptions
- fix: properly handle unreachable network
- fix: avoid segmentation fault for client connection
- feat: add additional library names for OpenSSL 3 discovery
- fix(client): throw SocketException if Network is unreachable
- fix(server): fix server behavior during handshake
- feat: expose state of connections
- chore: use lint package for stricter linting
- fix(dtls_client): improve error handling
- fix: shutdown connections only when actually connected
- fix: fix client behavior during connection closing
- fix: fix server behavior during connection closing
- ci: simplify code coverage generation
- refactor: refactor connection closing mechanism
- refactor: refactor client connection setup
- test: increase test coverage
- refactor: refactor DTLS server implementation
- fix: don't close client or server connection twice during alert handling
- fix(client): handle unreachable network
- docs: add library documentation
- feat!: rework library loading
- fix: use correct name for libcrypto load exception
- fix(dtls_client): switch loading order of libcrypto and libssl
- feat!: simplify identity hint determination
- feat!: do not use typed_data types for external APIs
- fix(dtls_client): throw exception if no ciphers are available
- fix: close client and server when the underlying socket is closed
- fix: export
DtlsException
class
- chore!: bump required Dart version to 2.17
- refactor: refactor alert handling using enhanced enums
- feat: replace
TlsException
s withDtlsException
- feat: add DTLS server implementation
- docs: update README
- docs: fix documentation of
DtlsException
- fix(client): improve connection closing behavior
- refactor: refactor DTLS client
- feat!: pass
DtlsClientContext
toconnect
method - feat: add
timeout
parameter toconnect
method
- feat!: use
DynamicLibrary
objects for loading libssl and libcrpyto externally - feat!: don't expose
OpenSsl
ffi class
- chore: update dependencies, upgrade to ffi 2.x.x
- fix: fix hostname verification of X.509 certificates
- feat: shutdown DTLS connection upon closing
- refactor: rename
NativeLibrary
class toOpenSsl
- feat: expose
OpenSsl
class
- feat: look for multiple default OpenSSL file names
- feat: allow passing custom libSsl and libCrypto objects
- feat: add additional default macOS lib paths
- chore: also run CI on Windows and macOS
- fix: fix macOS homebrew paths
- chore: adjust example
- docs: update README
- fix: don't iterate over connection cache for incoming data
- feat!: improve memory safety of DtlsClientContext
- fix: fix caching of DTLS connections in clients
- fix!: make connection closing asynchronous
- chore: rename example file
- fix: call BIO_free on the correct NativeLibrary object
- feat: define callback for handling DTLS alerts
- feat!: refactor library, rework external API
- initial version with added PSK functionality and Windows support