| This class is used to encrypt all the containers in the data segment with a
new encryption key when password/key is changed or when an existing database
is reconfigured for encryption.
Encryption of existing data in the data segments is done by doing the
following:
Find all the containers in data segment (seg0) and encrypt all of them
with the new encryption key, the process for each container is:
1.Write a log record to indicate that the container is getting encrypted.
2.Read all the pages of the container through the page cache and
encrypt each page with new encryption key and then write to a
temporary file(n.dat) in the data segment itself.
3. Rename the current container file (c.dat) to
another file (o.dat)
4. Rename the new encrypted version of the file (n.dat).
5. All the old version of the container (o.dat) files are removed
after a successful checkpoint with a new key or on a rollback.
author: Suresh Thalamati |