This file describes all of the files provided as part of the installation of VAX Encryption Version 1.1 and Encrypt-AES V2.0 available with OpenVMS version V8.3 for Alpha and Itanium systems. These files are located in the directory SYS$COMMON:[SYSHLP.EXAMPLES.ENCRYPTION] and are set to be world readable. The logical name ENCRYPT$EXAMPLES: is defined for this directory. o CRYPEDT.CLD This is the command definition file that accompanies the PASCAL sample application program, CRYPEDT.PAS. o CRYPEDT.PAS This is a fully worked sample application that makes use of the programmer's interface to VAX Encryption. This program uses the callable EDT interface to implement an "encrypting editor". The source and destination files of the edit operation are kept as encrypted files on disk. Note that the intermediate scratch files are not kept encrypted. This program serves only to illustrate one method of calling the VAX Encryption services. o ENCRYPT$EXAMPLES.TEXT This file. o ENCRYPT_DEF.* These files are the individual "include" or "require" files which contain definitions for the programmer's interface to VAX Encryption. Files are provided for several Digital supported language compilers. o ENCRYPT_MESSAGES.* These files are the individual "include" or "require" files which contain definitions for the message code definitions. Files are provided for several Digital supported language compilers. o ENCRYPT_STRUCTURES.* These files are the individual "include" or "require" files which contain definitions for VAX Encryption internal structure and symbol definitions. Files are provided for several Digital supported language compilers. o SAMPLE_HANDLER.PAS This is a sample PASCAL program illustrating the use of a condition handler to trap errors occurring within the callable routines. SYS$COMMON:[SYSHLP.EXAMPLES.ENCRYPTION]ENCRYPT$EXAMPLES.TEXT Page 2 o ENCRYPT$1_MBYTE_RANDOM-KEY.C This example generates a random AES secret key and encrypts with AES one megabyte of zeros (64K x 16), decrypts them, then compares the results. It iterates through the AES 16 byte block modes (AESECB, AESCBC) and the single character stream modes (AESCFB, AESOFB), using the three different key lengths: 16, 24, and 32 bytes, (128, 192, 256 bits respectively). The preprocessor definition DEBUG_TRACE can be defined to see more information. Also, by using the OpenVMS DEBUGGER and stopping just after the ENCRYPT$ENCRYPT() routine call and examining the raw cipher data, the value of using CBC over ECB mode could readily be seen in the repeating data pattern for every block. This is because the example does not vary the initialization vector (IV), it is held constant.