Websphere 加密模块在IBM API Connect中不工作

Websphere 加密模块在IBM API Connect中不工作,websphere,apiconnect,Websphere,Apiconnect,在IBM API Connect中,我尝试在IBM API Connect gatewayscript中使用“加密”模块。当我测试gatewascript是否支持加密模块时,我得到如下响应 Gatewayscript中的代码: var crypto = require('crypto'); session.output.write(crypto); 输出: *{ "getHashes": {}, "getCiphers": {}, "

在IBM API Connect中,我尝试在IBM API Connect gatewayscript中使用“加密”模块。当我测试gatewascript是否支持加密模块时,我得到如下响应

Gatewayscript中的代码:

var crypto = require('crypto');
session.output.write(crypto);
输出:

*{
  "getHashes": {},
  "getCiphers": {},
  "createHash": {},
  "createHmac": {},
  "createSign": {},
  "createVerify": {},
  "createCipheriv": {},
  "createDecipheriv": {},
  "randomBytes": {}
}*
但当我尝试使用它时,我得到了500个内部服务器错误:

代码:

输出:

  {
      "httpCode": "500",
      "httpMessage": "Internal Server Error",
      "moreInformation": "Internal Error"
    }
不知道哪里出了问题。我正在复制粘贴IBM网站上的确切示例。以下是对加密的引用:

使用
var key=“Alice”告诉datapower使用别名“Alice”存储的sharedkey

如果要使用'Alice'字符串,则需要使用一个缓冲区,如
var key=new buffer(“Alice”)

然而,它不会工作,因为HMAC希望HMAC-sha1有一个160位的密钥。 你可以这样生成它

$dd if=/dev/random count=20 bs=1 | xxd-ps
A73E3406E7DCC5FC168D9AE9954EC6E0D85E444
20作为20字节(20x8位=160位)

如果要将其存储在共享对象中,您可以按照此处所述操作:

将此命令生成的十六进制字符串放入名为secret.key的文件中。 将密钥上载到设备上的cert:///目录。 导航到对象->加密配置->加密共享密钥。 单击添加。 输入共享密钥的名称。 从下拉列表中,选择刚才上载的secret.key文件。 单击应用。 如果未显示任何错误,则表示已成功读取密钥。 单击保存

  {
      "httpCode": "500",
      "httpMessage": "Internal Server Error",
      "moreInformation": "Internal Error"
    }