When using a Top Secret exit based on the sample member TSSINST1 in the CAKOSRC0 library, the sample TSSINST1 implies that TXACMODE points to a mode table, the first word of which is a count of the number of modes. However, when abending the exit in the COMMAND entry point, the first word is not a count.
When the security administrator issues a TSS PER(acid) MODE(WARN), the command fails with:
TSS0226E REQUEST FAILED BY INSTALLATION EXIT
TSS0301I PERMIT FUNCTION FAILED, RETURN CODE = 4
Release : 16.0
Component : CA Top Secret for z/OS
The sample code given in the TSSINST1 member is not correct.
If the following command is issued:
TSS PERM(acid) MODE(FAIL,IMPLE,DORMANT)
then the actual mode resource table will be returned as follows:
+0 (2) 00C3 <- this is the rescode for MODE and will always be the same
+4 (2) 0003 <- this contains the number of modes issued on the TSS command
+7 (1) 03 <- this is the length of the first mode in the table
+8 (255) FAIL <- first mode
+107(1) 04 <- length of second mode
+108(255) IMPLE <- second mode
+207(1) 06 <- length of third mode
+208(255) DORMANT<- third mode
TXACMODE = A(MODE TABLE)
---------------------------------------------------------------------------
7F53B0D8 00C30000 00032003 | .C...... |
7F53B0E0 C6C1C9D3 40404040 40404040 40404040 | FAIL |
7F53B0F0.:7F53B1CF. LENGTH(X'E0')--All bytes contain X'40', C' '
7F53B1D0 40404040 40404040 40404040 40404004 | . |
7F53B1E0 C9D4D7D3 C5404040 40404040 40404040 | IMPLE |
7F53B1F0.:7F53B2CF. LENGTH(X'E0')--All bytes contain X'40', C' '
7F53B2D0 40404040 40404040 40404040 40404006 | . |
7F53B2E0 C4D6D9D4 C1D5E340 40404040 40404040 | DORMANT |
7F53B2F0.:7F53B5CF. LENGTH(X'02E0')--All bytes contain X'40', C' '
7F53B5D0 40404040 40404040 40404040 40404000 | . |