IP Library Granted Patent US 12701166
Granted Patent B2
US 12701166 · App. 18/603,985 · Granted Aug 4, 2026

Connectivity framework having session layer security for embedded secure connectivity

Inventor: Paolo Trere (Santa Clara, CA)
Assignee: Microchip Technology Incorporated
H04L67/141H04L5/0044H04L45/745H04L63/061H04L63/0869H04L67/12H04L69/08H04L69/18H04L69/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12701166
App. No.
18/603,985
Granted
Aug 4, 2026
Kind
B2
Abstract

An apparatus comprises a computing device including one or more processors, multiple peripheral communication devices of different communication protocol types operably connected to the one or more processors, and a memory to store processor-executable instructions of an application layer protocol stack. The processor-executable instructions are adapted such that, when executed by the one or more processors, cause the one or more processors to perform operations for respective ones of secure communication sessions to be established with respective destination devices via respective ones of the multiple peripheral communication devices. The operations comprise establishing the respective ones of secure communication sessions with the respective destination devices via the respective ones of the multiple peripheral communication devices according to an exchange of messages of a mutual authentication and key exchange protocol that is common to the multiple peripheral communication devices.

Claims (94)

1 . An apparatus comprising:

a computing device comprising one or more processors, multiple peripheral communication devices of different communication protocol types operably connected to the one or more processors, and a memory storing processor-executable instructions, the processor-executable instructions including an application layer protocol stack for processing between an application of the computing device and respective input/output (I/O) buffers of the multiple peripheral communication devices, the processor-executable instructions such that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

for each secure communication session of multiple secure communication sessions to be established with respective destination devices via respective ones of the multiple peripheral communication devices, performing an exchange of messages of a mutual authentication and key exchange protocol to establish a respective secure communication session with a respective destination device via a respective one of the multiple peripheral communication devices, wherein respective ones of the messages are communicated in a message format according to a unified messaging protocol that is common to the messages communicated via the multiple peripheral communication devices, and wherein the exchange of messages of the mutual authentication and key exchange protocol is common to establishment of the multiple secure communication sessions via the multiple peripheral communication devices.

2 . The apparatus of claim 1 , wherein the processor-executable instructions of the computing device cause the one or more processors to perform further operations comprising:

exchanging identity information with the respective destination device via first and second messages; and

exchanging key agreement exchange information of a signed key agreement exchange protocol with the respective destination device via third and fourth messages.

3 . The apparatus of claim 1 , wherein the processor-executable instructions are to cause the one or more processors of the computing device to perform the operations comprising:

storing, in a common message queue, the respective ones of the messages communicated via the respective ones of the multiple peripheral communication devices.

4 . The apparatus of claim 1 , wherein the processor-executable instructions of the application layer protocol stack are to process function calls to a set of functions associated with a set of application programming interfaces (APIs) exposed to the application, the set of functions comprising communication functions invoked by the application.

5 . The apparatus of claim 1 , wherein the processor-executable instructions are to cause the one or more processors of the computing device to perform the operations with respect to the multiple peripheral communication devices comprising two or more of a Universal Asynchronous Receiver-Transmitter (UART) interface, an Inter-Integrated Circuit (I2C) interface, a Serial Peripheral Interface (SPI) interface, a Controller Area Network (CAN) interface, a TIS interface, a Bluetooth or Bluetooth Low Energy (BLE) interface, and an IEEE 802.15.4 or low-rate wireless personal area network (LR-WPAN) interface, and one or more of a Wi-Fi interface, an Ethernet interface, and a Universal Serial Bus (USB) interface.

6 . A non-transitory processor-readable medium comprising: processor-executable instructions stored on the non-transitory processor-readable medium, the processor-executable instructions to be executable by one or more processors of a computing device including multiple peripheral communication devices of different communication protocol types, the processor-executable instructions including an application layer protocol for processing between an application of the computing device and respective input/output (I/O) buffers of the multiple peripheral communication devices, the processor-executable instructions adapted such that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

for each secure communication session of multiple secure communication sessions to be established with respective destination devices via respective ones of the multiple peripheral communication devices, performing an exchange of messages of a mutual authentication and key exchange protocol to establish a respective secure communication session with a respective destination device via a respective one of the multiple peripheral communication devices, wherein respective ones of the messages are communicated in a message format according to a unified messaging protocol that is common to the messages communicated via the multiple peripheral communication devices, and wherein the exchange of messages of the mutual authentication and key exchange protocol is common to establishment of the multiple secure communication sessions via the multiple peripheral communication devices.

7 . The non-transitory processor-readable medium of claim 6 , wherein the processor-executable instructions are to cause the one or more processors of the computing device to perform further operations comprising:

