jSHIP
Our Java library jSHIP implements the SHIP specification version 1.0.1. It provides dynamic discovery of EEBus service instances in a network and resolves other nodes through multicast DNS. It can be used to easily set up a decentralized and secure websocket communication with TLS. For that, all defined states of chapter SHIP Data Exchange of the specification are supported. As a developer you can use our library out of the box without installing any infrastructure. We provide an API package with all needed classes for usage, to instantiate a ship node as server or client.
Changelog
[1.1.0] – 2023-07-28
Added
- implement AMI state
Fixed
- WebSocketHandler now notifies ConnectionHandler properly when closing a double connection
- KeyManagement:
- existing key store can be loaded
- fix generating, storing and loading of keystore
- fix asn1 encoding now using octet string instead of sequence
- add SubjectKeyIdentifier to self-signed certificate
- SME_PROT_H state: fix faulty parsing of messages in this state and add parsing for messageProtocolHandshakeError messages
- replace polling for timers with ScheduledExecutors
- CMI state is no longer skipped after reconnection
[1.0.0] – 2021-12-09
Initial release.
Added
- implement SHIP v1.0.1
- support secure TCP/IP connections using TLS/SSL Encryption (IETF RFC 5246) and WebSockets (IETF RFC 6455)
- support Certificate-Based authentication
- support non-blocking, asynchronous authentication process
- support discovery of active nodes using mDNS (IETF RFC 6762) and DNS-Based Service Disovery (IETF RFC 676)