Claims
- 1. A method for forming a data table stored in memory, the data table forming a library index of storage locations to electronic digital content, the method comprising the steps of:
receiving an encrypted file from storage wherein the file has a beginning, an end and trailer section located just prior to the end; reading a predetermined distance into the file to retrieve an identifier placed at a predetermined position; decrypting a identifier with a first decrypting key; determining if the identifier is valid and if the identifier is valid then performing the steps of:
reading the trailer section from the file; decrypting the trailer section with the first decrypting key; determining if the there are any updates in the trailer section and if there are no updates to the trailer section then performing the steps of:
decrypting a reference table containing one or more data table location indicators for data items with the first decrypting key; decrypting one or data items with the first decrypting key; and populating the data table with data items at locations specified in the reference table with data.
- 2. The method according to claim 1, wherein the step of populating the data table includes populating the data table in a tamper resistant environment.
- 3. The method according to claim 1, further comprising the steps of:
retrieving a base key from a key database; retrieving a timestamp from the database file forming the first decrypting key as a combination of the base key and the timestamp.
- 4. The method according to claim 1, wherein the step of determining if there are any updates in the trailer section includes;
getting an offset to an update reference table; decrypting the update reference table containing one or more data table location indicators for update data items with the first decrypting key; decrypting one or more update data items with the first decrypting key; populating the data table with update data items at locations specified in the update reference table with the update data.
- 5. A method for storing electronic digital content, the content containing an index to memory address locations containing one or more members forming the library, the library index stored in a data table in memory, the data table comprising one or more entries with address references to metadata and address references to content data for each of the one or more members forming the library, the method comprising the steps of:
writing a header section comprising a row/size indicator; writing a data section immediately after the header section, the data section comprising one or more data items represented in a length-data string format, wherein the data section comprises references to one or more pieces of metadata and content data forming the one or more members in the library of electronic digital content; writing a reference table section immediately after the data section, the reference table section comprising a plurality of row/column entries, wherein a number of columns forming each row is specified by the row/size indicator and wherein one or more row/column entries in each row of the reference table represent offsets to each of the one or more pieces of metadata and content data forming the electronic digital content; and writing a trailer section immediately after the reference table section, the trailer section comprising an offset to the beginning of the reference table.
- 6. The method according to claim 5, wherein the step of writing the reference table section includes writing a reference table section with an token identifier to determined subsequently if the stored library was altered by a unauthorized party.
- 7. The method according to claim 5, wherein the step of writing the data section immediately after the header section includes writing the data section within a tamper resistant environment.
- 8. The method according to claim 6, further comprising the step of encrypting the data section with a first encrypting key.
- 9. The method according to claim 7, wherein the step of writing a reference table section further comprises writing one or more update content sections representing one or more updates to the one or more members forming the library of electronic digital content, wherein each of the one or more update content sections is written after the trailer section, and wherein each update content section includes at least one:
update data section, the update data section comprising one or more updated data items represented in a length-data string format wherein the data section comprises references to one or more pieces of updated metadata and updated content data forming the electronic digital content; update reference table section immediately after the update data section, the update reference table section comprising row/column entries, wherein one or more row/column entries in each row of the reference table represent offsets to each of the one or more pieces of metadata and content data forming the electronic digital content; and update trailer section immediately after the update reference table section, the update trailer section comprising an offset to the beginning of the update 1reference table.
- 10. A method for forming a data table stored in memory, the data table forming a library index of storage locations to electronic digital content, the method comprising the steps of:
retrieving an encrypted file from storage wherein the file has a beginning, an end and trailer section located just prior to the end; reading from the end of the file, a predetermined distance, to read an identifier placed at a predetermined position; decrypting a token with a first decrypting key; determining if the token is valid and if the token is valid then performing the steps of:
reading the trailer section from the file; decrypting the trailer section with the first decrypting key; determining if the there are any updates in the trailer section and if there are no updates to the trailer section then performing the steps of:
decrypting a reference table containing one or more data table location indicators for data items with the first decrypting key; decrypting one or data items with the first decrypting key; and populating the data table with data items at locations specified in the reference table with data.
- 11. A computer readable medium containing programming instruction for forming a data table stored in memory, the data table forming a library index of storage locations to electronic digital content, the programming instructions comprising:
receiving an encrypted file from storage wherein the file has a beginning, an end and trailer section located just prior to the end; reading a predetermined distance into the file to retrieve an identifier placed at a predetermined position; decrypting a identifier with a first decrypting key; determining if the identifier is valid and if the identifier is valid then performing the steps of:
reading the trailer section from the file; decrypting the trailer section with the first decrypting key; determining if the there are any updates in the trailer section and if there are no updates to the trailer section then performing the steps of:
decrypting a reference table containing one or more data table location indicators for data items with the first decrypting key; decrypting one or data items with the first decrypting key; and populating the data table with data items at locations specified in the reference table with data.
- 12. The computer readable medium according to claim 11, wherein the programming instruction of populating the data table includes populating the data table in a tamper resistant environment.
- 13. The computer readable medium according to claim 11, further comprising the programming instruction of:
retrieving a base key from a key database; retrieving a timestamp from the database file forming the first decrypting key as a combination of the base key and the timestamp.
- 14. The computer readable medium according to claim 11, wherein the programming instruction of determining if there are any updates in the trailer section includes;
getting an offset to an update reference table; decrypting the update reference table containing one or more data table location indicators for update data items with the first decrypting key; decrypting one or more update data items with the first decrypting key; populating the data table with update data items at locations specified in the update reference table with the update data.
- 15. An end user information processing system comprising:
a data table stored in memory, the data table forming a library index of storage locations to electronic digital content; an encrypted file received receiving from storage wherein the file has a beginning, an end and trailer section located just prior to the end; an identifier placed at a predetermined distance in the file; a first decrypting key for decrypting a identifier; means for determining if the identifier is valid and if the identifier is valid then means for determining if there are any updates in the trailer section, wherein the trailer section has been decrypted with the first decrypting key section, and if there are any updates in the trailer section then populating the data table with data items at locations specified in the reference table with data.
- 16. The end user information processing system according to claim 15, wherein the means for determining if the identifier is valid further includes populating the data table includes populating the data table in a tamper resistant environment.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This is a continuation-in-part of application Ser. No. 09/376,102, filed Aug. 17, 1999, which is a continuation-in-part of Ser. No. 09/177,096, filed Oct. 22, 1999, now ______, which is a continuation-in-part of application Ser. No. 09/133,519, filed Aug. 13, 1998, now U.S. Pat. No. 6,226,618. The entire disclosure of prior application Ser. No. 09/376,102 is herein incorporated by reference.
Continuation in Parts (3)
|
Number |
Date |
Country |
Parent |
09376102 |
Aug 1999 |
US |
Child |
09884618 |
Jun 2001 |
US |
Parent |
09177096 |
Oct 1998 |
US |
Child |
09376102 |
Aug 1999 |
US |
Parent |
09133519 |
Aug 1998 |
US |
Child |
09177096 |
Oct 1998 |
US |