exchanging identity information with the respective destination device via first and second messages; and

exchanging key agreement exchange information of a signed key agreement exchange protocol with the respective destination device via third and fourth messages.

8 . The non-transitory processor-readable medium of claim 6 , wherein the processor-executable instructions are to cause the one or more processors of the computing device to perform the operations comprising:

storing, in a common message queue, the respective ones of the messages communicated via the respective ones of the multiple peripheral communication devices.

9 . The non-transitory processor-readable medium of claim 6 , wherein the processor-executable instructions are to cause the one or more processors of the computing device to perform the operations with respect to the multiple peripheral communication devices comprising two or more of a Universal Asynchronous Receiver-Transmitter (UART) interface, an Inter-Integrated Circuit (I2C) interface, a Serial Peripheral Interface (SPI) interface, a Controller Area Network (CAN) interface, a TIS interface, a Bluetooth or Bluetooth Low Energy (BLE) interface, and an IEEE 802.15.4 or low-rate wireless personal area network (LR-WPAN) interface, and one or more of a Wi-Fi interface, an Ethernet interface, and a Universal Serial Bus (USB) interface.

10 . A non-transitory processor-readable medium to store processor-executable instructions of a connectivity framework that, when executed by one or more processors of a computing device including multiple peripheral communication devices of different communication protocol types, cause the one or more processors to perform operations, the operations comprising:

receiving and processing function calls to at least some functions of a set of functions of the connectivity framework, the set of functions associated with a set of application programming interfaces (APIs) exposed to an application of the computing device that invokes the function calls, the connectivity framework for processing between the application and respective input/output (I/O) buffers of the multiple peripheral communication devices; and

at least partially responsive to receiving, from the application, a function call to a function of one of the APIs to establish a communication session with a destination device, the function call indicating input parameters to identify a destination identifier of the destination device and an interface identifier of one of the multiple peripheral communication devices through which to establish the communication session:

performing an exchange of messages with the destination device according to a mutual authentication and key exchange protocol, via the peripheral communication device associated with the interface identifier, for establishing the communication session with the destination device via the peripheral communication device, the communication session comprising a secure communication session.

11 . The non-transitory processor-readable medium of claim 10 , wherein the processor-executable instructions of the connectivity framework include an application layer protocol stack adapted to execute the set of functions associated with the set of APIs exposed to the application.

12 . The non-transitory processor-readable medium of claim 10 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the exchange of messages according to the mutual authentication and key exchange protocol by:

sending a message including first identity information of the computing device to the destination device, the first identity information for authentication of the computing device at the destination device;

receiving a message including second identity information of the destination device from the destination device, the second identity information for authentication of the destination device at the computing device;

sending a message including first signed key exchange information of the computing device to the destination device, the first signed key exchange information for obtaining session keys at the destination device; and

receiving a message including second signed key exchange information of the destination device from the destination device, the second signed key exchange information for obtaining session keys at the computing device.

13 . The non-transitory processor-readable medium of claim 10 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the operations comprising:

for respective ones of one or more additional function calls from the application to establish other communication sessions with other destination devices through other ones of the multiple peripheral communication devices having the different communication protocol types:

repeating the performing of the exchange of messages with the other destination device according to the mutual authentication and key exchange protocol via the other peripheral communication device for establishing the other communication session with the other destination device via the other peripheral communication device.

14 . The non-transitory processor-readable medium of claim 13 , wherein the mutual authentication and key exchange protocol is the same irrespective of which one of the multiple peripheral communication devices the messages are exchanged through.

15 . The non-transitory processor-readable medium of claim 14 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the operations with respect to the multiple peripheral communication devices comprising one or more embedded peripheral communication devices and one or more non-embedded peripheral communication devices.

16 . The non-transitory processor-readable medium of claim 14 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the operations with respect to the multiple peripheral communication devices comprising two or more of a Universal Asynchronous Receiver-Transmitter (UART) interface, an Inter-Integrated Circuit (I2C) interface, a Serial Peripheral Interface (SPI) interface, a Controller Area Network (CAN) interface, a TIS interface, a Bluetooth or Bluetooth Low Energy (BLE) interface, and an IEEE 802.15.4 or low-rate wireless personal area network (LR-WPAN) interface, and one or more of a Wi-Fi interface, an Ethernet interface, and a Universal Serial Bus (USB) interface.

17 . The non-transitory processor-readable medium of claim 10 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the operations comprising:

for respective ones of the messages sent according to the mutual authentication and key exchange protocol:

preparing the message of the mutual authentication and key exchange protocol with a message format according to a predetermined messaging protocol;

