midrange.com code scratchpad
Name:
Decryption AES128
Scriptlanguage:
Plain Text
Tabwidth:
4
Date:
11/18/2019 03:53:30 pm
IP:
Logged
Description:
Hi,

I tried to decrypt encodedexchangetoken using below program but when it decrypts it keeps ending with trailing blanks or some junk values which i want to remove and write only correct decrypted value to my flat file or another output xml file to write it in flat file i tried below code but 1) it's not able to recognize when decrypted value ends 2) it does not recognize when junk value starts 3) writing to XML and flat file is also failing.
Code:
  1.      FUNIX      IF   F 1000        SPECIAL PGMNAME('UNIXCMD')
  2.      F                                     PLIST(UNIXPARM) USROPN
  3.      FQSYSPRT   O    F  132        PRINTER
  4.      dencodedExcha...
  5.      dngeToken         s            500
  6.  
  7.      DPOS1             S              5U 0
  8.      DPOS2             S              5U 0
  9.      D cmd             s           5000a
  10.      D mode            s              1A   inz('P')
  11.      D*spacepos        s              5u 0
  12.      D Åcommand        s            512a
  13.  
  14.      d QCMDEXC         PR                  ExtPgm('QCMDEXC')
  15.      d   command                    500a   const
  16.      d   clength                     15p 5 const
  17.      D record          ds          1000
  18.      D outrec          ds           132
  19.  
  20.      C     UNIXPARM      PLIST
  21.      C                   PARM                    CMD
  22.      C                   PARM                    MODE
  23.       /free
  24.        XML-INTO encodedExchangeToken %XML('/home/I0RS01HU/+
  25.        INPUT.xml':'doc=file case=any path=+
  26.        TokenExchangeResponse/encodedExchangeToken');
  27.        eval pos1= %scan(' ':encodedExchangeToken);
  28.        EVAL     encodedExchangeToken = %subst(encodedExchangeToken:1:+
  29.                  POS1-1);
  30.        cmd = 'echo ' + '''' +  encodedExchangeToken + ''' ! openssl +
  31.           enc -d -aes-128-ecb -K 363631653237354f494d31554c594c4a +
  32.           -nopad -nosalt -base64 -A';
  33.        open UNIX;
  34.        read UNIX record;
  35.        dow not %eof(UNIX);
  36.        eval pos2= %scan(' ':record);
  37.        EVAL     outrec=%SUBST(record:1:POS2-1);
  38.           Åcommand = 'CRTPF FILE(RISHI/TESTFILE) RCDLEN(500)';
  39.           QCMDEXC(%trim(Åcommand): %len(%trim(Åcommand)));
  40.         //Write into file
  41.            EXEC SQL
  42.           INSERT INTO rishi/TESTFILE VALUES (:outrec);
  43.            write QSYSPRT outrec;
  44.            dsply %subst(outrec:1:48);
  45.            read UNIX record;
  46.            enddo;
  47.         close UNIX;
  48.         *inlr = *on;
  49.       /end-free
  50.  
© 2004-2019 by midrange.com generated in 0.008s valid xhtml & css