# US 8,788,829 B2 · System and method for interapplication communications

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

- Number: US 8,788,829 B2
- Document ID: US8788829B2
- Status: Granted
- Kind: B2
- Application number: 11/465,183
- Filed: 2006-08-17
- Published: 2008-02-21
- Granted: 2014-07-22
- Earliest claimed: 2006-08-17
- Assignees: AOL Inc.
- Applicants: Terry N. Hayes
- Inventors: Terry N. Hayes
- Web page: https://patentgrep.com/patent/US8788829B2

## CPC

- H04L 9/3271: {using challenge-response}
- G06F 9/54: Interprogram communication
- G06F 21/105: {Arrangements for software license management or administration, e.g. for managing licenses at corporate level}
- G06F 21/33: using certificates
- G06F 21/445: {by mutual authentication, e.g. between devices or programs}
- G06Q 10/107: Computer-aided management of electronic mailing [e-mailing]
- H04L 9/3247: {involving digital signatures}
- H04L 9/3268: {using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]}
- G06F 21/1077: {Recurrent authorisation}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A first executable program on a computer system is enabled to exchange communications with a second executable program on the computer system by determining that the first executable program requests to exchange information with the second executable program, using the second executable program to challenge the first executable program for a digital certificate, and using the second executable program to exchange information with the first executable program when the digital certificate is verified.

## Claims

### Claim 1

A computer-implemented method, comprising:
determining a validity of a digital certificate associated with a first executable program;
obtaining a portion of a license agreement associated with a second executable program;
when the digital certificate is valid, generating an instruction to provide a challenge to the first executable program, the challenge instructing the first executable program to encrypt the obtained portion of the license agreement provided by the second executable program;
receiving a response to the challenge from the first executable program, the response comprising the encrypted portion of the license agreement and a digital signature applied to the encrypted portion of the license agreement;
decrypting, using at least one processor, the received response using a public key associated with the digital certificate to generate a decrypted portion of the license agreement; and
determining, using the at least one processor, whether that the obtained portion of the license agreement corresponds to the decrypted portion of the license agreement; and
when the decrypted portion of the license agreement corresponds to the obtained portion of the license agreement, enabling communications with the first executable program in a manner consistent with the license agreement, and enabling the first executable program to access one or more functions of the second executable program in accordance with the license agreement.

### Claim 2 (depends on 1)

The method of claim 1, wherein the digital signature comprises an acknowledgement of the license agreement by the first executable program.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
using the digital signature to show knowledge of the license agreement.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
using the digital signature to show acceptance of the license agreement.

### Claim 5 (depends on 1)

The method of claim 1, wherein the portion of the license agreement comprises a message digest of the license agreement.

### Claim 6 (depends on 1)

The method of claim 1, wherein the digital certificate comprises the public key.

### Claim 7 (depends on 1)

The method of claim 1, wherein decrypting the response to the challenge further comprises decrypting the digital signature using the public key.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first and second executable programs are independently launched in separate launch operations.

### Claim 9 (depends on 1)

The method of claim 1, wherein the digital certificate is enrolled in a digital certificate management system.

### Claim 10 (depends on 9)

The method of claim 9, further comprising reporting use of the digital certificate by the first executable program to the digital certificate management system.

### Claim 11 (depends on 8)

The method of claim 8, wherein the digital certificate management system is administered by an operating system in which a location for digital certificates in memory is monitored to identify programs that attempt to access certificates.

### Claim 12

A computer system, comprising:
a processing system comprising one or more processors; and
a memory comprising one or more tangible computer-readable media,
wherein the memory includes instructions that, when executed by the processing system, cause the processing system to perform operations comprising:
determining a validity of a digital certificate associated with a first executable program;
obtaining a portion of a license agreement associated with a second executable program;
when the digital certificate is valid, generating an instruction to provide a challenge to the first executable program, the challenge instructing the first executable program to encrypt the obtained portion of the license agreement provided by the second executable program;
receiving a response to the challenge from the first executable program, the response comprising the encrypted portion of the license agreement and a digital signature applied to the encrypted portion of the license agreement;
decrypting the received response using a public key associated with the digital certificate to generate a decrypted portion of the license agreement; and
determining whether the obtained portion of the license agreement corresponds to the decrypted portion of the license agreement; and
when the decrypted portion of the license agreement corresponds to the obtained portion of the license agreement, enabling communications with the first executable program in a manner consistent with the license agreement, and enabling the first executable program to access one or more functions of the second executable program in accordance with the license agreement.

### Claim 13 (depends on 12)

The system of claim 12, wherein the portion of the license agreement comprises a message digest of the license agreement.

### Claim 14 (depends on 12)

The system of claim 12, wherein the digital certificate comprises the public key.

### Claim 15 (depends on 14)

The method system of claim 14, wherein decrypting the response to the challenge further comprises decrypting the digital signature using the public key.

### Claim 16 (depends on 12)

The system of claim 12, wherein the first and second executable programs are independently launched in separate launch operations.

### Claim 17 (depends on 12)

The system of claim 12, wherein the digital certificate is enrolled in a digital certificate management system.

### Claim 18 (depends on 17)

The system of claim 17, further comprising reporting use of the digital certificate by the first executable program to the digital certificate management system.

### Claim 19 (depends on 17)

The system of claim 17, wherein the digital certificate management system is administered by an operating system in which a location for digital certificates in memory is monitored to identify programs that attempt to access certificates.

### Claim 20

A tangible, non-transitory computer-readable medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform a method, comprising:
determining a validity of a digital certificate associated with a first executable program;
obtaining a portion of a license agreement associated with a second executable program;
when the digital certificate is valid, generating an instruction to provide a challenge to the first executable program, the challenge instructing the first executable program to encrypt the obtained portion of the license agreement provided by the second executable program;
receiving a response to the challenge from the first executable program, the response comprising the encrypted portion of the license agreement and a digital signature applied to the encrypted portion of the license agreement;
decrypting the received response using a public key associated with the digital certificate to generate a decrypted portion of the license agreement; and
determining whether the obtained portion of the license agreement corresponds to the decrypted portion of the license agreement; and
when the obtained portion of the license agreement corresponds to the decrypted portion of the license agreement, enabling communications with the first executable program in a manner consistent with the license agreement, and enabling the first executable program to access one or more functions of the second executable program in accordance with the license agreement.

### Claim 21 (depends on 1)

The method of claim 1, further comprising:
receiving a request to establish the communications with the first application program.

### Claim 22 (depends on 12)

The system of claim 12, wherein the operations further comprise:
receiving a request to establish the communications with the first application program.

### Claim 23 (depends on 22)

The system of claim 22, wherein the digital signature comprises an acknowledgement of the license agreement by the first executable program.

### Claim 24 (depends on 22)

The system of claim 22, further comprising:
using the digital signature to show knowledge of the license agreement.

### Claim 25 (depends on 22)

The system of claim 22, further comprising:
using the digital signature to show acceptance of the license agreement.
