# US 2014/0208404 A1 · Conflict resolution for keychain syncing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0208404 A1
- Document ID: US20140208404A1
- Status: Published application
- Kind: A1
- Application number: 13/839,084
- Filed: 2013-03-15
- Published: 2014-07-24
- Earliest claimed: 2013-01-18
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Michael Brouwer; Dallas B. De Atley; Mitchell D. Adler
- Web page: https://patentgrep.com/patent/US20140208404A1

## CPC

- G06F 21/6263: {during internet communication, e.g. revealing personal data from cookies}
- G06F 16/275: {Synchronous replication}
- G06F 21/606: {by securing the transmission between two devices or processes}
- G06F 21/62: Protecting access to data via a platform, e.g. using keys or access control rules
- H04L 9/0816: {Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use}
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/062: {for key distribution, e.g. centrally by trusted party (cryptographic mechanisms or cryptographic arrangements for key distribution involving a central third party H04L9/0819)}
- H04L 63/10: {for controlling access to devices or network resources}
- H04L 63/166: {at the transport layer}
- H04L 63/20: {for managing network security; network security policies in general (filtering policies H04L63/0227)}
- H04L 67/104: Peer-to-peer [P2P] networks
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 2209/24: Key scheduling, i.e. generating round keys or sub-keys for block encryption
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Some embodiments provide a program that synchronizes a keychain stored on a device with a set of other devices. The keychain includes a set of keychain items. The program receives (1) a list of keychain items for updating the keychain stored on the device and (2) data representing the keychain items specified in the list of keychain items. For each keychain item in the list of keychain items, the program updates the keychain stored on the device with the data that represents the keychain item.

## Claims

### Claim 1

A non-transitory machine-readable medium storing a program which when executed by at least one processing unit of a device synchronizes a keychain stored on the device with a set of other devices, the keychain comprising a set of keychain items, the program comprising sets of instructions for:
receiving (1) a list of keychain items for updating the keychain stored on the device and (2) data representing the keychain items specified in the list of keychain items; and
for each keychain item in the list of keychain items, updating the keychain stored on the device with the data that represents the keychain item.

### Claim 2 (depends on 1)

The non-transitory machine-readable medium of claim 1, wherein the list of keychain items is for updating a portion of the set of keychain items in the keychain stored on the device.

### Claim 3 (depends on 1)

The non-transitory machine-readable medium of claim 1, wherein the list of keychain items is for updating the set of keychain items in the keychain stored on the device.

### Claim 4 (depends on 1)

The non-transitory machine-readable medium of claim 1, wherein the list of keychain items is for adding a set of keychain items to the keychain stored on the device.

### Claim 5 (depends on 1)

The non-transitory machine-readable medium of claim 1, wherein the list of keychain items is for removing a set of keychain items from the keychain stored on the device.

### Claim 6

A non-transitory machine-readable medium storing a program which when executed by at least one processing unit of a device synchronizes a keychain stored on the device with a set of other devices, the keychain comprising a set of keychain items, the program comprising sets of instructions for:
receiving a particular keychain item for updating the keychain stored on the device;
identifying a first unique identifier associated with the particular keychain item;
determining whether a second unique identifier of a keychain item in the keychain stored on the device matches the first unique identifier associated with the particular keychain item; and
when the second unique identifier is determined to match the first unique identifier, (1) resolving a conflict between the particular keychain item and the keychain item in the keychain stored on the device having the second unique identifier and (2) modifying the keychain stored on the device based on the resolution.

### Claim 7 (depends on 6)

The non-transitory machine-readable medium of claim 6, wherein the program further comprises a set of instructions for when the second unique identifier is determined to not match the first unique identifier, updating the keychain with the particular keychain item by adding the particular keychain item to the keychain stored on the device.

### Claim 8 (depends on 6)

The non-transitory machine-readable medium of claim 6, wherein the set of instructions for resolving the conflict comprises sets of instruction for:
identifying conflict resolution metadata associated with the particular keychain item and conflict resolution metadata associated with the keychain item in the keychain stored on the device having the second unique identifier;
based on the conflict resolution metadata, determining whether a first conflict resolver associated with the particular keychain item conflicts with a second conflict resolver associated with the keychain item in the keychain stored on the device having the second unique identifier; and
when the first and second conflict resolvers is determined to not conflict, using the second conflict resolver to resolve the conflict between the particular keychain item and the keychain item in the keychain stored on the device having the second unique identifier.

### Claim 9 (depends on 8)

