× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



1) But why is below code then compiling well and not giving any errors, if
there is problem in the way of declaration of fields and putting **free in
below code:-

0001.00 **free
0002.00 dcl-s encodedtokenexchange int(10);
0003.00 for ENCODEDTOKENEXCHANGE = 1 to 3;
0004.00 dsply ('i = ' + %char(encodedtokenexchange));
0005.00 endfor;
0006.00 return;
0007.00 eval *inlr = *on;


2) I even tried by hard coding token value and then tried to decrypt it
using below code still it's not getting compiled:-

FUNIX IF F 1000 SPECIAL PGMNAME('UNIXCMD')
F PLIST(UNIXPARM) USROPN
FQSYSPRT O F 132 PRINTER

D cmd s 5000a
D mode s 1A inz('P')
Dvar1 s 88
INZ('u3VtNgfyWU9faZc3Iaa8ZWbE5UZCfmC+
D
-yW0ghflt9dNQNDpCcgMZiG/kXPE4vv2CHL9+
D -B4iKiODHxxdVA==')
D record ds 1000
D outrec ds 132

C UNIXPARM PLIST
C PARM CMD
C PARM MODE
/free
cmd = "echo VAR1 !openssl enc -d -aes-128-ecb -K Q+
363631653237354f494d31554c594c4a -nopad -nosalt -base64 -A
-out string" ;
read UNIX record;
dow not %eof(UNIX);
outrec = record;
write QSYSPRT outrec;
read UNIX record;
enddo;

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

3) in interactive way openssl works pretty well like below can't same work
in a programmatic way ?

echo
'u3VtNgfyWU9faZc3Iaa8ZWbE5UZCfmC17yA4MyW0ghflt9dNQNDpCcgMZiG/kXPE4vv2CHL
93B4iKiODHxxdVA==' | openssl enc -d -aes-128-ecb -K
363631653237354f494d31554
c594c4a -nopad -nosalt -base64 -A


*Decrypted value :-707fbe32-0dbc-41e0-888f-5bc40de8c20d2P9AMPCTQ4CZ
¢ *

4) I found below link for decryption using IBM API but it's not matching
with my simple requirement just to read xml file for token value extract it
from there and then pass it's value to openssl
to decrypt it using AES 128 algorithm and then to write it's decrypted
value in another xml file at particular field also the API mentioned in
this link is too complex whereas my requirement is too simple so I don't
think I should use this complex API mentioned in this link.

link for IBM API:-
*https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/apis/qc3BillCusILERPG.htm
<https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/apis/qc3BillCusILERPG.htm>*



Thanks


On Thu, Oct 31, 2019 at 10:08 PM Barbara Morris <bmorris@xxxxxxxxxx> wrote:

On 2019-10-31 8:11 a.m., Rishi Seth wrote:
...
But when I am trying to use the same command in below RPGLE program my
program ends up in multiple errors:-

0001.00 **free
0002.00 dcl-s encodedExchangeToken varchar(88);
0003.00 dcl-s string char(45);
0004.00 FUNIX IF F 1000 SPECIAL PGMNAME('UNIXCMD')
0005.00 F PLIST(UNIXPARM) USROPN
0006.00 FQSYSPRT O F 132 PRINTER
0007.00 ...

You can't put fixed form code like this:
FUNIX IF F 1000 SPECIAL PGMNAME('UNIXCMD')
in a source member with **FREE at the beginning.'

To fix your code:
- Remove the **FREE line
- Make sure all your free-form code has at least 7 spaces at the beginning.

So the first part of your program should look like this:

dcl-s encodedExchangeToken varchar(88);
dcl-s string char(45);
FUNIX IF F 1000 SPECIAL PGMNAME('UNIXCMD')
F PLIST(UNIXPARM) USROPN
FQSYSPRT O F 132 PRINTER

--
Barbara

--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.