Claims
- 1. A method for committing data loaded on a device, the method comprising:
computing a program unit storage commitment fingerprint over a program unit if said program unit is finally loaded in a non-volatile memory on said device; associating said program unit storage commitment fingerprint with said program unit; and storing said program unit storage commitment fingerprint.
- 2. The method of claim 1 wherein said storing further comprises storing said program unit storage commitment fingerprint in an area of memory contiguous with said program unit.
- 3. The method of claim 1 wherein said method further comprises storing with said program unit a reference to said program unit storage commitment fingerprint.
- 4. The method of claim 1 wherein said data comprises a Java™ program.
- 5. The method of claim 4 wherein said program unit comprises at least one of a package, a class, a method or static class variable.
- 6. The method of claim 1 wherein said program unit storage commitment fingerprint comprises a checksum.
- 7. The method of claim 1 wherein said program unit storage commitment fingerprint comprises a cyclic redundancy code (CRC).
- 8. A method for committing data loaded on a device, the method comprising:
computing a program unit storage commitment fingerprint over a program unit before loading said program unit in a non-volatile memory on said device; associating said program unit storage commitment fingerprint with said program unit; and storing said program unit storage commitment fingerprint.
- 9. A method for committing data loaded on a device, the method comprising:
step for computing a program unit storage commitment fingerprint over a program unit if said program unit is finally loaded in a non-volatile memory on said device; step for associating said program unit storage commitment fingerprint with said program unit; and step for storing said program unit storage commitment fingerprint.
- 10. The method of claim 9 wherein said step for storing further comprises step for storing said program unit storage commitment fingerprint in an area of memory contiguous with said program unit.
- 11. The method of claim 9 wherein said method further comprises step for storing with said program unit a reference to said program unit storage commitment fingerprint.
- 12. The method of claim 9 wherein said data comprises a Java™ program.
- 13. The method of claim 12 wherein said program unit comprises at least one of a package, a class, a method or static class variable.
- 14. The method of claim 9 wherein said program unit storage commitment fingerprint comprises a checksum.
- 15. The method of claim.9 wherein said program unit storage commitment fingerprint comprises a cyclic redundancy code (CRC).
- 16. A method for committing data loaded on a device, the method comprising:
step for computing a program unit storage commitment fingerprint over a program unit before loading said program unit in a non-volatile memory on said device; step for associating said program unit storage commitment fingerprint with said program unit; and step for storing said program unit storage commitment fingerprint.
- 17. A program storage device readable by a machine, embodying a program of instructions executable by the machine to perform a method for committing data loaded on a device, the method comprising:
computing a program unit storage commitment fingerprint over a program unit if said program unit is finally loaded in a non-volatile memory on said device; associating said program unit storage commitment fingerprint with said program unit; and storing said program unit storage commitment fingerprint.
- 18. The program storage device of claim 17 wherein said storing further comprises storing said program unit storage commitment fingerprint in an area of memory contiguous with said program unit.
- 19. The program storage device of claim 17 wherein said method further comprises storing with said program unit a reference to said program unit storage commitment fingerprint.
- 20. The program storage device of claim 17 wherein said data comprises a Java™ program.
- 21. The program storage device of claim 20 wherein said program unit comprises at least one of a package, a class, a method or static class variable.
- 22. The program storage device of claim 17 wherein said program unit storage commitment fingerprint comprises a checksum.
- 23. The program storage device of claim 17 wherein said program unit storage commitment fingerprint comprises a cyclic redundancy code (CRC).
- 24. A program storage device readable by a machine, embodying a program of instructions executable by the machine to perform a method for committing data loaded on a device, the method comprising:
computing a program unit storage commitment fingerprint over a program unit before loading said program unit in a non-volatile memory on said device; associating said program unit storage commitment fingerprint with said program unit; and storing said program unit storage commitment fingerprint.
- 25. An apparatus for committing data loaded on a device, the apparatus comprising:
means for computing a program unit storage commitment fingerprint over a program unit if said program unit is finally loaded in a non-volatile memory on said device; means for associating said program unit storage commitment fingerprint with said program unit; and means for storing said program unit storage commitment fingerprint.
- 26. The apparatus of claim 25 wherein said means for storing further comprises means for storing said program unit storage commitment fingerprint in an area of memory contiguous with said program unit.
- 27. The apparatus of claim 25 wherein said apparatus further comprises means for storing with said program unit a reference to said program unit storage commitment fingerprint.
- 28. The apparatus of claim 25 wherein said data comprises a Java™ program.
- 29. The apparatus of claim 28 wherein said program unit comprises at least one of a package, a class, a method or static class variable.
- 30. The apparatus of claim 25 wherein said program unit storage commitment fingerprint comprises a checksum.
- 31. The apparatus of claim 25 wherein said program unit storage commitment fingerprint comprises a cyclic redundancy code (CRC).
- 32. An apparatus for committing data loaded on a device, the apparatus comprising:
computing a program unit storage commitment fingerprint over a program unit before loading said program unit in a non-volatile memory on said device; associating said program unit storage commitment fingerprint with said program unit; and storing said program unit storage commitment fingerprint.
- 33. An apparatus for committing data loaded on a device, the apparatus comprising:
a memory for storing said data loaded on said device; and an installer configured to:
compute a program unit storage commitment fingerprint over a program unit if said program unit is finally loaded in a non-volatile memory on said device; associate said program unit storage commitment fingerprint with said program unit; and store said program unit storage commitment fingerprint.
- 34. The apparatus of claim 33 wherein said installer is further configured to store further said program unit storage commitment fingerprint in an area of memory contiguous with said program unit.
- 35. The apparatus of claim 33 wherein said installer is further configured to store with said program unit a reference to said program unit storage commitment fingerprint.
- 36. The apparatus of claim 33 wherein said data comprises a Java™ program.
- 37. The apparatus of claim 36 wherein said program unit comprises at least one of a package, a class, a method or static class variable.
- 38. The apparatus of claim 33 wherein said program unit storage commitment fingerprint comprises a checksum.
- 39. The apparatus of claim 33 wherein said program unit storage commitment fingerprint comprises a cyclic redundancy code (CRC).
- 40. A method for committing data loaded on a device, the method comprising:
computing a program unit storage commitment fingerprint over a program unit before loading said program unit in a non-volatile memory on said device; associating said program unit storage commitment fingerprint with said program unit; and storing said program unit storage commitment fingerprint.
- 41. A memory for storing data for access by an application program being executed on a data processing system, comprising:
a data structure stored in said memory, said data structure including information used by said program to determine at run-time whether a program unit has been tampered with after said program unit has been finally loaded on a device, said data structure comprising at least one executable code segment and at least one storage commitment fingerprint, said at least one storage commitment fingerprint computed over said at least one executable code segment after said at least one executable code segment has been finally loaded on said device.
- 42. The memory of claim 41 wherein said at least one executable code segment is contiguous with said at least one storage commitment fingerprint.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to the following:
[0002] U.S. patent application Ser. No. ______, filed Jan. 16, 2003 in the name of inventor Eduard de Jong, entitled “System for Communicating Program Data Between a First Device and a Second Device”, Attorney Docket No. SUN-P7013, commonly assigned herewith.
[0003] U.S. patent application Ser. No. ______, filed Jan. 16, 2003 in the name of inventor Eduard de Jong, entitled “Signing Program Data Payload Sequence in Program Loading”, Attorney Docket No. SUN-P8713, commonly assigned herewith.
[0004] U.S. patent application Ser. No. ______, filed Jan. 16, 2003 in the name of inventor Eduard de Jong, entitled “Ordering Program Data for Loading on a Device”, Attorney Docket No. SUN-P8715, commonly assigned herewith.
[0005] U.S. patent application Ser. No. ______, filed Jan. 16, 2003 in the name of inventor Eduard de Jong, entitled “Optimized Representation of Data Type Information in Program Verification”, Attorney Docket No. SUN-P8716, commonly assigned herewith.
[0006] U.S. patent application Ser. No. ______, filed Jan. 16, 2003 in the name of inventor Eduard de Jong, entitled “Run Time Code Integrity Checks”, Attorney Docket No. SUN-P8717, commonly assigned herewith.
[0007] U.S. patent application Ser. No. ______, filed Jan. 16, 2003 in the name of inventor Eduard de Jong, entitled “Linking of Virtual Methods”, Attorney Docket No. SUN-P8718, commonly assigned herewith.