Handling of possible SHIP-ID mismatch by the stack #127
Replies: 2 comments 1 reply
-
Hey, |
Beta Was this translation helpful? Give feedback.
-
I do like this idea a lot. We would need to define how the handling of different parameters should be done:
The process changes with SHIP 1.1. The recommendation there is to only match with the SHIP ID. The SKI can change there, when certificates get updated. Not mentioning this to include this in here, but to keep in mind and not design something that has to completely change again. In preparation to this the API could already take a list of SKIs for a service. I'd also not use the word How about something like this?
|
Beta Was this translation helpful? Give feedback.
-
api.ServiceInterface
offers the possibility to mark a SKI as trusted by calling the methodapi.ServiceInterface.RegisterRemoteSKI
. This method takes the SKI as sole parameter. The SKI comes from the user app's truststore, where it is stored together with the corresponding SHIP-ID. Upon a connection attempt the user app must compare the SHIP-ID saved in the truststore with the SHIP-ID it receives by the callbackapi.ServiceReaderInterface.ServiceShipIDUpdate
. In case of a mismatch the user app must cancel the pairing process.I'd like to propose to move this whole process into the stack. This would require a new method in
api.ServiceInterface
, e. g.RegisterRemoteDevice(ski string, shipID string)
. The initial SHIP-ID would come from[]shipapi.RemoteService.Identifier
as reported byapi.ServiceReaderInterface.VisibleRemoteServicesUpdated
. In case of a SHIP-ID mismatch, the stack would automatically cancel the pairing and updateapi.ConnectionStateDetail.ConnectionState
with a new stateConnectionStateShipIDMismatch
.What do you think?
Beta Was this translation helpful? Give feedback.
All reactions