Encryption and Decryption Annotation Objects
(Document and Medical Imaging toolkits)
The encrypt annotation object (ANNOBJECT_ENCRYPT) is a rectangular object that is used to encrypt rectangular portions of a bitmap.
It can also be used to encrypt the entire bitmap. In automated mode, the encrypt object is created by clicking and dragging the mouse to create the rectangular encrypt object. In design mode, the encrypt object is visible but partially transparent to show the part of the image that it covers. In run mode, the encrypt object is invisible.
Call L_AnnEncryptApply to apply the encrypt object. Once applied, the portion of the bitmap under the encrypt object becomes scrambled, and the encrypt object state changes to decryptor. Using different keys before calling this function gives different scrambling patterns The decryptor state differs from the encryptor state in that a decryptor cannot be moved, and cannot be changed to an encryptor. The scrambling can be removed by calling L_AnnEncryptApply on the decrypt object with the appropriate arguments. If successful, the decryptor state changes to encryptor. An encrypt object in the encryptor state can be moved, can have its key changed, and can be changed to a decrypt object.
The encrypt object is useful for encrypting portions of a bitmap. After encrypting, the scrambled bitmap cannot easily be unscrambled without the associated annotation file. The scrambling can be removed by using the associated annotation file, or by using automation mode to manually change the state from encryptor to a decryptor, position it correctly, and setting the key appropriately.
Overlapping regions can be encrypted. When encrypting overlapping regions, note the following points:
All annotation objects have an order in which they are drawn (the Z-order).
The encryptors are encrypted from the front of the Z-order to the back.
Those that are drawn first are encrypted first. Those that are drawn last ("on top" of other encryptors) are encrypted last.
The Z-order can be changed through automation by right-clicking and choosing "Send To Front" or "Send To Back".
The decrypt objects are decrypted in reverse order of the encrypt objects.
Use the L_ScrambleBitmap function to scramble all or a portion of a Bitmap. Scrambling a rectangular area means that the pixels in that area are shuffled around into a pseudo-random location within the area.
The L_ScrambleBitmap function can be used directly on a bitmap, and does not depend on annotations in any way.
Use the L_AnnGetEncryptOptions function to get the encrypt options of an encrypt or a decrypt object. These options are in an ANNENCRYPTOPTIONS structure.
Use the L_AnnSetEncryptOptions function to set the encrypt options of an encrypt or a decrypt object. These options are in an ANNENCRYPTOPTIONS structure.
Use the L_AnnGetSecondaryMetafile function to retrieve the current metafile for an encrypt object in a ‘decryptor’ state.
Use the L_AnnGetMetafile function to retrieve the current metafile for an encrypt object in an ‘encryptor’ state.
Use the L_AnnSetMetafile function to change the metafile for an encrypt or decrypt object.