System and method for limiting use of a software program with another software program
First Claim
1. A method comprising:
- providing a computer including a processor and a memory operably coupled to the processor;
providing a first software program capable of being operably installed on the computer;
providing a second software program capable of being operably installed on the computer and capable of being used interoperably with the first software program;
modifying the second software program to include data defining a specific point in time after which the second software program cannot be used interoperably with the first software program;
digitally signing the second software program including the data defining the specific point in time;
determining whether the second software program has been altered after the digitally signing;
verifying that the specific point in time has not passed; and
using the second software program interoperably with the first software program if and only if the determining determines that the second software program has not been altered after the digitally signing and the verifying verifies that the specific point in time has not passed.
14 Assignments
0 Petitions
Accused Products
Abstract
The present invention presents a system and method for the vendor of a primary software program (“primary vendor”) to limit the use of a secondary software program with its primary software program, under a specific set of limiting preconditions, and to retain control over the issuance and duration of the limiting preconditions, where a primary software program is an operating system and a secondary software program is an application software program or a peripheral driver, and where a primary software program is an application software program and a secondary software program is a plug-in. One embodiment of the invention includes: providing a computer including a processor and a memory operably coupled to the processor; providing a first software program operably installed on the computer; providing a second software program capable of being operably installed on the computer and capable of being used interoperably with the first software program; modifying the second software program to include a specific set of preconditions limiting use of the second software program with the first software program; digitally signing the second software program including the specific set of preconditions; determining whether the second software program has been altered after the digitally signing; verifying that the specific set of preconditions limiting use of the second software program with the first software program is met; and running the second software program interoperably with the first software program if and only if (1) the determining determines that the second software program has not been altered after the digitally signing and (2) the verifying verifies that the specific set of limiting preconditions is met.
-
Citations
26 Claims
-
1. A method comprising:
-
providing a computer including a processor and a memory operably coupled to the processor;
providing a first software program capable of being operably installed on the computer;
providing a second software program capable of being operably installed on the computer and capable of being used interoperably with the first software program;
modifying the second software program to include data defining a specific point in time after which the second software program cannot be used interoperably with the first software program;
digitally signing the second software program including the data defining the specific point in time;
determining whether the second software program has been altered after the digitally signing;
verifying that the specific point in time has not passed; and
using the second software program interoperably with the first software program if and only if the determining determines that the second software program has not been altered after the digitally signing and the verifying verifies that the specific point in time has not passed. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer system comprising:
-
a processor;
a first software program capable of being operably coupled to the processor;
a digitally signed second software program, the second software program capable of being operably coupled to the processor, capable of being used interoperably with the first software program, and including data defining a specific point in time after which the second software program cannot be used interoperably with the first software program; and
a memory coupled to the processor, the memory including means for determining whether the second software program has been altered, means for verifying that the specific point in time has not passed, and means for using the second software program interoperably with the first software program if and only if it is determined that the second software program has not been altered and it is verified that the specific point in time has not passed. - View Dependent Claims (8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 20, 21, 22, 24, 26)
-
-
13. An apparatus for limiting use of a first software program interoperably with a second software program comprising:
-
means for modifying the second software program to include data defining a specific point in time after which the second software program cannot be used interoperably with the first software program;
means for digitally signing the second software program including the data defining the specific point in time;
means for determining whether the second software program has been altered after the digitally signing;
means for verifying that the specific point in time has not passed; and
means for using the second software program interoperably with the first software program if and only if it is determined that the second software program has not been altered after the digitally signing and it is verified that the specific point in time has not passed.
-
-
19. A method comprising:
-
providing a computer including a processor and a memory operably coupled to the processor;
providing an application software program capable of being operably installed on the computer;
providing a plug-in capable of being operably installed on the computer and capable of being used interoperably with the application software program;
modifying the plug-in to include a specific set of preconditions limiting use of the plug-in interoperably with the application software program;
digitally signing the plug-in including the specific set of preconditions;
determining whether the plug-in has been altered after the digitally signing;
verifying that the specific set of preconditions limiting use of the plug-in interoperably with the application software program is met; and
using the plug-in interoperably with the application software program if and only if the determining determines that the plug-in has not been altered after the digitally signing and the verifying verifies that the specific set of preconditions is met.
-
-
23. A computer system comprising:
-
a processor;
a first software program capable of being operably coupled to the processor;
a digitally signed second software program, the second software program capable of being operably coupled to the processor, capable of being used interoperably with the first software program, and including data defining a specific point in time after which the second software program cannot be used interoperably with the first software program; and
a memory coupled to the processor, the memory including a circuit for determining whether the second software program has been altered, a circuit for verifying that the specific point in time has not passed, and a circuit for using the second software program interoperably with the first software program if and only if the circuit for determining determines that the second software program has not been altered and the circuit for verifying verifies that the specific point in time has not passed.
-
-
25. An apparatus for limiting use of a first software program interoperably with a second software program comprising:
-
a circuit for modifying the second software program to include data defining a specific point in time after which the second software program cannot be used interoperably with the first software program;
a circuit for digitally signing the second software program including the data defining the specific point in time;
a circuit for determining whether the second software program has been altered after the digitally signing;
a circuit for verifying that the specific point in time has not passed; and
a circuit for using the second software program interoperably with the first software program if and only if the circuit for determining determines that the second software program has not been altered after the digitally signing and the circuit for verifying verifies that the specific point in time has not passed.
-
Specification