0

我有一个运行 RPG 程序的 REST Web 服务,因为我需要使用 Openssl 加密一些数据我已经构建了一个 shell 脚本,它通过 ENV vars 接收数据并在数据区域中发送数据。

Rest_RPG 调用运行 qsh 脚本的 CLP,并从数据区检索数据。如果我以交互方式运行 cl,它会完美运行,并且它会从数据区域检索数据,但是当从 REST Web 服务调用时它不会检索任何内容,我已将 QTMHHTTP 和 QTMHHTP1 授权给 QGPL,但没有运气,有什么想法吗?

脚本:打印 -nr $PASS | openssl enc -aes-128-ecb -K $KEY_HEX -nosalt -base64 | 数据区 -wl $DTAPASS

CLP: CRTDTAARA DTAARA(QGPL/DTAPASS) TYPE(*CHAR) LEN(512) AUT(*ALL) ADDENVVAR ENVVAR(PASS) VALUE(&PPASS) CCSID(*JOB) REPLACE(*YES) qsh('/tmp/script. sh') RTVDTAARA DTAARAQGPL/DTAPASS) RTNVAR(&ENC_PASS)

4

2 回答 2

0

似乎问题在于相对路径名(QGPL 库)和 -wl 组合。请尝试在另一个库中创建数据区,该库是作业库列表的一部分,或使用 datarea -w 选项。

于 2021-12-12T19:20:19.007 回答
0

我尝试过其他库,放弃了,我现在正在使用 IBM Cryptographic API。

https://www.ibm.com/docs/api/v1/content/ssw_ibm_i_74/apis/catcrypt.htm?fbclid=IwAR0-BGP-6wdBQPMXP3lp-EPSARpfcIcdCuEE5RzcGYBIdbnVFCno0qVjyBU

于 2021-12-14T09:37:25.450 回答