Try OpenEdge Now
skip to main content
Managing ABL Applications
Deployment Utilities and Scripts : XCODE utility

XCODE utility

Encrypts ABL procedures and include files using either the default or a specified encryption key.


xcode [ -k key][ -d directory]{files| - }
A character string up to eight characters long. On UNIX, key is case sensitive. If you do not specify key, XCODE uses a default key. When OpenEdge is started with the Encrypted Compiler Mode (-rx) startup parameter, ABL automatically uses this default key, unless you specify the XCODE option on the COMILE statement or set the XCODE-SESSION-KEY attribute on the SESSION-POLICY handle. (The XCODE option takes precedence over the XCODE-SESSION-KEY attribute if both are in effect for a compile operation.)
The XCODE utility uses the default codepage of the operating system where it runs. To avoid possible conflicts from automatic codepage conversions, key values should use only US-ASCII characters. These characters are included in all codepages and can be located below code point 128 in the codepage.
Note that keys longer than eight characters do not generate warning or compile errors. Both the XCODE utility and the COMPILE statement ignore extra characters if present.
The directory where the encrypted files are placed. The specified directory must be different from the source directory, because each encrypted file retains the name of its original source file. Existing files in directory are overwritten only if they are encrypted.
The pathnames, relative to the root source directory, of files to be encrypted. The pathnames supplied are appended to directory. Therefore, you should build a directory structure exactly parallel to the source directory structure, move to the source root, and specify relative pathnames.
Indicates that source filenames are to be read from standard input.


cd /applr001
xcode -k key1 -d applx001 *.p
find applf002/*.p | xcode -k key2 -d applx002 -


*You must create the full directory structure desired for your encrypted files before running XCODE; XCODE does not create any directories implied by directory or files.
*The encryption algorithm is based on known techniques; therefore, the code is breakable. If your source code is highly sensitive, consider additional security methods.
*Encrypted include files must use the same key as any procedure that includes them.
*Compile encrypted procedures with the XCODE option on the COMPILE statement. (The XCODE option is not required if the procedures were encrypted with the default key or if the key is provided at the session-level by the XCODE-SESSION-KEY attribute of the SECURITY-POLICY handle.) Whatever the source, the key used by the COMPILE statement must match the key used with the XCODE utility. OpenEdge Development: ABL Reference describes the COMPILE statement in detail.