1 CHECKSUM The CHECKSUM command invokes a utility to calculate one or more checksums for OpenVMS files. The result, or checksum, is available in the DCL symbol CHECKSUM$CHECKSUM. For a detailed description of the CHECKSUM utility, see the CHECKSUM command description in the HP OpenVMS DCL Dictionary. Format CHECKSUM filespec 2 Parameter filespec Specifies the name of an existing file to be checksummed. The asterisk (*) and percent sign (%) wildcard characters are allowed in the file specification. 2 Qualifiers /ALGORITHM /ALGORITHM=option /ALGORITHM=XOR (default) Selects the algorithm used for file checksums. The default is the XOR algorithm for data within records, as used by the previous Checksum utilities on OpenVMS Alpha systems. Options include: o CRC - A CRC-32 algorithm for all bytes within the file (possible record structures are ignored); this algorithm is also known as AUTODIN II, Ethernet, or FDDI CRC. o MD5 - The MD5 digest, as published by Ronald L. Rivest (RFC 1321), for all bytes within the file (possible record structures are ignored). o XOR - An XOR algorithm for all data, according to the record structure of the file. /ALPHA Calculates an Alpha-type checksum and is only useful with the /IMAGE qualifier on Integrity server systems (that is, it checksums Alpha images on Integrity server systems). It is set by default on Alpha platforms. /FILE /FILE (default) Calculates a file checksum. By default, the XOR algorithm (/ALGORITHM=XOR) is used for the checksum. The /FILE qualifier also implies a default file type of .DAT. By default, unsigned decimal checksum value is saved in the DCL symbol CHECKSUM$CHECKSUM and not output to the screen. By specifying /SHOW=DATA, the full filename of the specified input file is output in addition to the file checksum, an unsigned decimal value. The /ALPHA, /I64, or /VAX platform qualifiers do not influence the file checksum result. However, /ALPHA and /VAX prohibit the /SHOW qualifier because these qualifiers were not available on the original Checksum utility for Alpha systems. /I64 Calculates an I64-type checksum and is only useful on Alpha systems with /IMAGE or /OBJECT (that is, it checksums Integrity servers images or objects on Alpha systems). The /I64 qualifier is set by default on Integrity servers platforms. /IMAGE Calculates a checksum of all image bytes. The image structure is followed to include only the image bytes into the checksum. Invariant data, such as the linker version and the link date, are omitted. For Integrity servers images (that is, Integrity servers formatted files), a CRC checksum is calculated and additional information is output to SYS$OUTPUT, including the following: o The resulting full filename and checksums for the image segments o The header checksums and the overall image checksum The output values are shown in hexadecimal notation. The DCL symbol, CHECKSUM$CHECKSUM, shows the result in hexadecimal notation. For Alpha and VAX images, an XOR checksum is calculated and additional information is output to SYS$OUTPUT: o The resulting full filename and checksums for the image sections o The header checksum and the overall image checksum The output checksum values are in hexadecimal notation. However, the result in the DCL symbol CHECKSUM$CHECKSUM is in unsigned decimal notation. NOTE For Alpha and VAX images, the unsigned decimal notation of the checksum value in the DCL symbol CHECKSUM$CHECKSUM retains compatibility with the previous checksum tool. The /IMAGE qualifier implies the default file type of .EXE. For Integrity servers images, this qualifier also implies the default keyword values HEADERS and SEGMENTS for the /SHOW qualifier. /OBJECT Calculates a CRC checksum of all Integrity servers object bytes. The /OBJECT qualifier follows the ELF-64 object structure to include only the object bytes into the checksum. Invariant data, as the language processor version and the generation date, are omitted. Additional information is output to SYS$OUTPUT, including the following: o The resulting full filename of the specified input file o The checksums for the object sections, headers, and the overall object checksum The output checksum values are in hexadecimal notation. The result provided in the DCL symbol, CHECKSUM$CHECKSUM, is in hexadecimal notation. The /OBJECT qualifier implies the default file type of .OBJ. This qualifier also implies the default keyword values HEADERS and SECTIONS for the /SHOW qualifier. On Alpha platforms, it is only applicable with the /Integrity servers qualifier. /OUTPUT /OUTPUT[=filespec] /NOOUTPUT The /OUTPUT qualifier controls where the output of the command is sent. The /NOOUTPUT qualifier suppresses output. If you specify /OUTPUT and a file specification (/OUTPUT=filespec), the output is sent to the specified file, rather than to the current output device, SYS$OUTPUT. If you do not enter the qualifier, or if you enter the /OUTPUT qualifier without a file specification, the output is sent to SYS$OUTPUT. Using the /OUTPUT qualifier does not affect the result (that is, the DCL symbol CHECKSUM$CHECKSUM). /SHOW /SHOW=(option[,...]) Controls which checksum and additional information is output to the device. Options for this qualifier are as follows: o ALL - Sets all of the applicable options, with the following restrictions: - For file checksums, only the DATA keyword is allowed. - For image checksums, all keywords are allowed. - For object checksums, the SEGMENT keyword is not allowed. o DATA - Outputs the full file name and the file checksum. For compatibility, this option is available for /FILE. o EXCLUDED - Formats the data excluded from the image or object checksums. o HEADERS - Output checksums of all Integrity servers headers. This option is set by default for /IMAGE and /OBJECT. o SECTIONS - Output checksums of all ELF-64 sections. This option is set by default for /OBJECT. o SEGMENTS - Output checksums of all ELF-64 program segments. This option is set by default for /IMAGE. /VAX Calculates a VAX-type checksum and is only useful on Integrity servers or Alpha systems with /IMAGE to checksum VAX images on non-VAX systems. 2 Examples The CHECKSUM/IMAGE command results in different output for Integrity servers and Alpha platforms. Because there are different image structures, the names for the checksums differ: o The checksum for Alpha outputs the section number as BLISS constant: %D'1' whereas the Integrity servers checksum outputs decimal numbers. o The checksum for Alpha outputs the checksums as BLISS constant: %X'6C5404CB' whereas the Integrity servers checksum outputs DCL-style hexadecimal numbers. o The DCL symbol on Alpha is an unsigned decimal value, whereas the DCL symbol for Integrity servers is a hexadecimal value. On Alpha systems: $ CHECKSUM/IMAGE HELLO.EXE file DISK$USER:[JOE]HELLO.EXE;10 image section %D'1' checksum is %X'6C5404CB' image section %D'2' checksum is %X'E29D6A3A' image section %D'3' checksum is %X'114B0786' image header checksum is %X'00000204' checksum of all image sections is %X'9F826977' $ SHOW SYMBOL CHECKSUM$CHECKSUM CHECKSUM$CHECKSUM = "2676124023" On Integrity server systems: $ CHECKSUM/IMAGE FOOBAR.EXE File DISK$USER:[JOE]FOOBAR.EXE;3 Checksum program segment 0: %X18E293D7 Checksum program segment 1: %XEFBCE000 Checksum program segment 2: %XA6D02DD5 Checksum program segment 3: %X30130E3E Checksum dynamic segment %X0F704080 Elf header checksum: %X7A6AC80F Elf program header checksum: %XBF6B41D8 Elf section header checksum: %X6C770CF6 Elf (object/image) checksum: %X2EEE7726 $ SHOW SYMBOL CHECKSUM$CHECKSUM CHECKSUM$CHECKSUM = "2EEE7726"