setKeys

@MessageMapping(value = ["set"])
suspend fun setKeys(@Payload deviceKeyBundle: ByteArray, @DestinationVariable client: String): RSocketResponse

Set Keys request/response RSocket API. Takes as argument a SetupDeviceKeyBundle encoded in ProtoBuf format in payload. In metadata takes the client path as String.

Sets signal-keys for the target device. After this operation the device should be able to initiate a session(double-ratchet) with other devices.

Returns a HubPayload encoded in ProtoBuf format. In case the operation was successful the HubPayload contains data with "success" as String. Else it contains error with the corresponding code. If there is not any matching devices or an account associated with the target uuid it returns code 404. In cases of duplicate one-time keys it returns code 409 and if the format of receiving key-bundle is not as expected it returns 400.