4.10 Encryption

Prev Up Next Page 36 of 800 Search internet

Even though the Logiweb compiler (lgc) does not support it, Logiweb itself has facilities for compressing and encrypting pages.

To use compression and/or encryption, you first need to modify lgc so that it can compress/encrypt its output.

Then you need to write an unpacker which can decompress/decrypt the page again. The function for doing so is an unpacking engine and has to be public so that anyone can decompress/decrypt any page.

Note that even if anybody in theory are able to decrypt a page, they may not be able to do so in practice. One can arrange that decrypting a page takes very long time if you do not know a 'secret' such as the prime factors of some, big number.

When lgc unpacks a Logiweb page given in binary 'vector' format, it first extracts a 'bibliography' from the page. The bibliography starts with the reference of the page itself followed by references of directly referenced pages. Then lgc extracts a 'dictionary' which lists what constructs are defined by the page together with their arities. All remaining bytes of the vector constitute the 'body' of the page. The lgc compiler invokes the unpacker on the body, leading to a decompressed/decrypted version of the page.

The lgc compiler does support decompression/decryption. It is compression/encryption it does not support.

Note that you can only encrypt the body of a Logiweb page. The bibliography and dictionary have to be public. It is particularly important that the bibliography is never encrypted. Otherwise one cannot write a garbage collector which can clean up disk caches. The present release of Logiweb does not contain such a garbage collector, but some beta-versions did and the garbage collector will re-appear in some, later release.

Prev Up Next Page 36 of 800 Search logiweb.eu

Copyright © 2010 Klaus Grue, GRD-2010-01-05