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)
Please contact us if you have any questions about implementation and offered services.