The non-transitory machine-readable medium of claim 8, wherein the set of instructions for resolving the conflict comprises sets of instruction for:
when the first and second conflict resolvers is determined to conflict, determining whether to use the first conflict resolver or the second conflict resolver to resolve the conflict between the particular keychain item and the keychain item in the keychain stored on the device having the second unique identifier; and
when the first conflict resolve is determined to be used, updating the keychain with the particular keychain item by adding the particular keychain item to the keychain stored on the device.

### Claim 10 (depends on 9)

The non-transitory machine-readable medium of claim 9, wherein the set of instructions for resolving the conflict comprises sets of instruction for:
when the second conflict resolve is determined to be used, using the second conflict resolver to resolve the conflict between the particular keychain item and the keychain item in the keychain stored on the device having the second unique identifier.

### Claim 11 (depends on 10)

The non-transitory machine-readable medium of claim 10, wherein the set of instructions for using the second conflict resolver comprises sets of instructions for:
determining whether the particular keychain item is more recent than the keychain item in the keychain stored on the device having the second unique identifier;
when the particular keychain item is determined as more recent, designating the particular keychain item as the resolution to the conflict.

### Claim 12 (depends on 11)

The non-transitory machine-readable medium of claim 11, wherein the set of instruction for determining whether the particular keychain item is more recent than the keychain item in the keychain stored on the device having the second unique identifier comprises a set of instructions for determining whether the particular keychain item is more recent than the keychain item in the keychain stored on the device having the second unique identifier based on timestamps associated with the particular keychain item and the keychain item in the keychain stored on the device having the second unique identifier.

### Claim 13 (depends on 11)

The non-transitory machine-readable medium of claim 11, the set of instructions for using the second conflict resolver further comprises a set of instructions for:
when the particular keychain item is not determined as more recent, designating the keychain item in the keychain stored on the device having the second unique identifier as the resolution to the conflict.

### Claim 14

A method for synchronizing a keychain stored on a device with a set of other devices, the keychain comprising a set of keychain items, the method comprising:
receiving a particular keychain item for updating the keychain stored on the device;
identifying a first unique identifier associated with the particular keychain item;
determining whether a second unique identifier of a keychain item in the keychain stored on the device matches the first unique identifier associated with the particular keychain item; and
when the second unique identifier is determined to match the first unique identifier, (1) resolving a conflict between the particular keychain item and the keychain item in the keychain stored on the device having the second unique identifier and (2) modifying the keychain stored on the device based on the resolution.

### Claim 15 (depends on 14)

The method of claim 14 further comprising when the second unique identifier is determined to not match the first unique identifier, updating the keychain with the particular keychain item by adding the particular keychain item to the keychain stored on the device.

### Claim 16 (depends on 14)

The method of claim 14, wherein resolving the conflict comprises:
identifying conflict resolution metadata associated with the particular keychain item and conflict resolution metadata associated with the keychain item in the keychain stored on the device having the second unique identifier;
based on the conflict resolution metadata, determining whether a first conflict resolver associated with the particular keychain item conflicts with a second conflict resolver associated with the keychain item in the keychain stored on the device having the second unique identifier; and
when the first and second conflict resolvers is determined to not conflict, using the second conflict resolver to resolve the conflict between the particular keychain item and the keychain item in the keychain stored on the device having the second unique identifier.

### Claim 17 (depends on 16)

The method of claim 16, wherein resolving the conflict further comprises:
when the first and second conflict resolvers is determined to conflict, determining whether to use the first conflict resolver or the second conflict resolver to resolve the conflict between the particular keychain item and the keychain item in the keychain stored on the device having the second unique identifier; and
when the first conflict resolve is determined to be used, updating the keychain with the particular keychain item by adding the particular keychain item to the keychain stored on the device.

### Claim 18 (depends on 17)

The method of claim 17, wherein resolving the conflict further comprises when the second conflict resolve is determined to be used, using the second conflict resolver to resolve the conflict between the particular keychain item and the keychain item in the keychain stored on the device having the second unique identifier.

### Claim 19 (depends on 18)

The method of claim 18, wherein using the second conflict resolver comprises:
determining whether the particular keychain item is more recent than the keychain item in the keychain stored on the device having the second unique identifier;
when the particular keychain item is determined as more recent, designating the particular keychain item as the resolution to the conflict.

### Claim 20 (depends on 19)

The method of claim 19, wherein determining whether the particular keychain item is more recent than the keychain item in the keychain stored on the device having the second unique identifier comprises determining whether the particular keychain item is more recent than the keychain item in the keychain stored on the device having the second unique identifier based on timestamps associated with the particular keychain item and the keychain item in the keychain stored on the device having the second unique identifier.
