ESG Security, CBT tape 429 file 165 - archived project

I was trying to get the ESG security system from CBT tape 429, file 165, ported backlevel to the VS2 (MVS38J) level. It isn't easy, it seems to have been written for MVS/XA or above.

Since I started working on this RAKF (the VS2 security implementation that was previously locked away so only registered users of the yahoo groups hercules os390 section) was placed on the latest CBTtape. So I have stopped work on my solution and implemented RAKF instead. So my work here is only if anyone wants to see my last known state.

The main purpose of this page is just to archive the current state I managed to get to in case I need to revisit this code later... I learned a lot more about how things hang together than just installing RAKF would have, so I guess I was lucky RAKF was unavailable for such a long time :-).

My only complaint about RAKF is that instead of implementing ICHRTX00 to be called via ICHSFR00 as it should be it just replaces ICHSFR00 with the functions that ICHRTX00 should provide, that may limit extention of functions; I was trying to build the entire chain of calls that should be there (the SAF vector table as designed allows the SAF router to call three other exits as well as ICHRTX00 so any additional functions will have to be implemented directly into the RAKF ICHSFR00 (which is the modified for MVS3.8J ESG ICHRTX00)).
But RAKF works now, so I have implemented that. You should as well if you want a working security product.

Current ESG functionality provided so far by my mucking about

Future changes planned in this space

As RAKF does provide most of the functionality I need the only additional code that may be linked from this page one day is

Major changes required to get ESG working on VS2

Well I said it was very time consuming, this is what has been done so far.

Currently working with this archived solution

Current issues with this archived solution

Current snapshot

My current source test code is available as an AWS tape image. Running @MIDASM will compile the load modules but refer to the @MIDDOC member on creating the required entries in SYS1.PARMLIB(IEALPA00) to actually use them.

Sample JCL to download my current snapshot is here for your convenience. Change the HLQ on SYSUT2 (and of course unit/volser). Also the assembly steps refer to INSTALL.ESGSEC.SRC so you will have to globally change references to the file in @MIDASM before you run it (read @MIDDOC, the assembly job will replace the existing dummy ICHSEC00 provided with VS2 (in TK3) so back it up (or rename it) first as you will need to move it back when you have finished playing (i really should smp the install step).


//STEPA    EXEC PGM=IEBCOPY
//SYSPRINT DD   SYSOUT=*
//SYSUT1   DD   DSN=INSTALL.ESGSEC.SRC,DISP=OLD,
// VOL=SER=MARK28,UNIT=TAPE,LABEL=(1,SL)
//SYSUT2   DD   DSN=INSTALL.ESGSEC.SRC,DISP=(NEW,CATLG,DELETE),
// UNIT=3350,VOL=SER=SRCMD1,SPACE=(TRK,(50,10,20)),
// DCB=(DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=5600)
//SYSIN    DD   *
 COPY INDD=SYSUT1,OUTDD=SYSUT2
/*
//