使用 javascript JSON Web 密钥的加密密钥
Cryptographic key to JSON Web Key using javascript
我是 JavaScript 或 GatewayScript 的新手。我有一个要求,我需要将 .pem 的内容(位于 local:///cert 下的 DataPower 中,或者可以添加到加密对象中)转换为 JWK。
任何人都可以帮助我了解如何开发 javascript 到
的起点
- 引用来自 DataPower 的加密密钥对象(示例加密密钥
对象 JWKCryptoCertObj)
- 解密加密密钥对象(示例
JWKCryptoCertObj.pem)
- 将密钥的内容转换为 JSON Web 密钥 (
jwk.readCertificate()
)
到目前为止我已经知道jwk.readCertificate()
可以帮助我将一个关键对象转换为一个JWK。
我试过下面的代码来获取它:
var jwk = require('jwk');
var myJWK = jwk.readCertificate('cerjwk');
console.log(myJWK);
但是,我在 DataPower 中收到以下错误:
3:13:17 AM mpgw error 1277869681 error 0x00d30003 mpgw (PortTest): Rejected by filter; SOAP fault sent
3:13:17 AM multistep error 1277869681 request 0x80c00009 mpgw (PortTest): request PortTest_Policy_rule_1 #2 gatewayscript: Transforming the content of INPUT. The transformation local:///jwk.js is applied. The results are stored in testop. failed: Internal Error
3:13:17 AM gatewayscript error 1277869681 request 0x85800007 mpgw (PortTest): GatewayScript processing Error 'Error: Named certificate 'cerjwk' not found In file 'gatewayscript:///modules/jwk.js' line:428, stack:Error: Named certificate 'cerjwk' not found at Object.readCertificate (gatewayscript:///modules/jwk.js:428:18) at Object. (local:///jwk.js:5:17) at Script.execute (gatewayscript:///datapower.js:155:24) at Object. (gatewayscript:///datapower.js:582:55)'
3:13:17 AM crypto error 1277869681 request 0x8580005c mpgw (PortTest): Named certificate 'cerjwk' not found
有人可以帮我解决这里的问题吗?提前致谢!!
无需转换证书。只需将它添加到 Crypto Key
对象中并在调用中使用对象的名称(例如 "crykey-my-key"),例如:
const jwk = require('jwk');
const myKeyJWK = jwk.readCertificate('crykey-my-key');
终于成功了,需要更改的是证书,而不是密钥。
这是工作代码:
var ctx = session.name('INPUT')|| session.createContext('INPUT');
var hm = require('header-metadata');
//var headers = hm.current;
var sm = require('service-metadata');
var uriIn=sm.getVar("var://service/URI");
var jwk = require('jwk');
var myJWK = jwk.readCertificate('qa.developer.citigroup.net');
//headers.set('X-new-header', myJWK);
//headers.set('Content-Type','application/json');
console.log(myJWK);
ctx.setVariable('yourjwk',myJWK);
session.output.write(myJWK);
我是 JavaScript 或 GatewayScript 的新手。我有一个要求,我需要将 .pem 的内容(位于 local:///cert 下的 DataPower 中,或者可以添加到加密对象中)转换为 JWK。
任何人都可以帮助我了解如何开发 javascript 到
的起点- 引用来自 DataPower 的加密密钥对象(示例加密密钥 对象 JWKCryptoCertObj)
- 解密加密密钥对象(示例 JWKCryptoCertObj.pem)
- 将密钥的内容转换为 JSON Web 密钥 (
jwk.readCertificate()
)
到目前为止我已经知道jwk.readCertificate()
可以帮助我将一个关键对象转换为一个JWK。
我试过下面的代码来获取它:
var jwk = require('jwk');
var myJWK = jwk.readCertificate('cerjwk');
console.log(myJWK);
但是,我在 DataPower 中收到以下错误:
3:13:17 AM mpgw error 1277869681 error 0x00d30003 mpgw (PortTest): Rejected by filter; SOAP fault sent
3:13:17 AM multistep error 1277869681 request 0x80c00009 mpgw (PortTest): request PortTest_Policy_rule_1 #2 gatewayscript: Transforming the content of INPUT. The transformation local:///jwk.js is applied. The results are stored in testop. failed: Internal Error
3:13:17 AM gatewayscript error 1277869681 request 0x85800007 mpgw (PortTest): GatewayScript processing Error 'Error: Named certificate 'cerjwk' not found In file 'gatewayscript:///modules/jwk.js' line:428, stack:Error: Named certificate 'cerjwk' not found at Object.readCertificate (gatewayscript:///modules/jwk.js:428:18) at Object. (local:///jwk.js:5:17) at Script.execute (gatewayscript:///datapower.js:155:24) at Object. (gatewayscript:///datapower.js:582:55)'
3:13:17 AM crypto error 1277869681 request 0x8580005c mpgw (PortTest): Named certificate 'cerjwk' not found
有人可以帮我解决这里的问题吗?提前致谢!!
无需转换证书。只需将它添加到 Crypto Key
对象中并在调用中使用对象的名称(例如 "crykey-my-key"),例如:
const jwk = require('jwk');
const myKeyJWK = jwk.readCertificate('crykey-my-key');
终于成功了,需要更改的是证书,而不是密钥。
这是工作代码:
var ctx = session.name('INPUT')|| session.createContext('INPUT');
var hm = require('header-metadata');
//var headers = hm.current;
var sm = require('service-metadata');
var uriIn=sm.getVar("var://service/URI");
var jwk = require('jwk');
var myJWK = jwk.readCertificate('qa.developer.citigroup.net');
//headers.set('X-new-header', myJWK);
//headers.set('Content-Type','application/json');
console.log(myJWK);
ctx.setVariable('yourjwk',myJWK);
session.output.write(myJWK);