|
That’s because you aren't building your string up anymore Go back to the
code where you built the string, but remove that CHGJOB portion. Again, if
when you get to the OPEN UNIX line in your program and you look at the
value of CMD, if it is anything other than what you type interactively,
then you can't expect to get the same results.
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of
Rishi Seth
Sent: Monday, November 04, 2019 8:33 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: parsing varying length field from XML file using RPGLE program
actually before calling his program evenif i separately call it from
command line like chgjob ccsid and then compile my below code then in
record variable i don\t find decrypted value as expected and it gives below
value>/
Previous debug expressions
EVAL record
RECORD =
....5...10...15...20...25...30...35...40...45...50...55...60
1 'encodedExchangeToken ¦ openssl enc -d -aes-128-ecb -K 363631'
61 '653237354f494d31554c594c4a -nopad -nosalt -base64 -A -out re'
121 'cord '
181 ' '
241 ' '
301 ' '
361 ' '
421 ' '
481 ' '
541 ' '
601 ' '
More...
Debug . . .
for below program code:-
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
Thanks
On Mon, Nov 4, 2019 at 3:09 PM Kevin Bucknum <Kevin@xxxxxxxxxxxxxxxxxxx>
wrote:
Run chgjob ccsid(37) interactively in Qshell. You will get that samewrote:
error. That is not a Qshell command. That is an IBM I command. What is
your job CCSID to start with?
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf
Of Rishi Seth
Sent: Monday, November 04, 2019 7:39 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: parsing varying length field from XML file using RPGLE
program
ok,after few corrections:-
Decrypted value using AES128 algorithm from a input xml file using
RPGLE
program:-
Hi,
When I am trying to read input xml file which has 'encodedexchangetoken'
value in it then using AES128 algorithm interactively it works well
like
1) i issue chgjob ccsid(37) 2) then call qsys/qp2term 3) then i
execute this command :- echo
'u3VtNgfyWU9faZc3Iaa8ZWbE5UZCfmC17yA4MyW0ghflt9dNQNDpCcgMZiG/kXPE4vv2C
HL 93B4iKiODHxxdVA==' | openssl enc -d -aes-128-ecb -K
363631653237354f494d31554
c594c4a -nopad -nosalt -base64 -A
which gives me decrypted value as
"707fbe32-0dbc-41e0-888f-5bc40de8c20d2P9AMPCTQ4CZ"
so the same functionality when i am trying to achieve using below
RPGLE program it gives me this error which i get during debug the
value of record
field:-
revious debug expressions
EVAL recordRECORD =
....5...10...15...20...25...30...35...40...45...50...55...60
1 '/qopensys/usr/bin/sh: syntax error at line 1 : `(' unexpecte'
61 'd '
121 ' '
181 ' '
241 ' '
301 ' '
361 ' '
421 ' '
481 ' '
541 ' '
601 ' '
More...
Debug . . .
*********************''
RPGLE Program:-
FUNIX IF F 1000 SPECIAL PGMNAME('UNIXCMD') F PLIST(UNIXPARM) usropn
FQSYSPRT O F 132 PRINTER dencodedExcha...
dngeToken s 88
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 = 'chgjob ccsid(37)&& +
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
Note :- ö it's a pipe symbol during iseries trnsfer to pc it got
converted in this character.'
Thanks
On Mon, Nov 4, 2019 at 11:28 AM Rishi Seth <rishiseth99@xxxxxxxxx>
363631'
I think I don't need to make a string as in cmd in debug mode i can
see whole long command is coming but ideally value is record is not
coming as decrypted value.
it comes like below in debug mode also one ting i have noticed is
that the pipe symbol is not coming like '*|*' as I have coded in my
program where as in debug mode it gets converted like ' *¦* ':- how
did it get changed ?
That might be the cause of openssl is not working i guess?
Evaluate Expression
Previous debug expressions
EVAL record
RECORD =
....5...10...15...20...25...30...35...40...45...50...55...60
1 'encodedExchangeToken ¦ openssl enc -d -aes-128-ecb -K
re'
61 '653237354f494d31554c594c4a -nopad -nosalt -base64 -A -out
'
121 'cord
'
181 '
'
241 '
'
301 '
'
361 '
'
421 '
'
481 '
'
541 '
'
601 '
Bucknum--
More...
Debug . . .
Thanks
On Sat, Nov 2, 2019 at 7:02 PM Sam_L <lennon_s_j@xxxxxxxxxxx> wrote:
RPG is great for building strings. You just use "+".
Take a look here:
https://www.code400.com/forum/forum/iseries-programming-languages/r
pg -rpgle/10489-concat-message-into-one-string
.
You could build you cmd string in a series of statements and that
might make debugging easier.
*Something* like this:
cmd = 'echo ' + '''' ;
cmd = %trim(cmd) + encodedexchange; cmd = %trim(cmd) + ' whatever'
etc etc etc
cmd =%trim(cmd) + '''';
In debug you can go line by line examine cmd and see if it has waht
you want.
%trim removes leading and trailing blanks.
You've not coded a lot of RPG, have you?
Sam
On 11/2/2019 1:16 AM, Rishi Seth wrote:
i don\t know how can i build string but i know cat opcode
function and trimming % trim etc.
--
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
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
[https://www.medtronsoftware.com/img/MedtronMinilogo.bmp] Kevin
Senior Programmer Analystreturn or destruction of these documents.
MEDDATA / MEDTRON
120 Innwood Drive
Covington LA 70433
Local: 985-893-2550
Toll Free: 877-893-2550
https://www.medtronsoftware.com
CONFIDENTIALITY NOTICE
This document and any accompanying this email transmission contain
confidential information, belonging to the sender that is legally
privileged. This information is intended only for the use of the
individual or entity named above. The authorized recipient of this
information is prohibited from disclosing this information to any
other party and is required to destroy the information after its
stated need has been fulfilled. If you are not the intended
recipient, or the employee of agent responsible to deliver it to the
intended recipient, you are hereby notified that any disclosure,
copying, distribution or action taken in reliance on the contents of
these documents is STRICTLY PROHIBITED. If you have received this
email in error, please notify the sender immediately to arrange for
----
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
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
[https://www.medtronsoftware.com/img/MedtronMinilogo.bmp] Kevin Bucknum
Senior Programmer Analyst
MEDDATA / MEDTRON
120 Innwood Drive
Covington LA 70433
Local: 985-893-2550
Toll Free: 877-893-2550
https://www.medtronsoftware.com
CONFIDENTIALITY NOTICE
This document and any accompanying this email transmission contain
confidential information, belonging to the sender that is legally
privileged. This information is intended only for the use of the
individual or entity named above. The authorized recipient of this
information is prohibited from disclosing this information to any other
party and is required to destroy the information after its stated need has
been fulfilled. If you are not the intended recipient, or the employee of
agent responsible to deliver it to the intended recipient, you are hereby
notified that any disclosure, copying, distribution or action taken in
reliance on the contents of these documents is STRICTLY PROHIBITED. If you
have received this email in error, please notify the sender immediately to
arrange for return or destruction of these documents.
--
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 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.