Progress
Developer’s Toolkit
Decryption and Compilation
If you distribute encrypted source code, you must also prepare and distribute a program that compiles your application procedures at a user site. The core of this program is one or more COMPILE statements with the XCODE option. If you encrypt your procedures using the default key, the XCODE option is unnecessary, because the Compiler recognizes that the procedures are encrypted and attempts to decrypt them using the default key.
The XCODE option of the COMPILE statement decrypts the specified source files-and any encrypted include files-using the same keys supplied in XCODE. Decrypting is incremental during compilation. That is, having the decryption key does not allow a user to examine a decrypted version of the source code. Furthermore, the key can be easily hidden in an object version of your compile program.
When started with the Encrypted Compiler (-rx) startup parameter, Progress places you (or a user) by default in the Progress Procedure Editor. The COMPILE statement and the
icompile.p
procedure will only compile encrypted procedures when Progress is started with -rx. When shipping encrypted source code, you must supply either an encrypted .p or a .r version of your compile program, which can be run in encrypted compiler mode. The Toolkit includes a sample template, calledupgrade
, that invokes Progress with the -rx parameter and compiles encrypted source programs.You invoke the encrypted source code compiler with the command
PROGRESS/XCOMPILER.
Seeupgrade.com
in the Toolkitsamples
subdirectory for more information.After the procedures are compiled, you might want users to delete the source to regain the disk space. If you do this, consider freezing the database files; otherwise, the user can modify the database and invalidate object procedures for which the user no longer has the source.
Copyright © 2004 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |