**************************
IDENTIFICATION DIVISION.
***************************
PROGRAM-ID. COBOLXMP.
*****************************
ENVIRONMENT DIVISION.
*****************************************************************
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
*****************************
DATA DIVISION.
*****************************************************************
FILE SECTION.
WORKING-STORAGE SECTION.
77 INPUT-TEXT PIC X(24)
VALUE 'ABCDEFGHIJKLMN0987654321'.
77 OUTPUT-TEXT PIC X(24)
VALUE LOW-VALUES.
77 COMPARE-TEXT PIC X(24)
VALUE LOW-VALUES.
77 CIPHER-PROCESSING-RULE PIC X(08)
VALUE 'CUSP '.
77 KEY-FORM PIC X(08)
VALUE 'OP '.
77 KEY-LENGTH PIC X(08)
VALUE 'SINGLE '.
77 KEY-TYPE-1 PIC X(08)
VALUE 'DATA '.
77 KEY-TYPE-2 PIC X(08)
VALUE ' '.
77 ICV PIC X(08)
VALUE LOW-VALUES.
77 PAD PIC X(01)
VALUE LOW-VALUES.
************* DEFINE SAPI INPUT/OUTPUT PARAMETERS ************
01 SAPI-REC.
05 RETURN-CODE-S PIC 9(08) COMP.
05 REASON-CODE-S PIC 9(08) COMP.
05 EXIT-DATA-LENGTH-S PIC 9(08) COMP.
05 EXIT-DATA-S PIC X(04).
05 KEK-KEY-ID-1-S PIC X(64)
VALUE LOW-VALUES.
05 KEK-KEY-ID-2-S PIC X(64)
VALUE LOW-VALUES.
05 DATA-KEY-ID-S PIC X(64)
VALUE LOW-VALUES.
05 NULL-KEY-ID-S PIC X(64)
VALUE LOW-VALUES.
05 KEY-FORM-S PIC X(08).
05 KEY-LENGTH-S PIC X(08).
05 DATA-KEY-TYPE-S PIC X(08).
05 NULL-KEY-TYPE-S PIC X(08).
05 TEXT-LENGTH-S PIC 9(08) COMP.
05 TEXT-S PIC X(24).
05 ICV-S PIC X(08).
05 PAD-S PIC X(01).
05 CPHR-TEXT-S PIC X(24).
05 COMP-TEXT-S PIC X(24).
05 RULE-ARRAY-COUNT-S PIC 9(08) COMP.
05 RULE-ARRAY-S.
10 RULE-ARRAY PIC X(08).
05 CHAINING-VECTOR-S PIC X(18).
*****************************************************************
PROCEDURE DIVISION.
*****************************************************************
MAIN-RTN.
************* CALL KEY GENERATE ***************************
MOVE 0 TO EXIT-DATA-LENGTH-S.
MOVE KEY-FORM TO KEY-FORM-S.
MOVE KEY-LENGTH TO KEY-LENGTH-S.
MOVE KEY-TYPE-1 TO DATA-KEY-TYPE-S.
MOVE KEY-TYPE-2 TO NULL-KEY-TYPE-S.
CALL 'CSNBKGN' USING RETURN-CODE-S
REASON-CODE-S
EXIT-DATA-LENGTH-S
EXIT-DATA-S
KEY-FORM-S
KEY-LENGTH-S
DATA-KEY-TYPE-S
NULL-KEY-TYPE-S
KEK-KEY-ID-1-S
KEK-KEY-ID-2-S
DATA-KEY-ID-S
NULL-KEY-ID-S.
IF RETURN-CODE-S NOT = 0 OR
REASON-CODE-S NOT = 0 THEN
DISPLAY '*** KEY-GENERATE ***'
DISPLAY '*** RETURN-CODE = ' RETURN-CODE-S
DISPLAY '*** REASON-CODE = ' REASON-CODE-S
ELSE
MOVE 24 TO TEXT-LENGTH-S
MOVE INPUT-TEXT TO TEXT-S
MOVE 1 TO RULE-ARRAY-COUNT-S
MOVE CIPHER-PROCESSING-RULE TO RULE-ARRAY-S
MOVE LOW-VALUES TO CHAINING-VECTOR-S
MOVE ICV TO ICV-S.
MOVE PAD TO PAD-S.
************* CALL ENCIPHER ************************************
CALL 'CSNBENC' USING RETURN-CODE-S
REASON-CODE-S
EXIT-DATA-LENGTH-S
EXIT-DATA-S
DATA-KEY-ID-S
TEXT-LENGTH-S
TEXT-S
ICV-S
RULE-ARRAY-COUNT-S
RULE-ARRAY-S
PAD-S
CHAINING-VECTOR-S
CPHR-TEXT-S
IF RETURN-CODE-S NOT = 0 OR
REASON-CODE-S NOT = 0 THEN
DISPLAY '*** ENCIPHER ***'
DISPLAY '*** RETURN-CODE = ' RETURN-CODE-S
DISPLAY '*** REASON-CODE = ' REASON-CODE-S
ELSE
************* CALL DECIPHER ************************************
CALL 'CSNBDEC' USING RETURN-CODE-S
REASON-CODE-S
EXIT-DATA-LENGTH-S
EXIT-DATA-S
DATA-KEY-ID-S
TEXT-LENGTH-S
CPHR-TEXT-S
ICV-S
RULE-ARRAY-COUNT-S
RULE-ARRAY-S
CHAINING-VECTOR-S
COMP-TEXT-S
IF RETURN-CODE-S NOT = 0 OR
REASON-CODE-S NOT = 0 THEN
DISPLAY '*** DECIPHER ***'
DISPLAY '*** RETURN-CODE = ' RETURN-CODE-S
DISPLAY '*** REASON-CODE = ' REASON-CODE-S
ELSE
IF COMP-TEXT-S = TEXT-S THEN
DISPLAY '*** DECIPHERED TEXT = PLAIN TEXT ***'
ELSE
DISPLAY '*** DECIPHERED TEXT ê= PLAIN TEXT ***'.
DISPLAY '*** TEST PROGRAM ENDED ***'
STOP RUN.
this code i found it but Idon't know how can i write compiler
===================================================================================
//JOBLIB DD DISP=SHR,DSN=DSNB10.SDSNEXIT
// DD DISP=SHR,DSN=DSNB10.SDSNLOAD
// DD DISP=SHR,DSN=CEE.SCEERUN
//PH02CS03 EXEC DSNHICOB,MEM=TST1,
// COND=(4,LT),
// PARM.PC=('HOST(IBMCOB)',APOST,APOSTTST1,SOURCE,
// NOXREF,'TST1(DB2)','DEC(31)'),
// PARM.COB=(NOSEQUENCE,QUOTE,RENT,
// 'PGMNAME(LONGUPPER)','ARITH(EXTEND),LIB')
//PC.DBRMLIB DD DSN=ETL.DSND.DBRMLIB.DATA(TST1),
// DISP=SHR
//PC.SYSLIB DD DSN=ETL.DSND.SRCLIB.DATA,
// DISP=SHR
//PC.SYSIN DD DSN=DBA.JCL(TST1), * its my cobol source code
// DISP=SHR
//LKED.SYSLMOD DD DSN=ETL.DSND.RUNLIB.LOAD(TST1),
// DISP=SHR
//LKED.RUNLIB DD DSN=ETL.DSND.RUNLIB.LOAD,
// DISP=SHR
//LKED.SYSIN DD *
INCLUDE SYSLIB(DSNELI)
=========================================================================================
and i find this job
//LKEDENC JOB
//*-----------------------------------------------------------------*
//* *
//* The JCL links the ICSF encipher callable service, CSNBENC, *
//* into an application called ENCIPHER. *
//* *
//*-----------------------------------------------------------------*
//LINK EXEC PGM=IEWL,
// PARM='XREF,LIST,LET'
//SYSPRINT DD SYSOUT=*
//SYSLIB DD DSN=CSF.SCSFSTUB,DISP=SHR * SERVICES ARE IN HERE
//SYSLMOD DD DSN=MYAPPL.LOAD,DISP=SHR * MY APPLICATION LIBRARY
//SYSLIN DD DSN=MYAPPL.ENCIPHER.OBJ,DISP=SHR * MY ENCIPHER PROGRAM
// DD *
ENTRY ENCIPHER
NAME ENCIPHER(R)
/*
How Can I convert this two jcl jobs? and create my compiler? I am so confused to compile that code. I dont know what is MYAPPL.LOAD and MYAPPL.ENCIPHER.OBJ.
------------------------------
Morteza Moradi
------------------------------
Original Message:
Sent: Tue July 30, 2024 08:42 AM
From: Eric Rossman
Subject: Create compiler for cobol job
This sounds like a binder error. You would first compile the code and then bind it with the called services.
Could you provide what your compile job and link/bind job look like?
------------------------------
Eric Rossman
Original Message:
Sent: Tue July 30, 2024 05:47 AM
From: Morteza Moradi
Subject: Create compiler for cobol job
Hi every one
I found the cobol code at IBM Book that to call icsf panel to encrypted and decrypted data. now I don't know how can i write my compiler. i dont have syntax error. but i get rc=00008 with this reason:
CSNBKRD unresolved member couldn't be included from the designated call library
------------------------------
Morteza Moradi
------------------------------