EP3103246B1

Uniform communication protocols for communication between controllers and accessories

Abstract

This record has no abstract on file.

EP3103246B1, drawing sheet 1
Sheet 1 of 71

Term

8.4 yearsleft in the term

Expires 5 February 2035.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

25 claims: 4 independent, 21 dependent

  1. 1
    A method comprising:detecting, by a controller, an accessory that is available for pairing;performing, by the controller, a pair setup operation to establish a pairing with the accessory, the pair setup operation including: establishing a shared secret using an out-of-band information item exchanged between the accessory and the controller;using the shared secret to securely exchange a long-term public key of the accessory and a long-term public key of the controller;and securely and persistently storing, by the controller, the long-term public key of the accessory in association with an identifier of the accessory;obtaining, by the controller, an accessory definition record from the paired accessory, the accessory definition record including a set of services, each service having a set of characteristics, each characteristic representing an aspect of accessory state;and communicating, by the controller, a request to the paired accessory to modify one or more of the characteristics specified in the accessory definition record, the request being interpretable by the paired accessory as an instruction to invoke an operation of the paired accessory.
  2. 8
    A controller comprising:a communication interface to communicate with one or more accessories;a secure storage element to securely store pairing records for one or more paired accessories;a data storage element configured to store accessory definition records for one or more paired accessories;and a processing subsystem coupled to the communication interface, the secure storage element, and the data storage element, the processing subsystem configured to: establish a pairing with one or more accessories, wherein establishing a pairing with an accessory includes: obtaining an out-of-band information item;securely obtaining, from the accessory, a long-term public key of the accessory and a proof that the accessory has the out-of-band information item;securely providing a long-term public key of the controller to the accessory;and creating and persistently storing a pairing record for the accessory in the secure storage element, the pairing record including a long-term public key of the accessory;obtain, after establishing a pairing with an accessory, an accessory definition record from the paired accessory, the accessory definition record including a set of services, each service having a set of characteristics, each characteristic representing an aspect of accessory state;and invoke an operation of the paired accessory by communicating to the accessory a request to modify one or more of the characteristics specified in the accessory definition record.
  3. 13
    A method comprising:advertising, by an accessory, that the accessory is available for pairing;performing, by the accessory, a pair setup operation to establish a pairing with a controller, the pair setup operation including: establishing a shared secret using an out-of-band information item exchanged between the accessory and the controller;using the shared secret to securely exchange a long-term public key of the accessory and a long-term public key of the controller;and securely and persistently storing, by the accessory, the long-term public key of the controller in association with an identifier of the controller;providing, by the accessory to the paired controller, an accessory definition record for the paired accessory, the accessory definition record including a set of services, each service having a set of characteristics, each characteristic corresponding to an aspect of accessory state;receiving, by the accessory, a request from the paired controller to modify one or more of the characteristics specified in the accessory definition record;and performing, by the accessory, an invoked operation in response to the received request.
  4. 22
    An accessory comprising:a communication interface to communicate with one or more controllers;an operational component;a secure storage element to securely store pairing records;an accessory data storage element configured to store an accessory definition record, the accessory definition record including a set of sendees, each service having a set of characteristics, each characteristic representing an aspect of accessory state including a state of the operational component;and a processing subsystem coupled to the communication interface, the operational component, the secure storage element, and the accessory data storage element, the processing subsystem configured to: establish a pairing with one or more controllers, wherein establishing a pairing with a controller includes: obtaining an out-of-band information item;securely obtaining, from the controller, a long-term public key of the controller and a proof that the controller has the out-of-band information item;securely providing a long-term public key of the accessory to the controller;and creating and persistently storing a pairing record for the controller in the secure storage element, the pairing record including a long-term public key of the controller;provide, after establishing a pairing with a controller, the stored accessory definition record to the paired controller;and receive, from the paired controller, a request to modify one or more of the characteristics specified in the accessory definition record;and effect an operation of the at least one operating component in response to the request.