gpt4 book ai didi

javascript - 如何在 saml2-js 中指定私钥的密码?

转载 作者:行者123 更新时间:2023-12-03 12:14:45 29 4
gpt4 key购买 nike

我在 saml-passport 中看到了执行此操作的选项,但我已经使用 saml2-js 进行了设置。 .我的 key /证书有一个必需的密码,否则我得到一个错误的解密错误。是否可以设置此密码?
这里是SP选项

var sp_options = {
entity_id: "/startpoint",
private_key: fs.readFileSync(`${dir}src/certs/key.pem`).toString(),
certificate: fs.readFileSync(`${dir}src/certs/cert.pem`).toString(),
assert_endpoint: '/assert',
sign_get_request: true
}
var sp = new saml2.ServiceProvider(sp_options)

我希望在 private_key key 下有一个 key “密码”,但没有像文档中指定的 key 。

最佳答案

您的 saml 模块似乎没有处理 crt/pem 的密码。
你可以在 npm 上搜索另​​一个可以处理它的 saml 模块,我暂时没有找到
您可能可以使用 openssl 包装器/加密包装器手动管理 pem 的解密,但我可能非常复杂。
否则,John Cruz 似乎是无代码解决方案的最佳选择。
如果您想手动操作,您的加密 PEM 包括:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,05E1DB4ACD187787
此处显示使用的加密算法:des-ede3-cbc,以及十六进制格式的密码 IV,此处为 05E1DB4ACD187787
然后你有你的 base64 加密数据:
2rtyxqlZg/ROAHQRnYyHDpkdk9rgYVhsNrGdBzEySzUG+LRwTU/Z+ihSTKK0f2yj
Zpn/qOsXwq4IS6XOb+Q8M5AAbE7t3jKI14YDAvDK/jQpBLk907oxFqeNte3Qvmrm
OjzHJS/P1JXef4dByhrjlrdL/pNV9ov5dM8cyVcxRUbW6cNapXoSrlXrmNPM....
使用 Node 加密模块,您现在可以处理解密:
const cipher = crypto.createDecipheriv('DES-EDE3-CBC', Buffer.from(secretKeyHex, "hex"), Buffer.from(ivHex, "hex"));
let c = cipher.update(encryptedPemBase64, 'base64','base64')
c += cipher.final('base64');
请注意, key 必须具有特定的长度,具体取决于所使用的算法
如果您的 key 是“静态的”,这很容易,如果您必须处理大量算法,则可能会很棘手

关于javascript - 如何在 saml2-js 中指定私钥的密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65428261/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com