US 12,001,579 B1
Cloud messaging system
Benoit Chevallier-Mames, Paris (FR); Thomas Icart, Paris (FR); Mathieu Ciet, Paris (FR); Oliver J. Hunt, San Francisco, CA (US); Yannick Sierra, San Francisco, CA (US); Gokul Thirumalai, Santa Clara, CA (US); and Roberto Garcia, Santa Clara, CA (US)
Assigned to APPLE INC., Cupertino, CA (US)
Filed by Apple Inc., Cupertino, CA (US)
Filed on May 5, 2021, as Appl. No. 17/302,539.
Application 17/302,539 is a continuation of application No. 15/907,468, filed on Feb. 28, 2018, granted, now 11,025,596.
Claims priority of provisional application 62/514,938, filed on Jun. 4, 2017.
Claims priority of provisional application 62/466,325, filed on Mar. 2, 2017.
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 9/40 (2022.01); G06F 16/174 (2019.01); G06F 21/62 (2013.01); H04L 9/08 (2006.01); H04L 9/14 (2006.01); H04L 9/30 (2006.01); H04L 9/32 (2006.01); H04L 51/04 (2022.01); H04L 51/08 (2022.01); H04L 67/1095 (2022.01); H04L 67/1097 (2022.01); H04W 12/02 (2009.01); H04W 12/04 (2021.01)
CPC G06F 21/6227 (2013.01) [G06F 16/1752 (2019.01); G06F 21/6218 (2013.01); H04L 9/0847 (2013.01); H04L 9/14 (2013.01); H04L 9/30 (2013.01); H04L 9/3242 (2013.01); H04L 9/3247 (2013.01); H04L 9/3273 (2013.01); H04L 51/04 (2013.01); H04L 51/08 (2013.01); H04L 63/0428 (2013.01); H04L 63/0478 (2013.01); H04L 63/065 (2013.01); H04L 63/123 (2013.01); H04L 63/126 (2013.01); H04L 67/1095 (2013.01); H04L 67/1097 (2013.01); H04W 12/02 (2013.01); H04W 12/04 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A non-transitory machine-readable medium storing executable program instructions which when executed by one or more processors of a first user device of a first user having a first account cause the first user device to perform a method comprising:
obtaining, by the first device of the first user having the first account, identity data for one or more other users in a group for a set of one or more data communications in a communication session, the identity data including one or more cryptographic keys for each of the one or more other users;
creating a set of group data, the set of group data including information used by the first device and by devices of the one or more other users to create one or more group keys;
transmitting the set of group data to a group server, wherein the group server stores the set of group data as anonymous blob containing cryptographic material that enable the first device of the first user and devices of the one or more other users to obtain the set of group data using a group identifier returned from the group server;
receiving the group identifier from the group server, the group identifier for use in recovering or changing the set of group data for the first user and the one or more other users;
transmitting one or more data communications in the communication session to a server system configured to transmit the one or more data communications to one or more devices of the one or more other users, the one or more data communications being encrypted by the one or more group keys.