midrange.com code scratchpad
Name:
what i passed.
Scriptlanguage:
Plain Text
Tabwidth:
4
Date:
11/27/2019 08:27:19 pm
IP:
Logged
Description:
hi,
i referred this link>/

https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_74/apis/QDCXLATE.htm
and please my program what i passed.
Code:
  1.      H DftActGrp(*No) BndDir('QC2LE')
  2.      FUNIX      IF   F 1000        SPECIAL PGMNAME('UNIXCMD')
  3.      F                                     PLIST(UNIXPARM) USROPN
  4.      FK1        IF   E             DISK
  5.      F*QSYSPRT   O    F 1000        PRINTER
  6.      dencodedExcha...
  7.      dngeToken         s            500    VARYING
  8.  
  9.      d len             s             10i 0
  10.      DPOS2             S              5U 0
  11.      D cmd             s           5000a
  12.      D mode            s              1A   inz('P')
  13.      DN1               S              2P 0
  14.      D HexEquivalent   S             52A
  15.      d cvthc           PR                  ExtProc('cvthc')
  16.      d   target                   65534A   options(*varsize)
  17.      d   src_bits                 32767A   options(*varsize) const
  18.      d   tgt_length                  10I 0 value
  19.      d QDCXLATE        PR                  ExtPgm('QDCXLATE')
  20.      d   len                          5p 0 const
  21.      d   data                     32702a   options(*varsize)
  22.      d   table                       10a   const
  23.      D Åcommand        s            512a
  24.      d QCMDEXC         PR                  ExtPgm('QCMDEXC')
  25.      d   command                    500a   const
  26.      d   clength                     15p 5 const
  27.  
  28.      D record          ds          1000
  29.      D outrec          s           1000    varying  inz
  30.      Dreplkey          s            100a   inz
  31.  
  32.      C     UNIXPARM      PLIST
  33.      C                   PARM                    CMD
  34.      C                   PARM                    MODE
  35.       /free
  36.        RECORD = *BLANKS;
  37.        OUTREC = *BLANKS;
  38.        // replkey = '363631653237354f494d31554c594c4a';
  39.        XML-INTO encodedExchangeToken %XML('/home/I0RS01HU/+
  40.        IN2.xml':'doc=file case=any path=+
  41.        TokenExchangeResponse/encodedExchangeToken');
  42.        eval encodedExchangeToken =%trimr(encodedExchangeToken);
  43.        read rec ;
  44.         //Convert from EBCDIC to ASCII
  45.               QDCXLATE(len: key: 'QTCPASC');
  46.  
  47.                cvthc(HexEquivalent: key: %len(key)*2);
  48.  
  49.        cmd = 'echo ' + '''' +  encodedExchangeToken + ''' ! openssl +
  50.        // enc -d -aes-128-ecb -K 363631653237354f494d31554c594c4a +
  51.           enc -d -aes-128-ecb -K ' + %trimr(HexEquivalent) +
  52.           ' -nopad -nosalt -base64 -A';
  53.        open UNIX;
  54.        read UNIX record;
  55.        dow not %eof(UNIX);
  56.        pos2 = %scan(x'10' :record);
  57.        Record = %subst(Record :1 :(Pos2 - 1));
  58.        eval outrec = %trimr(record);
  59.        EVAL N1  = %LEN(OUTREC);
  60.         DSPLY N1;
  61.         //Delete the TESTFILE
  62.           Åcommand = 'DLTF FILE(rishi/TESTFILE)';
  63.           QCMDEXC(%trim(Åcommand): %len(%trim(Åcommand)));
  64.           Åcommand = *blanks;
  65.           Åcommand = 'CRTPF FILE(RISHI/TESTFILE) RCDLEN(' + %char(N1) + ')';
  66.           QCMDEXC(%trim(Åcommand): %len(%trim(Åcommand)));
  67.         //Write into file
  68.            EXEC SQL
  69.           INSERT INTO rishi/TESTFILE VALUES (:outrec);
  70.       //   dsply %subst(outrec:1:48);
  71.            read UNIX record;
  72.            enddo;
  73.         close UNIX;
  74.         return;
  75.       /end-free
  76.  
© 2004-2019 by midrange.com generated in 0.007s valid xhtml & css