The focus of this release has been on cleaning up the existing code and removing deprecated APIs of 2.x, providing a production ready DTLS implementation so that CoAP clients and servers can communicate securely with each other.
During the course of development, major parts of the protocol stack have been refactored or rewritten in order to make Californium suitable for production use cases. The test suite has been extended with interoperability tests for libcoap using different DTLS implementations.
The following features have been redesigned/cleaned up:
- Support for DTLS 1.2 as defined by RFC6347
- Blockwise transfer as defined by RFC7959 now also includes the BERT extension as defined in RFC 8323
- CoAP Proxy2
- CoAP Congestion Control (experimental)
- CoAP Multicast
- Configuration supports now modules, typed values, and documentation in the properties file.
The following features have been updated:
- Support of DTLS 1.2 Connection ID (draft-ietf-tls-dtls-connection-id-13). Adapted code-point and MAC calculation. Configurable support for deprecated code-point and MAC calculation.
The following features have been added:
- DTLS support for Extended Master Secret RFC 7627
- DTLS graceful restart (save and load the security context)
- DTLS support for RSA (experimental)
- DTLS support for Bouncy Castle as alternative to openjdk jce (experimental)
- CoAP No Server Response RFC 7967
- Experimental support of Bouncy Castle as alternative JCE.
- Experimental support of RSA for node's certificate (server/client, ca was already supported)
Please consider Migration Hints for additional details.
3.0.0-RC1 is released. Please provide your feedback.