# US 7,613,812 B2 · Peer-to-peer identity management interfaces and methods

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

- Number: US 7,613,812 B2
- Document ID: US7613812B2
- Status: Granted
- Kind: B2
- Application number: 10/309,864
- Filed: 2002-12-04
- Published: 2004-06-10
- Granted: 2009-11-03
- Earliest claimed: 2002-12-04
- Assignees: Microsoft Corporation
- Inventors: Todd R. Manion; Robert D. Donner; Grigori M. Somin
- Web page: https://patentgrep.com/patent/US7613812B2

## CPC

- G06F 9/541: {via adapters, e.g. between incompatible applications}
- H04L 61/00: Network arrangements, protocols or services for addressing or naming
- H04L 61/30: Managing network names, e.g. use of aliases or nicknames (name-to-address mapping H04L61/45)
- H04L 67/104: Peer-to-peer [P2P] networks
- H04L 67/1057: {involving pre-assessment of levels of reputation of peers}
- H04L 63/0823: {using certificates (cryptographic mechanisms or cryptographic arrangements for entity authentication involving certificates H04L9/3263)}
- H04L 69/329: in the application layer [OSI layer 7]
- H04L 2101/365: Application layer names, e.g. buddy names, unstructured names chosen by a user or home appliance name
- 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

Peer-to-peer (P2P) application programming interfaces (APIs) that allow an application to create, import, export, manage, enumerate, and delete P2P identities are presented. Further, the management of group identity information is provided. APIs abstract away from low level credential and cryptographic functions required to create and manage P2P identities. This management includes retrieval and setting of a friendly name, generation of a cryptographic public/private key pair, retrieval of security information in the form of an XML fragment, and creation of a new name based on an existing identity. Since the P2P environment also allows for the existence of multiple separate groups of peers within the P2P cloud, a preferred embodiment of the present invention also allows for the enumeration of all groups associated with a given identity, for each identity existing for the user.

## Claims

### Claim 1

A computer-readable storage medium embodying a program of instruction executable by a computer for performing a method of communicating between an application program of a resolution protocol and a server process on a same node to manage peer-to-peer identities, comprising the steps of:
providing, on the same node, an application program interface for use by the application program of the resolution protocol to manage peer-to-peer identities;
receiving, at the server process on the same node, via the application program interface, a peer identity create call having a plurality of call parameters comprising a classifier, a peer-to-peer friendly name, a handle to a container in which a key pair exists, and a pointer to a location to which an identity name should be returned,
wherein the key pair includes a private key and a public key, and
wherein the key pair and the classifier are used to generate the identity name;
parsing, at the server process, the peer identity create call to retrieve the plurality of call parameters; and
returning to the application program a value indicative of the success/failure of the peer identity create call.

### Claim 2 (depends on 1)

The computer-readable storage medium of claim 1, wherein the step of receiving the peer identity create call having the plurality of call parameters comprises the step of receiving a peer identity create call having a plurality of call parameters comprising a classifier, a peer-to-peer friendly name, a handle to the container in which a key pair exists that is set to NULL, and a pointer to a location to which an identity name should be returned, the method further comprising the step of issuing a generate new public/private key pair call.

### Claim 3 (depends on 1)

The computer-readable storage medium of claim 1, wherein the step of returning to the application program the value indicative of the success/failure of the peer identity create call comprises a step of returning an error indicative that the handle is invalid.

### Claim 4 (depends on 1)

The computer-readable storage medium of claim 1, wherein the step of returning to the application program the value indicative of the success/failure of the peer identity create call comprises a step of returning an error indicative that the identity name already exists.

### Claim 5 (depends on 1)

The computer-readable storage medium of claim 1, wherein the step of returning to the application program the value indicative of the success/failure of the peer identity create call comprises a step of returning an error indicative that a disk volume is insufficient to store information for a peer identity corresponding to the identity name.

### Claim 6 (depends on 1)

The computer-readable storage medium of claim 1, wherein the step of returning to the application program the value indicative of the success/failure of the peer identity create call comprises a step of returning an error indicative that there is not enough memory to perform the peer identity create call.

### Claim 7 (depends on 1)

The computer-readable storage medium of claim 1, wherein the step of returning to the application program the value indicative of the success/failure of the peer identity create call comprises a step of returning an error indicative that at least one of the plurality of call parameters is invalid.

### Claim 8 (depends on 1)

The computer-readable storage medium of claim 1, wherein the step of returning to the application program the value indicative of the success/failure of the peer identity create call comprises a step of returning an error indicative that no keys exist in the container.

### Claim 9

A computer-readable storage medium embodying a program of instruction executable by a computer for performing a method of communicating between an application program of a resolution protocol and a server process on a same node to manage peer-to-peer identities, comprising the steps of:
providing, at the same node, an application program interface for use by the application program of the resolution protocol to manage peer-to-peer identities;
receiving, at the server process on the same node, via the application program interface, a peer create peer name call having a plurality of call parameters comprising an identity name that is to be taken as a basis for a new peer name, a string containing a new classifier that needs to be appended to an existing name of the identity, and a pointer to a location to which the new peer name is returned,
wherein the identity name is generated from an existing classifier and a key pair, and wherein the key pair includes a public key and a private key;
parsing, at the server process, the peer create peer name call to retrieve the plurality of call parameters; and
returning to the application program a value indicative of the success/failure of the peer create peer name call.

### Claim 10 (depends on 9)

The computer-readable storage medium of claim 9, wherein the step of returning to the application program the value indicative of the success/failure of the peer create peer name call comprises a step of returning an error indicative that a peer identity specified by the identity name cannot be found.

### Claim 11 (depends on 9)

The computer-readable storage medium of claim 9, wherein the step of returning to the application program the value indicative of the success/failure of the peer create peer name call comprises a step of returning an error indicative that there is not enough memory to perform the peer create peer name call.

### Claim 12 (depends on 9)

The computer-readable storage medium of claim 9, wherein the step of returning to the application program the value indicative of the success/failure of the peer create peer name call comprises a step of returning an error indicative that at least one of the plurality of call parameters is not valid.