storing the message in a message queue; and

writing one or more data portions of the message from the message queue to the peripheral communication device associated with the interface identifier, until the message is transmitted via the peripheral communication device;

for respective ones of the messages received according to the mutual authentication and key exchange protocol:

reading one or more data portions from the peripheral communication device and storing the one or more data portions in the message queue, until the message comprising the one or more data portions is received via the peripheral communication device and stored in the message queue;

storing the message in a memory cache of the computing device, the message having the message format according to the predetermined messaging protocol; and

processing the message according to the mutual authentication and key exchange protocol.

18 . The non-transitory processor-readable medium of claim 17 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the operations comprising:

for respective ones of one or more additional function calls from the application to establish other communication sessions with other destination devices through other ones of the multiple peripheral communication devices:

repeating the preparing, the storing, and the writing for respective ones of the messages sent according to the mutual authentication and key exchange protocol; and

repeating the reading, the storing, and the processing for respective ones of the messages received according to the mutual authentication and key exchange protocol.

19 . The non-transitory processor-readable medium of claim 18 , wherein the predetermined messaging protocol comprises a unified messaging protocol which is common to messages sent and received through the multiple peripheral communication devices.

20 . The non-transitory processor-readable medium of claim 19 , wherein the message queue comprises a common message queue to store the messages sent and received through the multiple peripheral communication devices.

21 . An apparatus comprising:

a computing device comprising one or more processors, multiple peripheral communication devices of different communication protocol types operably connected to the one or more processors, and a memory to store processor-executable instructions of a connectivity framework that, when executed by the one or more processors, cause the one or more processors to perform operations, the operations comprising:

receiving and processing function calls to at least some functions of a set of functions of the connectivity framework, the set of functions associated with a set of application programming interfaces (APIs) exposed to an application of the computing device that invokes the function calls, the connectivity framework for processing between the application and respective input/output (I/O) buffers of the multiple peripheral communication devices; and

at least partially responsive to receiving, from the application, a function call to a function of one of the APIs to establish a communication session with a destination device, the function call indicating input parameters to identify a destination identifier of the destination device and an interface identifier of one of the multiple peripheral communication devices through which to establish the communication session:

performing an exchange of messages with the destination device according to a mutual authentication and key exchange protocol, via the peripheral communication device associated with the interface identifier, for establishing the communication session with the destination device via the peripheral communication device, the communication session comprising a secure communication session.

22 . The apparatus of claim 21 , wherein the processor-executable instructions of the connectivity framework include an application layer protocol stack adapted to execute the set of functions associated with the set of APIs exposed to the application.

23 . The apparatus of claim 21 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the exchange of messages according to the mutual authentication and key exchange protocol by:

sending a message including first identity information of the computing device to the destination device, the first identity information for authentication of the computing device at the destination device;

receiving a message including second identity information of the destination device from the destination device, the second identity information for authentication of the destination device at the computing device;

sending a message including first signed key exchange information of the computing device to the destination device, the first signed key exchange information for obtaining session keys at the destination device; and

receiving a message including second signed key exchange information of the destination device from the destination device, the second signed key exchange information for obtaining session keys at the computing device.

24 . The apparatus of claim 21 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the operations comprising:

for respective ones of one or more additional function calls from the application to establish other communication sessions with other destination devices through other ones of the multiple peripheral communication devices:

repeating the performing of the exchange of messages with the other destination device according to the mutual authentication and key exchange protocol via the other peripheral communication device for establishing the other communication session with the other destination device via the other peripheral communication device.

25 . The apparatus of claim 24 , wherein the mutual authentication and key exchange protocol is the same irrespective of which one of the multiple peripheral communication devices the messages are exchanged through.

26 . The apparatus of claim 25 , wherein the multiple peripheral communication devices comprise one or more embedded peripheral communication devices and one or more non-embedded peripheral communication devices.

27 . The apparatus of claim 25 , wherein the multiple peripheral communication devices comprise two or more of a Universal Asynchronous Receiver-Transmitter (UART) interface, an Inter-Integrated Circuit (I2C) interface, a Serial Peripheral Interface (SPI) interface, a Controller Area Network (CAN) interface, a TIS interface, a Bluetooth or Bluetooth Low Energy (BLE) interface, and an IEEE 802.15.4 or low-rate wireless personal area network (LR-WPAN) interface, and one or more of a Wi-Fi interface, an Ethernet interface, and a Universal Serial Bus (USB) interface.

28 . A non-transitory processor-readable medium to store processor-executable instructions of a connectivity framework that, when executed by one or more processors of a computing device including multiple peripheral communication devices of different communication protocol types, cause the one or more processors to perform operations, the operations comprising:

