Расшифровка поля файла XML с использованием (алгоритм AES128) OPENSSL в программе RPGLE - PullRequest
0 голосов
/ 07 ноября 2019
enter code here

     FUNIX      IF   F 1000        SPECIAL PGMNAME('UNIXCMD')
 F                                     PLIST(UNIXPARM)   usropn
 FQSYSPRT   O    F  132        PRINTER
 dencodedExcha...
 dngeToken         s             88
 DSTRING1          S            100
 D cmd             s           5000a
 D mode            s              1A   inz('P')
 D record          ds          1000
 D outrec          ds           132

 C     UNIXPARM      PLIST
 C                   PARM                    CMD
 C                   PARM                    MODE
  /free
   XML-INTO encodedExchangeToken %XML('/home/I0RS01HU/+
   /INPUT.xml':'doc=file case=any path=+
   TokenExchangeResponse/encodedExchangeToken');
   cmd = 'echo'  + ' ' +  encodedExchangeToken + 'ö openssl +
      enc -d -aes-128-ecb -K +
      363631653237354f494d31554c594c4a -nopad -nosalt +
      -base64 -A -out record';
      open UNIX;
      read UNIX record;
      dow not %eof(UNIX);
         outrec = record;
         write QSYSPRT outrec;
         read UNIX record;
      enddo;

      close UNIX;
      *inlr = *on;
  /end-free

Выше моя программа, которая пытается записать расшифрованное значение, но она не работает, как ожидалось, тогда как та же самая работа, когда я в интерактивном режиме выполняю команду OPENSSL: - и посмотрите, как она показывает расшифрованное значение на консоли, как показано ниже: -echo 'u3VtNgfyWU9faZc3Iaa8ZWbE5UZCfmC17yA4MyW0ghflt9dNQNDpCcgMZiG / kXPE4vv2CHL 93B4iKiODHxxdVA ==' |openssl enc -d -aes-128-ecb -K 363631653237354f494d31554 c594c4a -nopad -nosalt -base64 -A

707fbe32-0dbc-41e0-888f-5bc40de8c20d2Z

100 * 100 * 4C4CT
...