The focus of this release has been on stabilizing the existing functionality of 1.0.x, fixing bugs and 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 signifacantly extended to increase test coverage and assert compliance with the arbitrary RFCs implemented by Californium.
Most work has been spent on improving/stabilizing the following features
- Support for DTLS 1.2 as defined by RFC6347 plus:
- ECDSA and PSK based cipher suites required by Lightweight M2M 1.0
- Server Name Indication (SNI), Maximum Fragment Length Negotiation as defined by RFC6066
- usage of RawPublicKeys as defined by RFC7250
- automatic session resumption to better support operation of clients behind a NAT firewall
- non-RFC7252 compliant request/response matching to better support long-term observations
- Blockwise transfer as defined by RFC7959
- Observing resources as defined by RFC7641
The following features have been added:
- Experimental (currently not complete) implementation of CoAP over TCP (RFC 8323), mostly at the level of draft-ietf-core-coap-tcp-tls-09
- Experimental implementation of DTLS 1.2 Connection ID (draft-ietf-tls-dtls-connection-id-07). The draft is not released, the new record type and hello extension have early assigned code-points. According to the IETF, these code-point values are to be considered final, though.
- Experimental implementation of OSCORE (Object Security for Constrained RESTful Environments), see draft-ietf-core-object-security-16.