receiving and processing function calls to at least some functions of a set of functions of the connectivity framework, the set of functions associated with a set of application programming interfaces (APIs) exposed to an application of the computing device that invokes the function calls, the connectivity framework for processing between the application and respective input/output (I/O) buffers of the multiple peripheral communication devices; and

at least partially responsive to receiving, from the application, a function call to a function of one of the APIs to send a message to a destination device, the function call indicating input parameters to identify data to send, a destination identifier of the destination device, and an interface identifier of one of the multiple peripheral communication devices through which to send the message:

at least partially based on identifying that a secure communication session between the computing device and the destination device is not established, performing an exchange of messages with the destination device according to a mutual authentication and key exchange protocol, via the peripheral communication device associated with the interface identifier, for establishing the secure communication session with the destination device via the peripheral communication device.

29 . The non-transitory processor-readable medium of claim 28 , wherein the processor-executable instructions of the connectivity framework include an application layer protocol stack adapted to execute the set of functions associated with the set of APIs exposed to the application.

30 . The non-transitory processor-readable medium of claim 28 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the exchange of messages according to the mutual authentication and key exchange protocol by:

sending a message including first identity information of the computing device to the destination device, the first identity information for authentication of the computing device at the destination device;

receiving a message including second identity information of the destination device from the destination device, the second identity information for authentication of the destination device at the computing device;

sending a message including first signed key exchange information of the computing device to the destination device, the first signed key exchange information for obtaining session keys at the destination device; and

receiving a message including second signed key exchange information of the destination device from the destination device, the second signed key exchange information for obtaining session keys at the computing device.

31 . The non-transitory processor-readable medium of claim 28 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the operations comprising:

after performing the exchange of messages with the destination device according to the mutual authentication and key exchange protocol:

preparing a message having a message format according to a predetermined messaging protocol, the message including the data, the data being encrypted at least partially based on one or more session keys;

storing the message in a message queue; and

writing one or more data portions of the message from the message queue to the peripheral communication device associated with the interface identifier, until the message is transmitted via the peripheral communication device.

32 . The non-transitory processor-readable medium of claim 30 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the operations comprising:

for respective ones of one or more additional function calls from the application to establish other communication sessions with other destination devices through other ones of the multiple peripheral communication devices having the different communication protocol types:

repeating the performing of the exchange of messages with the other destination device according to the mutual authentication and key exchange protocol via the other multiple peripheral communication device for establishing the other communication session with the other destination device via the other peripheral communication device.

33 . The non-transitory processor-readable medium of claim 32 , wherein the mutual authentication and key exchange protocol is the same irrespective of which one of the multiple peripheral communication devices the messages are exchanged through.

34 . The non-transitory processor-readable medium of claim 32 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the operations with respect to the multiple peripheral communication devices comprising one or more embedded peripheral communication devices and one or more non-embedded peripheral communication devices.

35 . The non-transitory processor-readable medium of claim 32 , wherein the processor-executable instructions of the connectivity framework are to cause the one or more processors of the computing device to perform the operations with respect to the multiple peripheral communication devices comprising two or more of a Universal Asynchronous Receiver-Transmitter (UART) interface, an Inter-Integrated Circuit (I2C) interface, a Serial Peripheral Interface (SPI) interface, a Controller Area Network (CAN) interface, a TIS interface, a Bluetooth or Bluetooth Low Energy (BLE) interface, and an IEEE 802.15.4 or low-rate wireless personal area network (LR-WPAN) interface, and one or more of a Wi-Fi interface, an Ethernet interface, and a Universal Serial Bus (USB) interface.

36 . An computing device comprising an embedded peripheral communication device, the computing device comprising:

one or more processors;

a memory to store processor-executable instructions of a connectivity framework, the connectivity framework including an application layer protocol stack for processing between an application of the computing device and input/output (I/O) buffers of the embedded peripheral communication devices;

the processor-executable instructions of the connectivity framework adapted such that, when executed by the one or more processors, cause the one or more processors to perform operations, the operations comprising:

receiving, from the application, a function call to a function to establish a communication session with a destination device, the function provided in a set of application programming interfaces (APIs) of the connectivity framework exposed to the application, the function call indicating one or more input parameters to identify a destination identifier of the destination device; and

in response to receiving, from the application, the function call to the function to establish the communication session:

establishing the communication session with the destination device via the embedded peripheral communication device according to an exchange of messages of a mutual authentication and key exchange protocol, wherein the communication session comprises a secure communication session, and wherein respective ones of the messages communicated in a message format according to a unified messaging protocol.